RPMS Kubernetes con versión en Fedora
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
Los rpms de Kubernetes con versiones fueron introducidos en Fedora 41 y serán el formato utilizado dentro de liberaciones subsecuentes. La anterior práctica tuvo una versión de Kubernetes disponible para cada liberación de Fedora. La cadencias de liberación diferente para Fedora (una liberación nueva cada 6 meses) y Kubernetes (una versión nueva cada trimestre) resultó en o bien la versión de Kubernetes disponible domado bien anterior u omitiendo las liberaciones de Kubernetes. Ni la opción proporcionó una experiencia de usuario buena para los usuarios de Fedora.
Los rpms versionados resuelven esos problemas proporcionando todas las versiones Kubernetes proporcionadas en cada liberación de Fedora (asunto a una restricción Golang; consulte a continuación). Fedora 41 tiene rpms para Kubernetes 1.31, Kubernetes 1.30, Kubernetes 1.29, and Kubernetes 1.28. Estos rpms serán nombrados, respectivamente, kubernetes1.31, kubernetes1.30, kubernetes1.29, y kubernetes1.28. Desde estos rpms tienen nombres diferentes, el gestor de paquetes de Fedora, rpms, los identifican como aplicaciones diferentes, no como versiones diferentes en la misma aplicación. Debido a esta diferencia, los rpms versionados requieren cambios para el proceso de actualización de paquete normal está para ser documentado a continuación.
¿Qué cambió?
Los rpms versionados contienen varios cambios y actualizaciones que difieren desde los rpms sin versión. Para la mayor parte de estos cambios no afectarían el empleo o actualizaciones de rpm pero unos pocos deben tomar atención.
- configuración de kubelet
-
La configuración de
ahora utiliza el archivo de configuración dekubelet
que indicadores pasados como parámetros de línea de comando en el archivo de unidad de systemd.kubelet
- ficheros de systemd kubelet
-
systemd unit files are now largely consistent with corresponding unit files used by the Kubernetes team in their rpms. In particular, kubelet now defaults to runtime configuration using the standardkubelet
configuration file. Non-versioned rpms used command line parameters in systemd files to configurekubelet
.kubelet
- kubelet sysuser
-
non-versioned rpms created a
sysuser forkube
. This sysuser was used for file and group ownership of some but not all files and directories used bykubelet
. This sysuser was not present in rpms from the Kubernetes team and, given its partial implementation in Fedora, removed from the versioned rpms.kubelet
Restricciones del lenguaje Go
Cada versión de Kubernetes (en el nivel menor, ej Kubernete v1.31) es compilado con una versión especificada del lenguaje go. Cada liberación de Fedora está emparejado con una versión go específica. Go 1.22 está disponible en Fedora 40 y go 1.23 está disponible en Fedora 41.
Una versión nueva de Kubernetes puede ser compilada con una versión de Go no disponible en las liberaciones de Fadora más antiguas por tanto bloqueando el empaquetado de que versión de Kubernetes para esa liberación de Fedora.
Rpms de Kubernetes en Fedora
Los rpms versionados de Kubernetes tienen la siguiente organización. Note que esta estructura del paquete además aplica a los paquetes de kubernetes1.28 y kubernetes1.29 los cuales son diferentes desde las contrapartes no versionadas de estas versiones de Kubernetes. La tabla de abajo lista los rpms de Kubernetes disponibles, que el rpm contiene, y notas con el propósito y cualquier cautela o restricciones.
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.
# empleando kubernetes 1.30 como un ejemplo
sudo dnf install kubernetes1.30 kubernetes1.30-kubeadm kubernetes1.30-client
Si conduce una instalación manual de Kubernetes (consulte Kubernetes The Hard Ways) entonces instale todos los rpms de kubernetes excepto kubernetes-kubeadm.
# utilizando kubernetes 1.30 como un ejemplo
sudo dnf install kubernetes1.30 kubernetes1.30-client kubernetes1.30-systemd
Recomendaciones de actualización de rpm con versiones
Ya que los rpm tratan kubernetes1.30 como una aplicación diferente desde kubernetes1.31, por tanto ambos rpms instalan los mismos archivos en el mismo lugar entran en conflicto y el usual
no lo logrará en remplazo de v1.30 por v1.31. Hay disponibles dos opciones cuando utilice dnf: desinstalar/instalar o intercambiar.dnf update
La secuencia desinstalar e instalar utilizando los comandos
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.dnf
Important Note - this is only needed when changing minor versions, that is replacing v1.30 with v1.31. Updates at the patch level such as v1.30.2 to v1.30.3 use the normal
command.dnf update
# Desinstala y reemplaza con kubernetes 1.30 y 1.31 como un ejemplo
sudo dnf remove kubernetes1.30 kubernetes1.30-kubeadm kubernetes1.30-client
sudo dnf install kubernetes1.31 kubernetes1.31-kubeadm kubernetes1.31-client
El comando
además puede ser utilizado para cambiar desde una publicación de Kubernetes a la siguiente. Utilizar intercambio evita re-instalación de dependencias pero la especificación del paquete dnf dnf swap
instalará todos los rpms coincidentes desde el repositorio y no tan solo los rpms desinstalados por la especificación de paquete inicial kubernetes1.31*
.:wkubernetes1.30*
# Desinstalar y sustituir con kubernetes 1.20 y 1.31 como un ejemplo
sudo dnf swap kubernetes1.30* kubernetes1.31*
Want to help? Learn how to contribute to Fedora Docs ›