Understanding Kubernetes Briefly

First, we need to know how Kubernetes is pronounced.

Many people are unsure about the pronunciation of Kubernetes, including myself who mispronounced it before. The correct pronunciation is [kubə’netis], with the stress on the third syllable. Pronounced: koo-ber-nay-tees. Relevant discussions can be found on GitHub issue: https://github.com/kubernetes/kubernetes/issues/44308.

The official abbreviation is: K8s is an abbreviation derived by replacing the 8 letters “ubernete” with 8.

This is actually related to the naming habits in Silicon Valley. They have a habit of abbreviating words by taking the initial letter and the number of letters skipped, with the intention to make it less understandable for older generations. For example, Amazon’s “Algorithms” is abbreviated as “A9”, and Kubernetes is abbreviated as “k8s”, meaning after “k”, skip 8 letters and reach “s”, thus becoming “k8s”.

Kubernetes originated from Google’s internal system called Borg, providing a container-centric cluster deployment and management system. The goal of Kubernetes is to eliminate the burden of orchestrating physical/virtual computing, networking, and storage infrastructure, allowing application operators and developers to focus entirely on container-centric primitives for self-service operation. Kubernetes also provides a stable, compatible foundation (platform) for building customized workflows and advanced automation tasks. Kubernetes has comprehensive cluster management capabilities, including multi-layer security protection and admission control mechanisms, multi-tenant application support capabilities, transparent service registration and discovery mechanisms, built-in load balancers, fault detection and self-healing capabilities, service rolling upgrades and online scaling, scalable resource auto-scheduling mechanisms, and fine-grained resource quota management capabilities. Kubernetes also provides comprehensive management tools covering development, deployment testing, operations monitoring, and other aspects.

As the cornerstone of cloud-native applications, Kubernetes acts as a cloud operating system, its importance is self-evident.

Kubernetes Architecture

Kubernetes primarily consists of the following core components:

  • etcd: Stores the entire cluster state.
  • apiserver: Provides the unique entry point for resource operations and mechanisms such as authentication, authorization, access control, API registration, and discovery.
  • controller manager: Maintains the cluster state, such as fault detection, auto-scaling, rolling updates, etc.
  • scheduler: Responsible for scheduling resources, scheduling pods to corresponding machines according to predetermined scheduling policies.
  • kubelet: Responsible for maintaining the lifecycle of containers, as well as managing volumes (CSI) and networks (CNI).
  • Container runtime: Manages images and the actual execution of pods and containers (CRI).
  • kube-proxy: Provides service discovery and load balancing within the cluster for services.

In addition to the core components, there are some recommended add-ons: (updating)

  • kube-dns: Provides DNS services for the entire cluster.
  • Ingress Controller: Provides external access for services.
  • Heapster: Provides resource monitoring.
  • Dashboard: Provides a graphical user interface.
  • Federation: Provides cross-zone cluster capabilities.

By ops

Leave a Reply

Your email address will not be published. Required fields are marked *