Non-versioned Kubernetes RPMS on Fedora

Bradley G Smith, Version F39,F40,F41 Last review: 2024-07-30

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.

Overview

Non-versioned Kubernetes RPMS are the standard rpm format for Kubernetes through Fedora 40. Fedora 41 (currently rawhide) contains both versioned and non-versioned rpms.

Non-versioned Kubernetes rpms in Fedora

The number, name, and organization of content in Fedora Kubernetes rpms depends on the Fedora release. Fedora 40 and newer releases (starting with Kubernetes v1.29) have one set of rpms. Fedora 39 and older releases have the legacy set of rpms.

Fedora 39 and older releases

The table below lists the available Kubernetes rpms in Fedora 39 and older releases, what the rpm contains, and notes on purpose and any restrictions or cautions.

Table 1. Kubernetes rpms in Fedora 39 (and older)
RPM Name Contents Notes

kubernetes

Empty

Also installs kubernetes-node and kubernetes-master.

kubernetes-client

kubectl

Kubernetes command line client. Recommended on any node configured as a control plane as it allows the cluster administrator control over the cluster from an ssh session on the control plane. Install on a machine that can connect to the cluster over the network.

kubernetes-kubeadm

kubeadm

Kubeadm initializes a cluster and joins new nodes to a cluster. This rpm is optional but recommended by the Kubernetes team. Install on every node if used.

kubernetes-master

kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler

Systemd services for a kubernetes node. Not needed for most installations as kubeadm will install these components as static pods. If used, then install on each node. Also installs kubernetes-client.

kubernetes-node

kubelet

Kubernetes runtime on a node. Required on each node.

Fedora 39 (and older) Installation recommendations

For most modern kubernetes clusters install kubernetes-node, kubernetes-kubeadm, and kubernetes-client on each machine in the cluster. If disk space is a constraint only install kubernetes-client on control-plane machines.

sudo dnf install kubernetes-kubeadm kubernetes-node kubernetes-client

If conducting a manual installation of Kubernetes (see Kubernetes The Hard Way) then install kubernetes-master and kubernetes-kubeadm.

sudo dnf install kubernetes-master kubernetes-kubeadm kubernetes-node kubernetes-client

Fedora 40 and 41 non-versioned rpms

Kubernetes rpms have been reorganized starting with Kubernetes version 1.29 in Fedora 40. The table below lists the available Kubernetes rpms, what the rpm contains, and notes on purpose and any cautions or restrictions.

Table 2. Kubernetes rpms in Fedora 40 and 41
RPM Name Contents Notes

kubernetes

kubelet

Kubelet is the Kubernetes runtime on a node.

kubernetes-kubeadm

kubeadm

Kubeadm initializes a cluster and joins new nodes to a cluster. This rpm is optional but recommended by the Kubernetes team. Install on every node if used.

kubernetes-client

kubectl

Kubernetes command line client. Recommended on any node configured as a control plane as it allows the cluster administrator control over the cluster from an ssh session on the control plane. Install on a machine that can connect to the cluster over the network.

kubernetes-systemd

kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler

Systemd services for a kubernetes control-plane and/or node. Not needed for most installations as kubeadm will install these components as static pods. If used, then install on all nodes. Use systemctl to enable kube-proxy on all nodes. Enable kube-apiserver, kube-controller-manager, and kube-scheduler on control plane nodes.

Fedora 40 (and newer) installation recommendations

For most modern kubernetes clusters install kubernetes, kubernetes-kubeadm, and kubernetes-client on each machine in the cluster. If disk space is a constraint only install kubernetes-client on control-plane machines.

sudo dnf install kubernetes kubernetes-kubeadm kubernetes-client

If conducting a manual installation of Kubernetes (see Kubernetes The Hard Way) then install all kubernetes rpms except kubernetes-kubeadm.

sudo dnf install kubernetes kubernetes-client kubernetes-systemd

Kubernetes and Fedora version crosswalk

Each Fedora release has a corresponding version of Kubernetes available as listed below. The goal is to provide the most current Kubernetes release available when a Fedora release reaches General Availability (GA). This is not always possible resulting in skipped Kubernetes releases. Skipping a release causes problems for Kubernetes cluster administrators given the Kubernetes cluster upgrade process. Alternative ways to package Kubernetes for Fedora are being explored.

The version of the Go programming language supported for a given Fedora release can also limit the version of Kubernetes available if Kubernetes requires a newer version of Go.

Table 3. Kubernetes versions and the corresponding Fedora release
Kubernetes Version Target Fedora Release Kubernetes End-of-Life Kubernetes Golang 'Built-With' Version

1.29

F40/F41

2025.02.28

1.21

1.28

COPR1

2024.10.28

1.21 (was 1.20)

1.27

F39

2024.06.28

1.21 (was 1.20)