For more than a year, container pioneer Docker has pushed its own Docker Swarm as the orchestration tool for managing highly distributed computing environments based on its eponymous containers in physical and virtual environments. But it is hard to deny the rapid uptake of Kubernetes, the container orchestration technology that was derived from Google’s internal Borg and Omega cluster managers and that the search engine giant open sourced three years ago.
Kubernetes has become highly popular, gaining momentum with top cloud providers like Amazon Web Services and Microsoft Azure, and obviously Google Cloud Platform, and is getting support from top datacenter infrastructure software vendors like Red Hat.
As you might expect, Docker has steadfastly promoted Docker Swarm for orchestration and as a critical part of a management ecosystem that includes Mesos, OpenStack, and Kubernetes, all tools that are used by hyperscalers, HPC organizations, and enterprises to help them get a handle on their highly complex environments. However, that is changing. At the company’s DockerCon Europe event this week, Docker announced that it is integrating Kubernetex into the Docker platform, giving users a choice to use Kubernetes or Docker Swarm – or both – for orchestration without having to make changes in their Docker operations.
The company will integrate an unmodified version of Kubernetes into Docker Enterprise Edition (EE) – which was introduced earlier this year – offering streamlined operational workflows for both Kubernetes and Swarm that will take advantage of the security, management and other capabilities that have traditionally been offering in the Docker platform. In addition, developers using Docker for Windows and Docker for Mac will have more tools and plugins they can use when building applications based on Swarm or Kubernetes.
In a post on the company blog, Docker founder and CTO Solomon Hykes said that the design philosophy behind the company has focused on flexibility and choice, as illustrated by its reliance on industry-standard protocols, its work in publishing and documenting interfaces and its decisions to ensure that the container platform works with third-party systems for networking, logging and other tasks. A year ago, Docker brought orchestration to the platform in the form of Swarm, which was derive from the SwarmKit project.
“In the past year, we’ve received lots of positive feedback on Swarm: it’s easy to set up, is scalable and is secure out-of-the-box,” Hykes wrote. “We’ve also gotten feedback that some users really like the integrated Docker platform with end-to-end container management, but that they want to use other orchestrators, like Kubernetes, for container scheduling. Either because they’ve already designed services to work on Kubernetes or because Kubernetes has particular features they’re looking for. This is why we are adding Kubernetes support as an orchestration option (alongside Swarm) in both Docker Enterprise Edition, and in Docker for Mac and Windows.”
The Kubernetes integration into Docker EE will be deep. Docker noted that the dashboard within the container platform automates workflows for Windows, Linux and mainframe applications in the same way for both Swarm and Kubernetes, and that Kubernetes integrates with the advanced security features in Docker, such as security scanning. With the deeper integration, Kubernetes will be available in Docker EE across a variety of Linux distributions – including Red Hat Enterprise Linux (RHEL), Oracle Linux, Ubuntu, and CentOS – Windows and cloud platforms, such as Amazon Web Services (AWS) and Microsoft Azure. Developers won’t have to learn new commands, and all the components for Kubernetes are installed and configured on Docker EE automatically as part of the system installation, officials said. The entire cluster is managed through a single, unified dashboard.
Developers using Docker for Mac and Docker for Windows will see a uniform development environment and workflow and can write their application in Docker and then choose which orchestration tool to use without having to make modifications.
“Once Kubernetes support lands in Docker for Mac and Windows, developers building both docker-compose and Swarm-based apps, and apps destined for deployment on Kubernetes will get a simple-to-use development system that takes optimal advantage of their laptop or workstation,” Michael Friis, product manager at Docker, wrote in a post on the company blog. “All container tasks (whether build, run or push) will run on the same Docker instance with a shared set of images, volumes and containers. And it’ll be based on the latest-and-greatest version of the Docker platform, giving Kubernetes desktop users access to enhancements like multi-stage builds. As part of our effort to integrate Kubernetes with Docker, we’re building Kubernetes components using Custom Resources and the API server aggregation layer make it simpler to deploy Docker Compose apps as Kubernetes-native Pods and Services. These components will ship in both Docker EE and in Docker CE for Mac and Windows.”
Docker is setting up a beta program for users who want to give Docker EE and Docker for Mac and Windows with integrated Kubernetes a try. Those interested can sign up here for the beta testing.