What Is Kubernetes?
Kubernetes is a container orchestration tool. It was developed by Google for automating and managing the deployment of containers—portable packages of software that contain all the binaries, libraries, configuration files, and other dependencies needed for that software program to run.
What Is Container Orchestration?
Container orchestration refers to the automation of common container management tasks such as deployment, scaling, and networking. Instead of manually deploying your microservices and web apps to production, container orchestration tools like Kubernetes let you create automated workflows.
Anatomy of a Kubernetes Cluster
Kubernetes boasts a number of features that help you provision and deploy your own containerized software programs.
The best way to understand Kubernetes is to understand what you get in a typical Kubernetes cluster:
- Pods: The smallest deployable compute unit you can create and manage in Kubernetes, from a single container to multiple containers running on the same shared storage/network resources.
- Nodes: The worker machines (virtual or physical) that host the pods that make up an application workload. Each node has at least one Kubelet, an agent that ensures the described containers are running in the pod on a cluster.
- Control plane: The orchestration layer that exposes the API you use to manage your containers, pods, and nodes.
- Add-ons: Features such as cluster DNS extend the functionality of a cluster and provide a DNS server or Web UI which can be used as a general-purpose dashboard for monitoring and troubleshooting apps running in the cluster or for the cluster itself.