Kubernetes

Kubernetes May 02, 2020

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.
Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.