Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al personalizar la configuración del nodo, puede ajustar la configuración del sistema operativo (SO) o los parámetros de kubelet para satisfacer las necesidades de las cargas de trabajo. Al crear un clúster de AKS o agregar un grupo de nodos al clúster, puede personalizar un subconjunto de los valores de configuración de kubelet y del sistema operativo más usados. Para configurar opciones más allá de este subconjunto, utilice un DaemonSet para personalizar las configuraciones que necesite sin perder la compatibilidad de AKS para sus nodos.
Prerequisites
A medida que el servicio incorpora compatibilidad con nuevas opciones de configuración y parámetros de kubelet, es posible que sea necesario registrar indicadores de características en versión preliminar. Si se requiere un indicador de versión preliminar, la referencia de parámetros de configuración del nodo personalizado lo indica.
Requisitos de versión preliminar para kubeReserved la configuración de kubelet y hardEvictionThreshold
Importante
Las características en versión preliminar de AKS están disponibles en modalidad de autoservicio y previa suscripción. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Instalación de la extensión aks-preview CLI de Azure
Ejecute el siguiente comando para instalar la extensión de versión preliminar de AKS:
az extension add --name aks-previewEjecute el siguiente comando para actualizar a la versión más reciente de la extensión:
az extension update --name aks-preview
Registre la marca de característica CustomNodeConfigPreview en su suscripción de Azure antes de usar la configuración de kubelet kubeReserved y hardEvictionThreshold en versión preliminar.
Registro de la marca de característica CustomNodeConfigPreview
Registre el indicador de función
CustomNodeConfigPreviewcon el comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Tarda unos minutos en que el estado muestre Registrado.
Compruebe el estado del registro mediante el
az feature showcomando .az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Cuando el estado muestre Registrado, actualice la inscripción del proveedor de recursos Microsoft.ContainerService mediante el comando
az provider register.az provider register --namespace "Microsoft.ContainerService"
Creación de archivos de configuración de nodos personalizados para grupos de nodos de AKS
Para cambiar la configuración del sistema operativo y kubelet, cree un nuevo archivo de configuración con los parámetros y la configuración que desee. Si no especifica un valor para un parámetro, se usa el valor predeterminado.
Nota
En los ejemplos siguientes se muestran las opciones de configuración comunes. Modifique la configuración para cumplir los requisitos de carga de trabajo. Para obtener la lista completa de parámetros de configuración personalizados admitidos, consulte Parámetros de configuración de nodo personalizados para AKS.
Configuración de kubelet
Cree un archivo linuxkubeletconfig.json con el siguiente contenido:
{
"cpuManagerPolicy": "static",
"cpuCfsQuota": true,
"cpuCfsQuotaPeriod": "200ms",
"imageGcHighThreshold": 90,
"imageGcLowThreshold": 70,
"topologyManagerPolicy": "best-effort",
"allowedUnsafeSysctls": [
"kernel.msg*",
"net.*"
],
"failSwapOn": false
}
Para usar la configuración de kubelet de la versión preliminar de personalización de nodos de Node en grupos de nodos de Linux, agregue kubeReserved y hardEvictionThreshold al archivo de configuración de kubelet. El ejemplo siguiente reserva CPU y memoria para los daemons del sistema de Kubernetes y configura los umbrales de expulsión estrictos del kubelet:
{
"cpuManagerPolicy": "static",
"kubeReserved": {
"cpuMillicores": 200,
"memoryMB": 1024
},
"hardEvictionThreshold": {
"memoryAvailable": "20%",
"nodeFsAvailable": "10%",
"nodeFsInodesFree": "5%"
}
}
Use kubeReserved y hardEvictionThreshold solo en grupos de nodos de Linux. Ambas configuraciones requieren el indicador de función CustomNodeConfigPreview.
Configuración del sistema operativo
Cree un archivo linuxosconfig.json con el siguiente contenido:
{
"transparentHugePageEnabled": "madvise",
"transparentHugePageDefrag": "defer+madvise",
"swapFileSizeMB": 1500,
"sysctls": {
"netCoreSomaxconn": 163849,
"netIpv4TcpTwReuse": true,
"netIpv4IpLocalPortRange": "32000 60000"
}
}
Creación de un clúster de AKS mediante archivos de configuración personalizados
Nota
Tenga en cuenta la siguiente información al usar archivos de configuración personalizados al crear un nuevo clúster de AKS:
- Si especifica una configuración al crear un clúster, la configuración solo se aplica a los nodos del grupo de nodos inicial. El clúster conserva los valores predeterminados de las opciones que no están configuradas en el archivo JSON.
-
CustomLinuxOsConfigno es compatible con el tipo de sistema operativo Windows. - La configuración preliminar de kubelet
kubeReservedyhardEvictionThresholdsolo es compatible con los grupos de nodos Linux y requiere la marca de característicaCustomNodeConfigPreview. Complete los pasos de registro en Requisitos de versión preliminar parakubeReservedyhardEvictionThresholdla configuración de kubelet antes de crear el clúster o el grupo de nodos.
Crear un clúster nuevo con archivos de configuración personalizados ejecutando el comando az aks create y especificando los archivos de configuración para los parámetros --kubelet-config y --linux-os-config. El siguiente comando de ejemplo crea un nuevo clúster con los archivos personalizados ./linuxkubeletconfig.json y ./linuxosconfig.json:
az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json
Adición de un grupo de nodos mediante archivos de configuración personalizados
Nota
Tenga en cuenta la siguiente información al usar archivos de configuración personalizados para agregar un nuevo grupo de nodos a un clúster de AKS existente:
- Al agregar un grupo de nodos de Linux a un clúster existente, puede especificar la configuración de kubelet, la configuración del sistema operativo, o ambas. Cuando se agrega un grupo de nodos Windows a un clúster existente, sólo se puede especificar la configuración de kubelet. Si especifica una configuración al agregar un grupo de nodos, la configuración solo se aplica a los nodos del nuevo grupo de nodos. El grupo de nodos conserva los valores predeterminados de las opciones que no están configuradas en el archivo JSON.
-
CustomKubeletConfiges compatible con los grupos de nodos de Linux y Windows. - La configuración preliminar de kubelet
kubeReservedyhardEvictionThresholdsolo es compatible con los grupos de nodos Linux y requiere la marca de característicaCustomNodeConfigPreview. Complete los pasos de registro en Requisitos de versión preliminar parakubeReservedyhardEvictionThresholdla configuración de kubelet antes de crear el clúster o el grupo de nodos.
Cree un nuevo grupo de nodos de Linux mediante el az aks nodepool add comando y especifique los archivos de configuración para los --kubelet-config parámetros y --linux-os-config . El siguiente comando de ejemplo crea un nuevo grupo de nodos de Linux con el archivo personalizado ./linuxkubeletconfig.json :
az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json
Confirmación de que se aplicó la configuración
Después de aplicar la configuración de nodo personalizada, puede confirmar que la configuración se aplicó a los nodos conectándose al host y comprobandosysctl o realizando cambios de configuración en el sistema de archivos.
Revisión de los parámetros de configuración personalizados admitidos
Para obtener la lista completa de parámetros de configuración de kubelet y Linux compatibles, valores permitidos, valores predeterminados y descripciones, consulte Parámetros de configuración de nodo personalizados para AKS.
Consideraciones sobre las configuraciones de nodo personalizadas
Tenga en cuenta las siguientes consideraciones al personalizar la configuración del nodo:
- Las actualizaciones de imágenes de nodo vuelven a aplicar configuraciones de nodo personalizadas.
- Las operaciones de escalado horizontal conservan las configuraciones de nodos personalizadas.
- AKS no realiza la validación previa al vuelo para cada parámetro o valor de configuración de nodo personalizado. Asegúrese de que los valores y parámetros de configuración de nodo personalizados que especifique son compatibles y válidos para evitar posibles problemas con los nodos del clúster.
- Las configuraciones en versión preliminar
kubeReservedyhardEvictionThresholdsolo están disponibles en grupos de nodos Linux. - Si configura
kubeReserved, los valores deben ser positivos y no pueden superar la capacidad de CPU o memoria disponible en el grupo de nodos de destino. - Si configura
hardEvictionThreshold, use solo las unidades admitidas:Ki,Mi,Gio%paramemoryAvailableynodeFsAvailable, y un número sin formato o%paranodeFsInodesFree. - Los valores predeterminados para los parámetros de configuración de nodos personalizados suelen cambiar con las nuevas versiones del sistema operativo. Al aplicar configuraciones de nodo personalizadas, revise los valores predeterminados de los parámetros que está configurando para asegurarse de que las opciones personalizadas son adecuadas para la versión del sistema operativo de los nodos del clúster.
- Limite el número de personas que tienen permisos para modificar la configuración del nodo personalizado para evitar consecuencias imprevistas en la estabilidad y el rendimiento del clúster. Considere usar Microsoft Entra ID para la autorización de la API de Kubernetes para restringir el acceso a la configuración del clúster.
- Separe los grupos de nodos con configuraciones personalizadas de aquellas sin configuraciones personalizadas para evitar consecuencias imprevistas en las cargas de trabajo que podrían ser sensibles a determinados cambios de configuración. Por ejemplo, si tiene una carga de trabajo crítica que requiere una configuración específica de kubelet, considere la posibilidad de aislar esa carga de trabajo en un grupo de nodos dedicado con la configuración de kubelet personalizada necesaria.
Contenido relacionado
- Aprenda a configurar su clúster de AKS.
- Obtenga información sobre cómo actualizar las imágenes de nodo en el clúster.
- Consulte Actualización de un clúster de Azure Kubernetes Service (AKS) para más información sobre cómo actualizar el clúster a la versión más reciente de Kubernetes.
- Consulte la lista de Preguntas más frecuentes sobre AKS para encontrar respuestas a algunas preguntas comunes sobre AKS.