Kubernetes as a container orchestration: After completing this section, you should be able to recognize Kubernetes as a container orchestration tool.
Containers provide an easy way to package and run services. As the number of containers managed by an organization grows, the manual work of managing them grows disproportionately.
When using containers in a production environment, enterprises often require the following capabilities:
- Easy communication between a large number of services
- Resource limits on applications
- Ability to respond to application usage spikes by increasing or decreasing replicas
- Gradual rollout of a new release to different users
Enterprises often require a container orchestration technology because container runtimes, by themselves, do not adequately address the above requirements.
Kubernetes as a container orchestration Overview
Kubernetes is a container orchestration platform that simplifies the deployment, management, and scaling of containerized applications.
A pod is the smallest manageable unit in Kubernetes, and consists of at least one container. Kubernetes also uses pods to manage the containers within and their resource limits as a single unit.
Kubernetes as a container orchestration Features
Kubernetes offers the following features on top of a container engine:Service discovery and load balancing
Kubernetes enables inter-service communication by assigning a single DNS entry to each set of containers. This way, the requesting service only needs to know the target’s DNS name, allowing the cluster to change the container’s location and IP address. This permits load-balancing requests across the pool of container replicas.Horizontal scaling
Applications can scale up and down manually or automatically with a configuration set, by using either the command-line interface or the web UI.Self-healing
Kubernetes can use user-defined health checks to monitor containers to restart and reschedule them in case of failure.Automated rollout
Kubernetes can gradually release updates to your application’s containers while checking their status. If something goes wrong during the rollout, Kubernetes can roll back to the previous version of the application.Secrets and configuration maps
You can manage the configuration settings and secrets of your applications without rebuilding containers. Configuration maps store these settings in a way that decouples them from the pods and containers using them. Application secrets can include any configuration setting that must be kept private, such as user names, passwords, and service endpoints.Operators
Operators are packaged Kubernetes applications that bring the knowledge of application lifecycles into the Kubernetes cluster. Applications packaged as Operators use the Kubernetes API to update the cluster’s state by reacting to changes in the application state.
In this chapter, you learned:
- Applications running in containers are decoupled from the host operating system’s libraries.
- Among other features, container orchestration platforms provide tooling to automate the deployment and management of application containers.