Kubernetes Basics

Bradley G Smith, Version F37,F38,F39,F40,rawhide Last review: 2023-12-23

This page discusses third-party software sources not officially affiliated with or endorsed by the Fedora Project. Use them at your own discretion. Fedora recommends the use of free and open source software and avoidance of software encumbered by patents.

Kubernetes Defined

Kubernetes is an "open-source system for automating deployment, scaling, and management of containerized applications" on one or more machines. Kubernetes automates many of the tasks necessary to deploy, manage, and scale applications that are running as a container. This automation is vital when managing applications in data center or cloud environment where there are 100’s or 1000’s of machines and a corresponding complexity in numbers of applications.Fedora provides several technologies, in addition to Kubernetes, that run containers such as Docker or Podman.

Kubernetes had its genesis in the concepts and principles used at Google to run container-base workloads at scale and with resilience. Kubernetes is now at the center of a vast ecosystem of products and services (Cloud Native Computing Foundation) that help organizations create, install, run, manage and secure container-based applications and services at any possible scale.

There are numerous ways to install and configure Kubernetes depending on purpose and target environment. Is this for a home lab on a single machine, a small cluster for home or business automation, edge-based services and applications in remote offices or enterprise scale production workloads in the cloud?

There is an enormous amount of Kubernetes information available online and in books. A good place to start is the Kubernetes Documentation web site. Become familiar with what is available here, then use your favorite search engine to find additional material tailored to your requirements.

Versions

The Kubernetes team uses semantic versioning for Kubernetes where a given version has 3 primary components separated by periods: major.minor.patch. An example is 1.30.1 where the major version is 1, the minor version is 30, and the patch level is 1. A Kubernetes release is a new minor version such as 1.30 or 1.31. The versioned rpms in Fedora are, therefore, at the minor version level.

Using dnf update on an existing versioned kubernetes rpm will update patch releases only. See the update process recommendations for versioned rpms.

Terminology

Kubernetes is complex and like many complex systems has its own terminology. The terminology used in this guide are defined here. The Kubernetes teams maintains a comprehensive glossary which is used in the subset below.

cluster

a set of one or more nodes managed as an entity. A cluster has at least one node and one control plane (these can be on the same or separate machines).

control plane

the node or nodes in the cluster hosting the management services for the cluster. At least one node in a cluster has a control plane. A control plane machine can also function as a worker node.

node

a worker machine (either a virtual machine or physical machine) in a Kubernetes cluster that has the services required to run pods. These services include the kubelet container runtime and kube-proxy.

pods

containerized applications are deployed and managed in Kubernetes as pods. A pod is the base object managed by Kubernetes in a cluster. A pod typically has a single primary container but may include more capabilities including multiple containers.

Additional Information

Kubernetes and the ecosystem of related components found under the Cloud Native Computing Foundation umbrella is vast as is the plethora of internet accessible information about Kubernetes. Kubernetes and this ecosystem is also evolving rapidly such that online information may be out-dated or incomplete (likely including information in this Quick Doc -ed).