Practically, how does Kubernetes stack up against Docker Swarm? Anyone who's used both will tell you that Kubernetes has a much steeper learning curve. Building work environments is more complicated and getting your mind around the terminology and the many infrastructure elements can be difficult. While Kubernetes can handle any OCI-compliant Docker container you send it, it's not compatible with Docker Compose scripts.
One more difference: Unlike Docker Swarm which can run at least one node on any OS, the Kubernetes control plane can only run on a Linux (or macOS) host.
That's the relatively bad news. But working through all the stuff that Kubernetes does exceptionally well will take a big longer. Scalability, high availability, and load balancing, for one thing - well, three things - are built into Kubernetes and, in many senses, automated. Kubernetes also features mature self healing, failover, and rollback management. Kubernetes security employs RBAC-based authorization and authentication - where "RBAC" stands for role-based access control - integrated secrets management, and security policies at both the pod and network levels. Finally, while we've seen Docker's relatively recent Docker Desktop product, Kubernetes has had a built-in and tightly integrated dashboard for as long as I can remember.
We've got three primary goals for the remaining lessons of this course. The first involves a high-level survey of the key elements that go into a successful Kubernetes deployment. That should help you visualize how the infrastructure works. The second goal will see us explore the range of environments we can use to host our Kubernetes container workloads. And we'll wrap things up a quick demo of some surprisingly simple tools for launching some surprisingly sophisticated applications.