= Using Kubernetes on Fedora
Bradley G Smith,
:revnumber: F37,F38,F39,F40,rawhide
:revdate: 2024-07-27
:category: Installation
:tags: How-to, kubernetes, dnf, rpm, containers

// Optional  free form useful additional information as comment

//include::{partialsdir}/3rdparty-message.adoc[]
include::partial$3rdparty-message.adoc[]

[[sect-overview]]
== Overview

This guide provides useful information about link:https://kubernetes.io[Kubernetes] and the Kubernetes rpms available from Fedora.

Starting with Fedora 41 (currently rawhide) the packaging standard for Kubernetes changed from one version of Kubernetes for each Fedora release (_non-versioned_ rpms) to all versions of Kubernetes available for each release of Fedora (_versioned_ rpms - with availability subject to a link:https://go.dev[Golang] language constraint).
These changes are documented here, including what changed, and how installation of these rpms has been affected.
A short guide on creating a Kubernetes cluster using ```kubeadm``` is included, as a short introduction to Kubernetes for those new to this technology stack.

The guide also touches on an alternative source for Kubernetes rpms available in link:https://copr.fedorainfracloud.org[COPR] and potential benefits.

[[sect-what-is-kubernetes]]
=== What is Kubernetes?

link:https:/kubernetes.io[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 link:https://docker.com[Docker] or link:https://podman.io[Podman].

Kubernetes is now at the center of a vast ecosystem of products and services (link:https://cncf.io/[Cloud Native Computing Foundation]) that help organizations create, install, run, manage and secure container-based applications and services at any possible scale.

Kubernetes can be used in 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.

This guide is narrowly focused on the Kubernetes rpms available from Fedora and using `dnf` and the command line to install these rpms on Fedora and create a basic cluster using `kubeadm`.

Please visit the xref:virtualization-an-overview.adoc[Fedora Quick Docs Virtualization Guide] to learn more about containers and other virtualization technologies and their availability in Fedora.

[[sect-content-guide]]
== Content guide

[cols="1,1"]
|===
|xref:using-kubernetes-basics.adoc[Basics]
|A brief overview of Kubernetes for those new to the technology along with a terminology table.

|xref:using-kubernetes-non-versioned.adoc[Non-versioned rpms - Fedora 40 and older]
|The guide to the legacy, non-versioned rpm format for Kubernetes in Fedora 41, 40, and 39.

|xref:using-kubernetes-versioned.adoc[Versioned rpms - Fedora 41 and newer]
|The guide to the versioned rpm format for Kubernetes in Fedora 41 and newer.

|xref:using-kubernetes-kubelet.adoc[Resilient ```kubelet``` configuration]
| A brief guide to ```kubelet``` configuration methods.

|xref:using-kubernetes-kubeadm.adoc[Create a cluster]
|The guide to using ```kubeadm``` to instantiate a Kubernetes cluster on a single Fedora machine for exploration, testing, and development.

|xref:using-kubernetes-cri-o.adoc[CRI-O and CRI-Tools]
|The guide to the new versions of link:https://cri-o.io[CRI-O] and link:https://github.com/kuberbetes/cri-tools[CRI-Tools] available in Fedora 41 and newer.

|===

