Kubernetes
Definition 1
- Running a container on a laptop is relatively simple. But, connecting containers across multiple hosts, scaling them, deploying applications without downtime, and service discovery among several aspects, can be difficult.
- Kubernetes addresses those challenges from the start with a set of primitives and a powerful open and extensible API. The ability to add new objects and controllers allows easy customization for various production needs.
- According to the kubernetes.io website, Kubernetes is:
- "an open-source system for automating deployment, scaling, and management of containerized applications".
- A key aspect of Kubernetes is that it builds on 15 years of experience at Google in a project called borg.
- Google's infrastructure started reaching high scale before virtual machines became pervasive in the datacenter, and containers provided a fine-grained solution for packing clusters efficiently. Efficiency in using clusters and managing distributed applications has been at the core of Google challenges.
Definition 2
- Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
- The name Kubernetes originates from Greek, meaning helmsman or pilot. Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google’s experience running production workloads at scale with best-of-breed ideas and practices from the community.
"Kubernetes is written in Go Language, a portable language which is like a hybridization between C++, Python, and Java."
Kubernetes System Requirements
Virtual Machine
Virtual machines such as KVM, VirtualBox, or VMWare can also be used for the lab systems. Putting the VMs on a private network can make troubleshooting easier. As of Kubernetes v1.16.1, the minimum (as in barely works) size for VirtualBox is 3vCPU/4G memory/5G minimal OS for the master, and 1vCPU/2G memory/5G minimal OS for the worker node.
Cloud Platform
Instance with 2 vCPU and 8 GB RAM for master node and worker nodes can be minimum instance types. Storage recommended for both master and worker nodes are 10 to 20 GB.
Note - For practice you can use the smaller instance type with less network bandwidth.
Knowledge and Skills
To learn Kubernetes, You will need the following:
- A good understanding of Linux
- Familiarity with the command line
- Familiarity with package managers
- Familiarity with Git and GitHub
- Access to a Linux server or Linux desktop/laptop
- VirtualBox on your machine, or access to a public cloud.