‫Kubernetes is a popular container orchestrator.
‫Let's go back to the original definition from previous
‫sections on what orchestration is, at least
‫when it refers to containers.
‫All an orchestrator is, is it's taking your
‫containers that you ask it to run, and it's
‫taking a series of servers, or nodes,
‫and deciding how to run those container workloads
‫across those nodes.
‫Kubernetes was an orchestrator, one of many,
‫that was released in 2015 by Google.
‫It's now maintained by an open source community,
‫around the world, that Google is a part of.
‫If you wonder what Kubernetes is doing, or
‫how it's related to Docker, Kubernetes essentially
‫is a set of APIs that run
‫on apps in containers to manage a set of servers
‫and then execute your containers on Docker,
‫by default. It can run other container runtimes
‫that aren't Docker, like containerd.
‫By default, right now, it runs on top of Docker.
‫So, it's not getting rid of your container runtime.
‫It's just a series of containers on top of that
‫that manage the multi-node system that it's
‫controlling.
‫Then, it gives you a set of those APIs
‫and command line tools to deploy
‫and maintain the same server infrastructure
‫that you would have similar to Swarm.
‫Before in this course, you've been using the Docker command
‫a lot.
‫In Kubernetes, one of the main tools you will be using is
‫kube control, or kubectl.
‫If you've heard other people refer to that tool as
‫something else, like kube control, or kube cuddle,
‫or koob control, these are all different names.
‫But now that we have a standard naming
‫from the official repo, it is called
‫kube control.
‫When it comes to Kubernetes and how do you get it,
‫there's tons and tons of options out there.
‫The most common ways you're going to use Kubernetes
‫is one, from a cloud vendor,
‫that is going to provide you Kubernetes as a service
‫to run your containers. Much like their other cloud
‫services, they will provide you the Kubernetes
‫endpoints, the API, that you can use the tools
‫locally, or GUIs that maybe they have built into
‫their cloud interface, to deploy and maintain
‫your Kubernetes controlled containers.
‫Then, there are other vendors, most of them infrastructure
‫vendors, that package up their own Kubernetes as
‫well. We're going to call these distributions
‫of Kubernetes, similar to the concept of Linux
‫distributions. In the Linux world, there's the same
‫Linux kernel running on all these different distributions.
‫Those kernels are sometimes built a little bit different,
‫or different versions, but they're fundamentally the same.
‫Then, the distributions, whether it's Ubuntu, or CentOS,
‫or Amazon Linux.
‫All these different distributions package up their own set
‫of tools that a lot of us prefer one or the other
‫because of. That's the same way with Kubernetes now.
‫Whether it's cloud or on-prem
‫data center distributions of Kubernetes,
‫you're going to pick one based on your requirements, based
‫on existing vendor contracts, or your preference on
‫operating system or vendors.
‫There's lots of reasons to do that.
‫But, all of those are providing a what we call
‫upstream version of the pure, open
‫source Kubernetes. Then they layer on top of it all
‫their own extra stuff to your benefit.