Integrating Kubernetes with Docker Enterprise Edition 2.0 – Top 10 Questions from the Docker Virtual Event
We got great questions throughout the event and will address the most common ones in our blog over the next few days.
Choice of orchestration – Swarm and KubernetesOne of the highlights of this release is the integration of Kubernetes, making Docker EE the only platform that runs both Swarm and Kubernetes simultaneously on the same cluster – so developers do not need to make an orchestration choice. Operations teams have the flexibility to choose orchestrators interchangeably.
Q: Is Kubernetes going to displace Swarm?
A: No – Swarm and Kubernetes are both available and can be used interchangeably in the same cluster. We believe in providing choice and flexibility and that there are good use cases for both Swarm and Kubernetes. For some more info, check out this earlier blog.
Q: Which orchestrator would you recommend going forward?
A: It will depend on many things including what features and use cases are most appropriate to your environment. For example Swarm makes it easy to get apps up and running quickly and has full support for Windows containers, whereas Kubernetes has more configuration options and resource types for things like stateful workloads (e.g. StatefulSets). You can use both within the same cluster.
Q: How does mixing Swarm and Kubernetes work in the same cluster?
A: Docker EE 2.0 installs Kubernetes and Swarm components across every node in a cluster. You can then set whether each individual worker node is Kubernetes or Swarm or in “Mixed” mode, and Docker EE will ensure workloads are scheduled appropriately. “Mixed” mode is a great option for development and test, but this is not recommended in production due to potential resource contention issues.
Q: Does Docker Enterprise Edition (EE) just add more layers of management on top of Kubernetes?
A: With Docker EE, you get a fully-conformant Kubernetes distribution with access to all the native APIs, CLIs and interfaces. To help organizations operationalize this at scale, Docker EE adds a number of enhancements intended for enterprise production deployments including things like a comprehensive private registry solution, a unified control plane for defining access controls that integrate with your corporate LDAP/Active Directory, and a set of security solutions that deliver safer applications.
Q: Do you only provide the abstraction so that the Kubernetes interface tools work, like kubectl or kubeadm? Or is it really all of the Kubernetes modules?
A: It’s not just an API abstraction or similar – we’re running a full Kubernetes installation out of the box when you install Docker EE 2.0 – one that has been tested and certified for conformance.
Q: Which version(s) of Kubernetes does Docker EE 2.0 supports and how will it be aligning with future upgrades of the orchestrators?
A: Docker EE 2.0 ships with Kubernetes 1.8 and patches to Docker EE 2.0 may include future patches to Kubernetes 1.8. Docker is committed to staying conformant with Kubernetes and future releases of Docker EE will include newer versions of Kubernetes.
Q: Can Kubernetes be upgraded across clusters without downtime? if so, is that handled via Docker EE?
A: In Docker EE 2.0, you cannot separately upgrade the Kubernetes version. When you upgrade the cluster management component (Universal Control Plane), you will get the appropriate included updates for Kubernetes as well.
Q: Can you use Kubernetes YAML with Swarm? What about Compose with Kubernetes?
A: With Docker EE 2.0, you can leverage existing Compose files and deploy with either Swarm or Kubernetes through the UI. You can also leverage Kubernetes YAML to deploy applications with Kubernetes. Deploying Kubernetes YAML with Swarm is not supported.
Q: Does Kubernetes support .NET applications?
A: Right now, Kubernetes has beta support for .NET/Windows containers. It is not yet generally available. You can deploy .NET applications with Swarm as that has been fully supported with Docker EE for over a year.
Q: I’m just new to Docker, does this mean I need to get familiarized with Kubernetes first to actually start learning Docker?
A: No – you don’t need to know Kubernetes to use Docker EE. Kubernetes is there for users that need its specific features, but it’s optional. For many use cases and workloads Swarm may be easier to learn. If you do need to move to Kubernetes later, you can leverage the same Docker Compose file to run your applications on both Swarm and Kubernetes so it’s easy to change your mind down the road.
To learn more about Kubernetes integration into Docker EE 2.0, check out a few resources: