Kubernetes is an open source container orchestration system for managing containerized applications across multiple hosts in a cluster.
Kubernetes provides mechanisms for application deployment, scheduling, updating, maintenance, and scaling. A key feature of Kubernetes is that it actively manages containers to ensure that the state of the cluster always matches the user's expectations.
Kubernetes enables you to respond quickly to customer demand by scaling or rolling out new features. It also allows you to make full use of your hardware.
Kubernetes is the following:
- Lean: Lightweight, simple, and accessible
- Portable: Public, private, hybrid, and multi-cloud
- Extensible: Modular, pluggable, hookable, composable, and toolable
- Self-healing: Auto-placement, auto-restart, and auto-replication
Kubernetes builds on a decade and a half of experience at Google running production workloads at scale, combined with best-of-breed ideas and best practices from the community:
Figure 1.1 – A 10,000-foot view of Kubernetes' architecture
One of the ways to manage Kubernetes clusters is kubectl
—Kubernetes' command-line tool for management, it is a tool for accessing a Kubernetes cluster that allows you to run different commands against Kubernetes clusters to deploy apps, manage nodes, troubleshoot deployments, and more.
In this chapter, we're going to cover the following main topics:
- Introducing kubectl
- Installing kubectl
- kubectl commands