Personalización de la configuración de kubelet - Guía del usuario de Eksctl

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Personalización de la configuración de kubelet

Los recursos del sistema se pueden reservar mediante la configuración del kubelet. Esto se recomienda porque, en caso de escasez de recursos, es posible que el kubelet no pueda desalojar los pods y, finalmente, hacer que el nodo se convierta en uno. NotReady Para ello, los archivos de configuración pueden incluir un kubeletExtraConfig campo que acepte un yaml de formato libre que se incrustará en el. kubelet.yaml

Algunos campos de los kubelet.yaml están configurados por eksctl y, por lo tanto, no se pueden sobrescribir, como el,,address, clusterDomain o. authentication authorization serverTLSBootstrap

El siguiente archivo de configuración de ejemplo crea un grupo 300Mi de nodos que reserva la 300m vCPU, la memoria y 1Gi el almacenamiento efímero para el kubelet; la 300m vCPU300Mi, la memoria 1Gi y el almacenamiento efímero para los demonios del sistema operativo; y activa el desalojo de los pods cuando hay menos de memoria disponible o menos del 10% del sistema de archivos raíz. 200Mi

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: dev-cluster-1 region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5a.xlarge desiredCapacity: 1 kubeletExtraConfig: kubeReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" kubeReservedCgroup: "/kube-reserved" systemReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" evictionHard: memory.available: "200Mi" nodefs.available: "10%" featureGates: RotateKubeletServerCertificate: true # has to be enabled, otherwise it will be disabled

En este ejemplo, dadas las instancias de tipo m5a.xlarge que tienen 4 V CPUs y 16 GiB de memoria, la Allocatable cantidad CPUs sería de 3,4 y 15,4 GiB de memoria. Es importante saber que los valores especificados en el archivo de configuración para los campos kubeletExtraConfig sobrescribirán por completo los valores predeterminados especificados por eksctl. Sin embargo, si se omite uno o más kubeReserved parámetros, los parámetros faltantes se establecerán de forma predeterminada con valores idénticos en función del tipo de instancia de AWS que se utilice.

kubeReservedcálculo

Si bien generalmente se recomienda configurar una instancia mixta NodeGroup para usar instancias con la misma configuración de CPU y RAM, no es un requisito estricto. Por lo tanto, el kubeReserved cálculo utiliza la instancia más pequeña del InstanceDistribution.InstanceTypes campo. De esta forma, NodeGroups con tipos de instancias dispares, no se reservarán demasiados recursos en la instancia más pequeña. Sin embargo, esto podría provocar una reserva demasiado pequeña para el tipo de instancia más grande.

aviso

De forma predeterminadafeatureGates.RotateKubeletServerCertificate=true, se eksctl establece, pero cuando featureGates se proporciona una configuración personalizada, no se establecerá. Siempre debes incluirlofeatureGates.RotateKubeletServerCertificate=true, a menos que tengas que deshabilitarlo.