RPMS Kubernetes con versión en Fedora

Bradley G Smith, Versión F41,rawhide Last review: 2025-09-10

Esta página analiza fuentes de software de terceros que no están afiliadas ni respaldadas oficialmente por el Proyecto Fedora. Úselas a su propia discreción. Fedora recomienda el uso de software libre y de código abierto, y evitar el software protegido por patentes.

Vista general

Versioned Kubernetes rpms (e.g. kubernetes1.34.rpm, kubernetes1.33.rpm) were introduced in Fedora 41 and is the standard used for Kubernetes in all Fedora releases.

As versioned rpms are distinct packages which contain the same set of files, they are treated as conflicting by rpm. The necessary changes to the package update process to deal with this conflict are documented below.

Restricciones del lenguaje Go

Each Kubernetes version (at the minor level, e.g. Kubernetes v1.31) is built with a specific version of the go language. Each Fedora release is paired with a specific go version For example, Go 1.22 is available on Fedora 40 and go 1.23 is available on Fedora 41.

A new Kubernetes version may be built with a version of Go not available on older Fedora releases thereby blocking the packaging of that Kubernetes version for that specific Fedora release. If the Go version is updated, the blocked Kubernetes version will be made available as long as the Kubernetes version is still supported.

Rpms de Kubernetes en Fedora

The table below lists the Kubernetes rpms available for each Kubernetes release, what the rpm contains, and notes on purpose and any cautions or restrictions.

Tabla 1. Los rpms de Kubernetes versionados en Fedora 41 (y más nuevos)
Nombre RPM Contenido Notas

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.

Recomendaciones de instalación de rpm versionados

Para muchos de los clústeres kubernetes modernos instalan kubernetes, kubernetes-kubeadm, y kubernetes-client en cada máquina en el clúster. Si el espacio de disco es una restricción solo instala kubernetes-client en máquinas de control-plane.

# using kubernetes 1.34 as an example
sudo dnf install kubernetes1.34 kubernetes1.34-kubeadm kubernetes1.34-client

Si conduce una instalación manual de Kubernetes (consulte Kubernetes The Hard Ways) entonces instale todos los rpms de kubernetes excepto kubernetes-kubeadm.

# using kubernetes 1.34 as an example
sudo dnf install kubernetes1.34 kubernetes1.34-client kubernetes1.34-systemd

Recomendaciones de actualización de rpm con versiones

Since rpm treats kubernetes1.34 as a different application from kubernetes1.31, yet both rpms install the same files in the same locations. These rpms therefore conflict and the normal dnf update will not succeed in replacing v1.34 with v1.31. There are two options available when using dnf: remove/install or swap.

La secuencia desinstalar e instalar utilizando los comandos dnf por primera vez desinstala una versión de Kubernetes y después la reemplaza con la versión siguiente. Ambos comandos de dnf además desinstalan/instalan cualquier dependencia.

Important Note - this is only needed when changing minor versions, that is replacing v1.34 with v1.31. Updates at the patch level such as v1.34.2 to v1.34.3 use the normal dnf update command.

# Remove and replace with kubernetes 1.34 and 1.31 as an example
sudo dnf remove kubernetes1.34 kubernetes1.34-kubeadm kubernetes1.34-client
sudo dnf install kubernetes1.31 kubernetes1.31-kubeadm kubernetes1.31-client

The dnf swap command can also be used to change from one Kubernetes release to the next. Using swap avoids re-installation of dependencies but the kubernetes1.31* dnf package specification will install all matching rpms from the repository and not just the rpms removed by the initial kubernetes1.34* package specification.:w

# Remove and replace with kubernetes 1.34 and 1.31 as an example
sudo dnf swap kubernetes1.34* kubernetes1.31*

Versioned rpm retirement policy

The Kubernetes Project releases a new (minor) version every 4 months which is then supported for one (1) year.

Patches for each minor version are released monthly.

Two months after a Kubernetes version reaches end-of-life, the corresponding rpm is retired in Rawhide following the Package Retirement Process. Packages for the corresponding version of CRI-O and CRI-Tools are also retired.