Intenté configurar el máximo de nodos por pod usando lo siguiente durante la instalación:
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--max-pods 250" sh -s - Sin embargo, el servidor K3s no podrá cargarse. Parece que la bandera --max-pods ha quedado obsoleta según los documentos de kubernetes :
--max-pods int32 Predeterminado: 110
(OBSOLETO: este parámetro debe establecerse a través del archivo de configuración especificado por el indicador --config de
--config. Consulte https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ para obtener más información).
Entonces, con K3s, ¿dónde está ese archivo de configuración de kubelet y puede/debe configurarse usando algo como el método anterior?
Como se describe en la documentación , es posible establecer los parámetros de configuración de Kubelet a través de un archivo de configuración en disco.
NOTA: Al usar un archivo de configuración en disco, podemos establecer solo un subconjunto de los parámetros de configuración de Kubelet que queremos anular, todos los demás valores de configuración de Kubelet se dejan en sus valores predeterminados integrados, a menos que se anulen con banderas.
Creé un archivo de configuración simple para anular el valor de maxPods (predeterminado 110 ):
apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration maxPods: 250 Y luego tenemos que pasar este archivo de configuración como argumento durante la instalación K3s (recomiendo especificar el nombre de ruta absoluto):
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--kubelet-arg=config=<KUBELET_CONFIG_FILE_LOCATION>" sh - Finalmente podemos comprobar que maxPods es igual a 250 :
# kubectl describe nodes <NODE_NAME> | grep -i pod pods: 250 pods: 250 PodCIDR: 10.42.0.0/24 PodCIDRs: 10.42.0.0/24Además, puede encontrar una discusión interesante aquí , creo que puede encontrar allí otra forma de resolver su problema.
Para actualizar su instalación existente con un máximo de pods aumentado, agregue un archivo de configuración de kubelet en una ubicación asociada con k3s, como /etc/rancher/k3s/kubelet.config :
apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration maxPods: 250 edite /etc/systemd/system/k3s.service para cambiar los argumentos del servidor k3s:
ExecStart=/usr/local/bin/k3s \ server \ '--disable' \ 'servicelb' \ '--disable' \ 'traefik' \ '--kubelet-arg=config=/etc/rancher/k3s/kubelet.config'recargar systemctl para recoger el cambio de servicio:
sudo systemctl daemon-reload
reiniciar k3s:
sudo systemctl restart k3s
Verifique la salida de los nodos de descripción con kubectl describe <node> y busque recursos asignables:
Allocatable: cpu: 32 ephemeral-storage: 199789251223 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 131811756Ki pods: 250y un mensaje que indica que el límite de nodos asignables se actualizó en Eventos:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Starting 20m kube-proxy Starting kube-proxy. Normal Starting 20m kubelet Starting kubelet. ... Normal NodeNotReady 7m52s kubelet Node <node> status is now: NodeNotReady Normal NodeAllocatableEnforced 7m50s kubelet Updated Node Allocatable limit across pods Normal NodeReady 7m50s kubelet Node <node> status is now: NodeReady