Configuración de kubelet Resiliente

Bradley G Smith, Versión F39,F40,F41 Last review: 2024-07-28

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.

Descripción general de Kubelet

El kubelet es el agente Kubernetes que ejecuta en cada nodo en un clúster. kubelet está instalado utilizando el rpm kubernetes (p.ej kubernetes1.30 es un rpm versionado para Kubernetes v1.30). El kubelet ejecuta como un servicio systemd en Fedora. En implementaciones anticipadas, el kubelet era configurado por medio de indicadores que eran establecidos dentro de un archivo de unidad systemd y pasados al kubelet como parámetro de línea de instrucción.

En las versiones más recientes de `kubelet`estos indicadores están obsoletos en favor de un archivo de configuración que utiliza o bien JSON o bien YAML para la sintaxis de configuración.

La herencia de rpms no versionados utilizan, por defecto, indicadores para configurar el kubelet. Los rpms versiones utilizan el método de archivo de configuración.

Con ambos rpms versionados y no versionados, todos los archivos, incluyendo los archivos relacionados con systemd, puede ser borrados durante actualizaciones de versión (p.ej. las actualizaciones de versión menor kubernetes1.29 a kubernetes1.30). Si estos archivos están modificados por el usuario entonces hay un riesgo ahí que cambios útiles o importantes pueden perderse. Systemd proporciona opciones que ayudan a salvaguardar frente a pérdidas de configuraciones específicas del nodo.

Recomendaciones de configuración de systemd

Indicadores para el kubelet ejecutando en un nodo están establecidos dentro de una unidad de systemd del archivo con la dependencia de archivo relevante en la cual rpms está instalado.

El rpm kubernetes (p.ej. kubernetes1.30 para versión 1.30) instala el archivo `kubelet`de systemd en:

/usr/lib/systemd/system/kubelet.service

El rpm kubernetes-kubeadm instala un archivo de unidad kubelet primordial en:

/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

Recomendado intensamente no modificar ni el archivo como cualquier cambio pudo ser perdido durante una actualización.

Como documentado por el equipo Kubernetes (https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#the-kubelet-drop-in-file-for-systemd), crea el siguiente directorio para usuario gestionado, nivel-sistema de systemd anula kubelet:

$ sudo mkdir -p /etc/systemd/system/kubelet.service.d/

Then create a unit file (.conf extension required) and copy the file to the directory listed above. Settings in this file will override settings from either or both of the default systemd files.

Este archivo no es gestionado por el gestos de paquete del sistema y será no cambiado por actualizaciones de versión de kubernetes. Asegúrese tener control de versión de software y/o un plan de respaldo en un lugar para evitar pérdidas durante una modernización del sistema Fedora o un accidente.

Recomendaciones de archivo de configuración

Todos los rpms kubernetes versionados utilizan un archivo de configuraciṕon kubelet por defecto. Si este archivo no existe será creado durante el proceso de instalación del cluster. La localización del archivo de configuración por defecto es:

# archivo de configuración predeterminado
$ /var/lib/kubelet/config.yaml

Este archivo no es gestionado por rpm por tanto persistirá a través de modernizaciones de kubernetes.

Archivo de configuración dejado adentro

Kubernetes 1.30 y más nuevos tienen una opción de archivo de configuración dejado dentro que no está habilitado por defecto. En un archivo de systemd define una ruta utilizando la opción --config-dir:

# definir configdir
--config-dir=/etc/kubernetes/kubelet.conf.d

Consulte la documentación en línea para información actual incluyendo una opción para habilitar esta característica para v1.28 o v1.29.

Ordenación de unión del archivo de configuración

Como el `kubelet`arranca, los parámetros de configuración son unidos en el orden siguiente (une documentación ordenadas):

  1. Feature gates specified over the command line (lowest precedence).

  2. La configuración de kubelet.

  3. Drop-in configuration files, according to sort order.

  4. Command line arguments excluding feature gates (highest precedence).