October 17, 2017·6 min read·engineeringdockerkubernetesorchestrationplatforms

Docker adds Kubernetes to its platform plans alongside Swarm

Docker announces Kubernetes integration for its enterprise and desktop products, with an upcoming beta and a shared application delivery workflow.

An application's image format does not decide which system schedules its containers. Docker's Kubernetes announcement makes that distinction part of its product direction. The company plans to integrate Kubernetes alongside Swarm while retaining the Docker workflow around building and delivering applications. The product is taking on another orchestrator without making image construction contingent on one scheduler.

The 17 October announcement describes integration across Docker Enterprise Edition and the Mac and Windows developer products. Its availability section invites users to register for an upcoming beta. This is an announcement of the integration and access plan, rather than evidence that every existing installation already includes the capability.

I value Docker's image and build model independently of a particular cluster scheduler. The useful part of this announcement is the attempt to preserve that investment when an organization chooses Kubernetes. A program's construction description should remain useful when the system responsible for placing and supervising its instances changes.

Docker is retaining an integrated product

The announcement promises an unmodified version of Kubernetes with Docker's management and security capabilities around it. That is a specific product position. Docker wants to supply the integrated environment in which an organization uses Kubernetes, rather than requiring the organization to assemble every surrounding operational component independently.

For Enterprise Edition, Docker describes installation and configuration of Kubernetes as part of platform installation and management through a unified dashboard. That work concerns the operational life of a cluster. Installing a scheduler and keeping its management integrated are responsibilities beyond constructing an application image.

Swarm remains part of the proposed product. The announcement repeatedly describes a choice between Kubernetes and Swarm, including applications using either orchestrator. It does not announce the retirement of Swarm or require an existing service description to move immediately to Kubernetes. Maintaining that distinction is essential to reading what the company has actually committed to today.

The shared platform also has an economic and engineering rationale. An organization may want another orchestration interface without discarding its registry and image-delivery processes. Docker is proposing to keep those surrounding systems relevant to workloads using either scheduler. The value depends on how well the integration preserves useful operations while representing the different orchestration models accurately.

Image construction already has a separate contract

Docker's 17.05 release notes introduced multi-stage builds in May. That feature lets a build description produce an artifact in one stage and copy selected files into a later stage. It concerns the contents and construction of an image before a cluster decides where to execute it.

The versioned Dockerfile reference makes the distinction concrete. A new FROM begins a stage, while COPY --from transfers files from another stage or image. The output is an image whose construction can be described without specifying which orchestrator will manage its containers.

October's announcement explicitly includes multi-stage builds in the developer workflow it wants to retain. That continuity is plausible at the level of image production because the build step and the scheduling step have different inputs. It does not follow that every deployment setting becomes interchangeable just because the same built program can be used.

This is where a reusable image has practical value. A build can preserve the program's execution environment as an artifact. A deployment then supplies policies and external dependencies appropriate to the environment running it. Changing the scheduler should not require the compiler and source inputs to be hidden in a second, unrelated construction process.

Application descriptions still need an interpretation

Docker also names application composition through Compose as part of the integrated workflow. A composition file is useful because it expresses several services and their relationships together. Turning that description into running application resources requires an implementation that interprets it for the chosen orchestration system.

The stack deployment documentation shipped with Docker 1.13.0 shows the existing Swarm path. The command targets a manager and creates networks and services from a suitable Compose file. Its example also warns about an unsupported option. Even within an established workflow, accepting a file format has never meant that every possible field has identical execution semantics.

The Kubernetes announcement promises continuity in Docker tooling and the ability to use Kubernetes-native tools. Those are two ways of interacting with the proposed platform. The first preserves an application description familiar to Docker users. The second gives access to Kubernetes' own interfaces. A complete integration needs to make their relationships understandable to the person operating the application.

The announcement does not supply a field-by-field translation contract. It would be premature to infer detailed behavior for a particular health check, storage setting or deployment policy from the general promise alone. What it establishes is the intended workflow and choice of orchestrator, with the beta providing access to the implementation as it becomes available.

Security surrounds the scheduling decision

Docker emphasizes security scanning, content trust and a private image registry in the enterprise integration. These concerns belong to the path an artifact takes before and during deployment. An orchestrator determines the execution of workloads, but that alone does not supply every control an organization applies to the images it accepts.

Keeping that workflow shared can reduce the number of separate image-delivery processes an organization maintains. The same underlying policy decisions still need concrete implementations. Scanning an image and trusting its origin are different operations, and neither automatically establishes that a running service has the right application-level permissions.

The announcement also includes secure cluster management and multi-tenancy among the platform capabilities being integrated. These are broader operational claims than merely starting a Kubernetes process. They explain why Docker presents the change as an addition to its platform, rather than a replacement of its product with the upstream orchestrator.

I find that distinction useful when assessing the proposal. An organization choosing Kubernetes still needs decisions about its artifact repository and administration model. Docker's offer is to integrate those decisions into a maintained product. The announcement should be judged at that scope, alongside the promised use of unmodified Kubernetes.

Desktop access is part of the integration plan

Docker for Mac and Docker for Windows appear in the same announcement as Enterprise Edition. The intended developer workflow includes a complete Kubernetes stack on the local machine and access through familiar Docker tooling. That places local experimentation within the product people already use to build their images.

The local environment has a different operational scale from a production cluster, but it can expose the relevant orchestration model earlier in development. The useful continuity is the relationship between the built application and the interfaces used to deploy it. A local installation does not establish that every aspect of production infrastructure has been reproduced.

The company also describes support across its certified infrastructure platforms, naming several Linux distributions and cloud environments. These statements describe the target breadth of the integration. The availability section still governs what a person can obtain today, and its upcoming-beta language should accompany any account of those plans.

A product direction and a completed deployment are different kinds of facts. The announcement establishes Docker's commitment to integrating the additional orchestrator. It does not prove that a particular customer's current environment can enable it without receiving the beta or a later product delivery. The registration invitation is the concrete access route Docker provides for users interested in trying this work.

Modular development makes the product choice easier to explain

Docker's April Moby announcement distinguished reusable components and assemblies from the integrated Docker product. That history helps explain how Docker can retain a product identity while changing the combination of components available within it. The platform's value includes selecting and maintaining the integration.

Kubernetes support is another instance of that separation between component selection and application tooling. Users can care about Docker's image workflow without wanting one mandatory orchestration implementation. System builders can integrate components while application developers continue to consume the resulting product.

The immediate change is a published integration plan with beta registration, covering both desktop development and enterprise management. Docker is preserving Swarm as an option and adding Kubernetes to the intended workflow. The engineering work described by the announcement sits where artifact construction, application description and cluster administration meet, with each retaining its own responsibilities.