Editar

Compartir vía


Administración de nodos y grupos de nodos de Kubernetes

Azure Kubernetes Service (AKS)
Azure Virtual Machines

La arquitectura de Kubernetes se basa en dos capas: el plano de control y uno o varios nodos de los grupos de nodos. En este artículo se describe y compara cómo Amazon Elastic Kubernetes Service (Amazon EKS) y Azure Kubernetes Service (AKS) administran los nodos de trabajo o agente.

Nota:

Este artículo forma parte de una serie de artículos que ayudan a los profesionales que están familiarizados con Amazon EKS a comprender Azure Kubernetes Service (AKS).

En Amazon EKS y AKS, la plataforma de nube proporciona y administra la capa del plano de control, y el cliente administra la capa de nodo. En el diagrama siguiente se muestra la relación entre el plano de control y los nodos en la arquitectura de Kubernetes de AKS.

Diagrama que muestra el plano de control y los nodos de la arquitectura de AKS.

Grupos de nodos administrados de Amazon EKS

Los grupos de nodos administrados de Amazon EKS automatizan el aprovisionamiento y la administración del ciclo de vida de los nodos de trabajo de Amazon Elastic Compute Cloud (EC2) en clústeres de Amazon EKS. Los usuarios de Amazon Web Services (AWS) pueden usar la utilidad de línea de comandos eksctl para crear, actualizar o finalizar nodos de sus clústeres de EKS. Las actualizaciones y finalizaciones de nodos acordonan y purgan automáticamente los nodos para asegurarse de que las aplicaciones permanecen disponibles.

Cada nodo administrado se aprovisiona como parte de un grupo de escalabilidad automática de Amazon EC2 que Amazon EKS opera y controla. El escalador automático de clústeres de Kubernetes ajusta automáticamente el número de nodos de trabajo de un clúster cuando se produce un error en los pods o se vuelven a programar en otros nodos. Cada grupo de nodos se puede configurar para ejecutarse en varias instancias de Availability Zones dentro de una región.

Para más información sobre los nodos administrados de Amazon EKS, consulte Creación de un grupo de nodos administrados y Actualización de un grupo de nodos administrados.

También puede ejecutar pods de Kubernetes en AWS Fargate. Fargate proporciona capacidad de proceso a petición y del tamaño adecuado para los contenedores. Para más información sobre cómo usar Fargate con Amazon EKS, consulte AWS Fargate.

Nodos y grupos de nodos de AKS

La creación de un clúster de AKS crea y configura automáticamente un plano de control, que proporciona servicios básicos de Kubernetes y orquestación de las cargas de trabajo de aplicaciones. La plataforma Azure proporciona el plano de control de AKS sin costo alguno como recurso de Azure administrado. El plano de control y sus recursos solo existen en la región en la que creó el clúster.

Los nodos, también llamados nodos de agente o nodos de trabajo, hospedan las cargas de trabajo y las aplicaciones. En AKS, los clientes administran por completo los nodos de agente asociados al clúster de AKS y pagan por ellos.

Para ejecutar aplicaciones y servicios auxiliares, un clúster de AKS necesita al menos un nodo: una máquina virtual (VM) de Azure para ejecutar los componentes del nodo de Kubernetes y el entorno de ejecución del contenedor. Cada clúster de AKS debe contener al menos un grupo de nodos del sistema con al menos un nodo.

AKS agrupa los nodos de la misma configuración en grupos de nodos de máquinas virtuales que ejecutan cargas de trabajo de AKS. Los grupos de nodos del sistema tienen el propósito principal de hospedar los pods críticos del sistema, como CoreDNS. Los grupos de nodos de usuario tienen el propósito principal de hospedar los pods de carga de trabajo. Si solo quiere tener un grupo de nodos en el clúster de AKS, por ejemplo, en un entorno de desarrollo, puede programar pods de aplicación en el grupo de nodos del sistema.

Diagrama que muestra un único nodo de Kubernetes.

También puede crear varios grupos de nodos de usuario para separar diferentes cargas de trabajo de distintos nodos a fin de evitar el problema de vecino ruidoso o para admitir aplicaciones con diferentes exigencias de proceso o almacenamiento.

Cada nodo de agente de un grupo de nodos de usuario o del sistema es una máquina virtual aprovisionada como parte de Azure Virtual Machine Scale Sets y administrada por el clúster de AKS. Para más información, consulte Nodos y grupos de nodos.

Puede definir el número inicial y el tamaño de los nodos de trabajo al crear un clúster de AKS o al agregar nuevos nodos y grupos de nodos a un clúster de AKS existente. Si no especifica un tamaño de máquina virtual, el tamaño predeterminado es Standard_D2s_v3 para grupos de nodos de Windows y Standard_DS2_v2 para grupos de nodos de Linux.

Importante

Para que haya una mejor latencia en las llamadas dentro de los nodos y las comunicaciones con servicios de plataforma, seleccione una serie de máquinas virtuales que admitan redes aceleradas.

Creación de grupos de nodos

Puede agregar un grupo de nodos a un clúster de AKS nuevo o existente mediante Azure Portal, la CLI de Azure, la API REST de AKS o las herramientas de infraestructura como código (IaC), como Bicep, plantillas de Azure Resource Manager o Terraform. Para más información sobre cómo agregar grupos de nodos a un clúster de AKS existente, consulte Creación y administración de varios grupos de nodos en un clúster de Azure Kubernetes Service (AKS).

Al crear un grupo de nodos, el conjunto de escalado de máquinas virtuales asociado se crea en el grupo de recursos de nodo, un grupo de recursos de Azure que contiene todos los recursos de infraestructura del clúster de AKS. Estos recursos incluyen los nodos de Kubernetes, recursos de red virtual, identidades administradas y almacenamiento.

De forma predeterminada, el grupo de recursos del nodo tiene un nombre como MC_<resourcegroupname>_<clustername>_<location>. AKS elimina automáticamente el grupo de recursos de nodo al eliminar un clúster, por lo que debe usar este grupo de recursos solo para los recursos que comparten el ciclo de vida del clúster.

Adición de un grupo de nodos

En el ejemplo de código siguiente se usa el comando az aks nodepool add de la CLI de Azure para agregar un grupo de nodos llamado mynodepool con tres nodos a un clúster de AKS existente llamado myAKSCluster en el grupo de recursos myResourceGroup.

az aks nodepool add \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --node-vm-size Standard_D8ds_v4 \
      --name mynodepool \
      --node-count 3

Grupos de nodos de acceso puntual

Un grupo de nodos de Spot está respaldado por un conjunto de escalado de máquinas virtuales de Spot. El uso de máquinas virtuales de acceso puntual con nodos del clúster de AKS permite aprovechar la capacidad no utilizada en Azure y así obtener un importante ahorro en los costos. La capacidad disponible no utilizada variará en función de muchos factores, como el tamaño del nodo, la región y la hora del día.

Al implementar un grupo de nodos de acceso puntual, Azure asigna los nodos de acceso puntual si hay capacidad disponible. Sin embargo, no hay ningún acuerdo de nivel de servicio (SLA) para los nodos de acceso puntual. Un conjunto de escalado de acceso puntual que respalda el grupo de nodos de acceso puntual se implementa en un solo dominio de error y no ofrece garantías de alta disponibilidad. Cuando Azure necesita recuperar la capacidad, la infraestructura de Azure expulsa los nodos de acceso puntual y recibe como máximo un aviso de 30 segundos antes de la expulsión. Tenga en cuenta que un grupo de nodos de acceso puntual no puede ser el grupo de nodos predeterminado del clúster. Un grupo de nodos de acceso puntual solo se puede usar como grupo secundario.

Los nodos de acceso puntual son para cargas de trabajo que controlen las interrupciones, las finalizaciones tempranas o las expulsiones. Por ejemplo, los trabajos de procesamiento por lotes, los entorno de desarrollo y pruebas y las cargas de trabajo de proceso de gran tamaño son buenos candidatos para la programación en un grupo de nodos de acceso puntual. Para más información, consulte las limitaciones de la instancia de acceso puntual.

El comando siguiente az aks nodepool add agrega un grupo de nodos de acceso puntual a un clúster existente con la escalabilidad automática habilitada.

  az aks nodepool add \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name myspotnodepool \
      --node-vm-size Standard_D8ds_v4 \
      --priority Spot \
      --eviction-policy Delete \
      --spot-max-price -1 \
      --enable-cluster-autoscaler \
      --min-count 1 \
      --max-count 3 \
      --no-wait

Para más información sobre los grupos de nodos de acceso puntual, consulte Adición de un grupo de nodos de acceso puntual a un clúster de Azure Kubernetes Service (AKS).

Discos de sistema operativo efímero

De manera predeterminada, Azure replica automáticamente el disco del sistema operativo de una máquina virtual en Azure Storage con el fin de evitar la pérdida de datos si hay que reubicar la máquina virtual en otro host. Sin embargo, dado que los contenedores no están diseñados para conservar el estado local, mantener el disco del sistema operativo en el almacenamiento ofrece un valor limitado para AKS. Hay algunas desventajas, como el aprovisionamiento de nodos más lento y una mayor latencia de lectura y escritura.

En contraposición, los discos de SO efímeros solo se almacenan en la máquina host, como un disco temporal, y proporcionan una latencia de lectura y escritura más baja, así como escalado de nodos y actualizaciones de clúster más rápidas. Al igual que sucede con un disco temporal, un disco de SO efímero está incluido en el precio de la máquina virtual, por lo que no lleva asociado ningún costo adicional de almacenamiento.

Importante

Si no se solicitan explícitamente discos administrados para el sistema operativo, AKS toma como valor predeterminado un sistema operativo efímero, siempre que sea posible, para una configuración de grupo de nodos determinada.

Para usar un sistema operativo efímero, el disco del sistema operativo debe caber en la caché de la máquina virtual. La documentación de la máquina virtual de Azure muestra el tamaño de la caché de máquinas virtuales entre paréntesis junto al rendimiento de E/S como tamaño de caché en gibibytes (GiB).

Por ejemplo, el tamaño de máquina virtual Standard_DS2_v2 predeterminado de AKS con el tamaño de disco del sistema operativo predeterminado de 100 GB admite el sistema operativo efímero, pero solo tiene 86 GB de tamaño de caché. Esta configuración toma como valor predeterminado el disco administrado si no especifica explícitamente lo contrario. Si solicita explícitamente un sistema operativo efímero para este tamaño, obtendrá un error de validación.

Si solicita la misma máquina virtual Standard_DS2_v2 con un disco del sistema operativo de 60 GB, obtendrá de forma predeterminada el sistema operativo efímero. El tamaño del sistema operativo solicitado de 60 GB es menor que el tamaño máximo de caché de 86 GB.

Standard_D8s_v3 con un disco del sistema operativo de 100 GB admite el sistema operativo efímero y tiene 200 GB de espacio en caché. Si un usuario no especifica el tipo de disco del sistema operativo, el grupo de nodos recibe un sistema operativo efímero de manera predeterminada.

El comando siguiente az aks nodepool add muestra cómo agregar un nuevo grupo de nodos a un clúster existente con un disco de SO efímero. El parámetro --node-osdisk-type establece el tipo de disco de sistema operativo en Ephemeral y el parámetro --node-osdisk-size define el tamaño del disco de sistema operativo.

  az aks nodepool add \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name mynewnodepool \
      --node-vm-size Standard_D8ds_v4 \
      --node-osdisk-type Ephemeral \
      --node-osdisk-size 48

Para más información sobre los discos de SO efímeros, consulte Sistema operativo efímero.

Nodos virtuales

Puede usar nodos virtuales para escalar horizontalmente las cargas de trabajo de aplicaciones de forma rápida en un clúster de AKS. Los nodos virtuales proporcionan aprovisionamiento rápido de pods y solo se paga por segundo en tiempo de ejecución. No es necesario esperar a que el escalador automático de clústeres implemente nuevos nodos de trabajo para ejecutar más réplicas de pod. Los nodos virtuales solo son compatibles con nodos y pods de Linux. El complemento de nodos virtuales para AKS se basa en el proyecto de código abierto Virtual Kubelet.

La funcionalidad del nodo virtual depende de Azure Container Instances. Para más información sobre los nodos virtuales, consulte Creación y configuración de un clúster de Azure Kubernetes Services (AKS) para usar nodos virtuales.

Marcas y etiquetas

Al crear un grupo de nodos, puede agregar marcas y etiquetas de Kubernetes, y etiquetas de Azure, a ese grupo de nodos. Al agregar una marca o una etiqueta, todos los nodos de ese grupo de nodos también la obtienen.

Para crear un grupo de nodos con una marca, puede usar el comando az aks nodepool add con el parámetro --node-taints. Para etiquetar los nodos de un grupo de nodos, puede usar el parámetro --labels y especificar una lista de etiquetas, como se muestra en el código siguiente:

  az aks nodepool add \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name mynodepool \
      --node-vm-size Standard_NC6 \
      --node-taints sku=gpu:NoSchedule \
      --labels dept=IT costcenter=9999

Para más información, consulte Especificación de un valor taint o una etiqueta para un grupo de nodos.

Etiquetas reservadas del sistema

Amazon EKS agrega etiquetas de Kubernetes automatizadas a todos los nodos de un grupo de nodos administrados, como eks.amazonaws.com/capacityType, que especifica el tipo de capacidad. AKS también agrega automáticamente etiquetas del sistema a los nodos de agente.

AKS reserva la siguiente lista de prefijos para su uso y no se pueden emplear con ningún nodo:

  • kubernetes.azure.com/
  • kubernetes.io/

Para ver otros prefijos reservados, consulte Etiquetas, anotaciones y marcas conocidas de Kubernetes.

En la tabla siguiente se enumeran las etiquetas reservadas para el uso de AKS y no se pueden emplear con ningún nodo. En la tabla, la columna Uso del nodo virtual especifica si la etiqueta se admite en los nodos virtuales.

En la columna Uso del nodo virtual:

  • N/A significa que la propiedad no se aplica a los nodos virtuales porque sería necesario modificar el host.
  • Lo mismo significa que los valores esperados son los mismos para un grupo de nodos virtuales que para un grupo de nodos estándar.
  • Virtual reemplaza los valores de SKU de máquina virtual, ya que los pods de nodo virtual no exponen ninguna máquina virtual subyacente.
  • La versión del nodo virtual hace referencia a la versión actual de la versión del conector virtual de Kubelet-ACI.
  • Nombre de subred del nodo virtual es el nombre de la subred que implementa los pods de nodo virtual en Azure Container Instances.
  • Red virtual de nodo virtual es la red virtual que contiene la subred del nodo virtual.
Etiqueta Value Ejemplo, opciones Uso del nodo virtual
kubernetes.azure.com/agentpool <agent pool name> nodepool1 Iguales
kubernetes.io/arch amd64 runtime.GOARCH N/D
kubernetes.io/os <OS Type> Linux o Windows Linux
node.kubernetes.io/instance-type <VM size> Standard_NC6 Virtual
topology.kubernetes.io/region <Azure region> westus2 Iguales
topology.kubernetes.io/zone <Azure zone> 0 Iguales
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 Iguales
kubernetes.azure.com/mode <mode> User o System User
kubernetes.azure.com/role agent Agent Iguales
kubernetes.azure.com/scalesetpriority <scale set priority> Spot o Regular N/D
kubernetes.io/hostname <hostname> aks-nodepool-00000000-vmss000000 Iguales
kubernetes.azure.com/storageprofile <OS disk storage profile> Managed N/D
kubernetes.azure.com/storagetier <OS disk storage tier> Premium_LRS N/D
kubernetes.azure.com/instance-sku <SKU family> Standard_N Virtual
kubernetes.azure.com/node-image-version <VHD version> AKSUbuntu-1804-2020.03.05 Versión del nodo virtual
kubernetes.azure.com/subnet <nodepool subnet name> subnetName Nombre de subred del nodo virtual
kubernetes.azure.com/vnet <nodepool virtual network name> vnetName Red virtual de nodo virtual
kubernetes.azure.com/ppg <nodepool ppg name> ppgName N/D
kubernetes.azure.com/encrypted-set <nodepool encrypted-set name> encrypted-set-name N/D
kubernetes.azure.com/accelerator <accelerator> Nvidia N/D
kubernetes.azure.com/fips_enabled <fips enabled> True N/D
kubernetes.azure.com/os-sku <os/sku> Consulte Creación o actualización de la SKU de sistema operativo. SKU de Linux

Grupos de nodos de Windows

AKS admite la creación y el uso de grupos de nodos de contenedor de Windows Server mediante el complemento de red Interfaz de red de contenedor (CNI) de Azure. Para planear los intervalos de subred necesarios y las consideraciones de red, consulte Configuración de redes de Azure CNI.

El comando siguiente az aks nodepool add agrega un grupo de nodos que ejecuta contenedores de Windows Server.

  az aks nodepool add \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name mywindowsnodepool \
      --node-vm-size Standard_D8ds_v4 \
      --os-type Windows \
      --node-count 1

El comando anterior usa la subred predeterminada de la red virtual del clúster de AKS. Para más información sobre cómo crear un clúster de AKS con un grupo de nodos de Windows, consulte Creación de un contenedor de Windows Server en AKS.

Consideraciones sobre los grupos de nodos

Se aplican las siguientes consideraciones y limitaciones al crear y administrar grupos de nodos y varios grupos de nodos:

  • Las cuotas, las restricciones de tamaño de máquina virtual y la disponibilidad de regiones se aplican a los grupos de nodos de AKS.

  • Los grupos del sistema deben contener al menos un nodo. Puede eliminar grupos de nodos del sistema si dispone de otro grupo de nodos del sistema que ocupe su lugar en el clúster de AKS. Los grupos de nodos de usuario pueden contener cero o más nodos.

  • No puede cambiar el tamaño de VM de un grupo de nodos después de crearlo.

  • Para varios grupos de nodos, el clúster de AKS debe usar los equilibradores de carga de SKU estándar. Los equilibradores de carga de SKU básica no admiten varios grupos de nodos.

  • Todos los grupos de nodos de clúster deben estar en la misma red virtual y todas las subredes asignadas a cualquier grupo de nodos deben estar en la misma red virtual.

  • Si crea varios grupos de nodos en el momento de la creación del clúster, las versiones de Kubernetes para todos los grupos de nodos deben coincidir con la versión del plano de control. Puede actualizar las versiones después de aprovisionar el clúster mediante operaciones por grupo de nodos.

Escalado de grupos de nodos

A medida que la carga de trabajo de las aplicaciones cambia, puede que tenga que escalar el número de nodos de un grupo de nodos. Puede escalar o reducir verticalmente el número de nodos de forma manual mediante el comando az aks nodepool scale. En el ejemplo siguiente se escala el número de nodos de mynodepool a cinco:

az aks nodepool scale \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 5

Escalado automático de grupos de nodos mediante el escalador automático de clústeres

AKS admite el escalado automático de grupos de nodos con el escalador automático de clústeres. Esta característica se habilita en cada grupo de nodos, y se define un número mínimo y máximo de nodos.

El comando siguiente az aks nodepool add agrega un nuevo grupo de nodos llamado mynodepool a un clúster existente. El parámetro --enable-cluster-autoscaler habilita el escalador automático de clústeres en el nuevo grupo de nodos y los parámetros --min-count y --max-count especifican el número mínimo y máximo de nodos del grupo.

  az aks nodepool add \
  --resource-group myResourceGroup \
  --cluster-name myAKSCluster \
  --name mynewnodepool \
  --node-vm-size Standard_D8ds_v4 \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 5

El siguiente comando az aks nodepool update actualiza el número mínimo de nodos de uno a tres para el grupo de nodos mynewnodepool.

  az aks nodepool update \
  --resource-group myResourceGroup \
  --cluster-name myAKSCluster \
  --name mynewnodepool \
  --update-cluster-autoscaler \
  --min-count 1 \
  --max-count 3

Puede deshabilitar el escalador automático de clústeres con az aks nodepool update pasando el parámetro --disable-cluster-autoscaler.

  az aks nodepool update \
  --resource-group myResourceGroup \
  --cluster-name myAKSCluster \
  --name mynodepool \
  --disable-cluster-autoscaler

Para volver a habilitar el escalador automático de clústeres en un clúster existente, use az aks nodepool update, y especifique los parámetros --enable-cluster-autoscaler, --min-count y --max-count.

Para más información sobre cómo usar el escalador automático de clústeres para grupos de nodos individuales, consulte Escalado automático de un clúster para satisfacer las demandas de la aplicación en Azure Kubernetes Service (AKS).

Actualizaciones

Azure actualiza periódicamente su plataforma de hospedaje de máquinas virtuales para mejorar la confiabilidad, el rendimiento y la seguridad. Estas actualizaciones van desde la aplicación de revisiones a componentes de software en el entorno de hospedaje hasta la actualización de los componentes de red o la retirada de hardware. Para más información sobre cómo Azure actualiza las máquinas virtuales, consulte Mantenimiento de máquinas virtuales en Azure.

Las actualizaciones de infraestructura de hospedaje de máquinas virtuales no suelen afectar a las máquinas virtuales hospedadas, como los nodos de agente de los clústeres de AKS existentes. En el caso de las actualizaciones que afectan a las máquinas virtuales hospedadas, Azure minimiza los casos que requieren reinicios pausando la máquina virtual mientras se actualiza el host o migrando en vivo la máquina virtual a un host ya actualizado.

Si una actualización requiere un reinicio, Azure proporciona una notificación y una ventana de tiempo para que pueda iniciar la actualización cuando le convenga. La ventana de mantenimiento automático de las máquinas host es normalmente de 35 días, a menos que la actualización sea urgente.

Puede usar el mantenimiento planeado para actualizar las máquinas virtuales y administrar las notificaciones de mantenimiento planeado con la CLI de Azure, PowerShell o Azure Portal. El mantenimiento planeado detecta si usa la actualización automática de clústeres y programa las actualizaciones durante la ventana de mantenimiento automáticamente. Para más información sobre el mantenimiento planeado, consulte el comando az aks maintenanceconfiguration y el artículo Uso del mantenimiento planeado a fin de programar ventanas de mantenimiento para el clúster de Azure Kubernetes Service (AKS).

Actualizaciones de Kubernetes

Parte del ciclo de vida del clúster de AKS es la actualización periódica a la versión más reciente de Kubernetes. Es importante aplicar actualizaciones para obtener las versiones y características de seguridad más recientes. Para actualizar la versión de Kubernetes de las máquinas virtuales del grupo de nodos existentes, debe acordonar y purgar los nodos y reemplazarlos por nuevos nodos basados en una imagen de disco de Kubernetes actualizada.

De manera predeterminada, AKS configura las actualizaciones para la sobrecarga con un nodo adicional. Un valor predeterminado de uno para la configuración max-surge minimiza la interrupción de la carga de trabajo al crearse un nodo adicional para reemplazar los nodos con versiones anteriores antes de acordonar o purgar las aplicaciones existentes. Puede personalizar el valor max-surge por grupo de nodos para permitir un equilibrio entre la velocidad de actualización y la interrupción de la actualización. Al aumentar el valor max-surge, el proceso de actualización se completa más rápido; sin embargo, un valor grande de max-surge podría provocar interrupciones durante el proceso de actualización.

Por ejemplo, un valor de max-surge del 100 % proporciona el proceso de actualización más rápido posible al duplicarse el número de nodos, pero también hace que todos los nodos del grupo de nodos se purguen a la vez. Es posible que quiera usar este valor alto para las pruebas, pero para los grupos de nodos de producción es mejor un valor max-surge del 33 %.

AKS acepta valores enteros y porcentuales para max-surge. Un entero, como 5, indica una sobrecarga de cinco nodos adicionales. Los valores porcentuales de max-surge pueden ser un mínimo de 1% y un máximo de 100%, redondeados al número de nodos más cercano. Un valor de 50% indica un valor de sobrecarga de la mitad del número de nodos actual del grupo.

Durante una actualización, el valor max-surge puede ser 1 como mínimo y un valor máximo igual al número de nodos del grupo de nodos. Aunque puede establecer valores mayores, el número máximo de nodos que se usan para max-surge no será mayor que el número de nodos del grupo.

Importante

En las operaciones de actualización, las sobrecargas de nodos necesitan suficiente cuota de suscripción para el recuento de max-surge solicitado. Por ejemplo, un clúster que tiene cinco grupos de nodos, cada uno con cuatro nodos, tiene un total de 20 nodos. Si cada grupo de nodos tiene un valor de max-surge del 50 %, se requiere un proceso adicional y una cuota de IP de 10 nodos, o dos nodos por cinco grupos, para completar la actualización.

Si usa Azure Container Networking Interface (CNI), asegúrese también de que tiene suficientes direcciones IP en la subred para cumplir los requisitos de CNI para AKS.

Actualización de grupos de nodos

Para ver las actualizaciones disponibles, use az aks get-upgrades.

az aks get-upgrades --resource-group <myResourceGroup> --name <myAKSCluster>

Para ver el estado de los grupos de nodos, use az aks nodepool list.

  az aks nodepool list -g <myResourceGroup> --cluster-name <myAKSCluster>

El siguiente comando usa az aks nodepool upgrade para actualizar un único grupo de nodos.

  az aks nodepool upgrade \
      --resource-group <myResourceGroup> \
      --cluster-name <myAKSCluster> \
      --name <mynodepool> \
      --kubernetes-version <KUBERNETES_VERSION>

Para más información sobre cómo actualizar la versión de Kubernetes para un plano de control de clúster y grupos de nodos, consulte:

Consideraciones sobre la actualización

Tenga en cuenta estos procedimientos recomendados y consideraciones para actualizar la versión de Kubernetes en un clúster de AKS.

  • Se recomienda actualizar todos los grupos de nodos de un clúster de AKS a la misma versión de Kubernetes. El comportamiento predeterminado de az aks upgrade actualiza todos los grupos de nodos y el plano de control.

  • Realice la actualización manualmente o establezca un canal de actualización automática en el clúster. Si usa el mantenimiento planeado para aplicar revisiones a las máquinas virtuales, también se inician actualizaciones automáticas durante la ventana de mantenimiento especificada. Para más información, consulte Actualización de un clúster de Azure Kubernetes Service (AKS).

  • El comando az aks upgrade con la marca --control-plane-only actualiza solo el plano de control del clúster y no cambia ninguno de los grupos de nodos asociados del clúster. Para actualizar grupos de nodos individuales, especifique el grupo de nodos de destino y la versión de Kubernetes en el comando az aks nodepool upgrade.

  • Una actualización del clúster de AKS desencadena un acordonamiento y purga de los nodos. Si tiene una cuota de proceso baja disponible, se puede producir un error en la actualización. Para más información sobre cómo aumentar la cuota, consulte Aumento de las cuotas de vCPU regionales.

  • Configure el parámetro max-surge en función de sus necesidades, mediante un valor entero o porcentual. En el caso de los grupos de nodos de producción, use un valor max-surge del 33 %. Para más información, consulte Personalización de la actualización de sobrecarga de nodos.

  • Al actualizar un clúster de AKS que usa redes de CNI, asegúrese de que la subred tenga suficientes direcciones IP privadas disponibles para los nodos adicionales que se creen con el valor max-surge. Para más información, consulte Configuración de redes de Azure CNI en Azure Kubernetes Service (AKS).

  • Si los grupos de nodos de clúster abarcan varias instancias de Availability Zones dentro de una región, el proceso de actualización puede provocar temporalmente una configuración de zona desequilibrada. Para más información, consulte Consideraciones especiales para grupos de nodos que abarcan varias instancias de Availability Zones.

Redes virtuales de nodo

Cuando se crea un clúster o se agrega un nuevo grupo de nodos a un clúster existente, se especifica el identificador de recurso de una subred dentro de la red virtual del clúster donde se implementan los nodos de agente. Una carga de trabajo puede requerir la división de los nodos de un clúster en grupos independientes para el aislamiento lógico. Este aislamiento se puede lograr con subredes independientes, cada una dedicada a un grupo de nodos distinto. Cada una de las máquinas virtuales del grupo de nodos obtiene una dirección IP privada de su subred asociada.

AKS admite dos complementos de red:

  • Kubenet es un complemento de red básico y sencillo para Linux. Con kubenet, los nodos obtienen una dirección IP privada de la subred de la red virtual de Azure. Los pods obtienen una dirección IP de un espacio de direcciones lógicamente diferente. La traducción de direcciones de red (NAT) permite que los pods lleguen a los recursos de la red virtual de Azure mediante la traducción de la dirección IP del tráfico de origen a la dirección IP principal del nodo. Este enfoque reduce el número de direcciones IP que se deben reservar en el espacio de red para los pods.

  • Azure Container Networking Interface (CNI) proporciona a cada pod una dirección IP para llamar y acceder directamente. Estas direcciones IP deben ser únicas en el espacio de red. Cada nodo tiene un parámetro de configuración para el número máximo de pods que admite. El número equivalente de direcciones IP por nodo se reserva entonces por adelantado para ese nodo. Este enfoque requiere planeamiento avanzado y puede llevar al agotamiento de direcciones IP o a la necesidad de recompilar los clústeres en una subred mayor, a medida que crecen las exigencias de la aplicación.

    Al crear un clúster o agregar un nuevo grupo de nodos a un clúster que usa Azure CNI, puede especificar el identificador de recurso de dos subredes distintas, una para los nodos y otra para los pods. Para más información, consulte Asignación dinámica de direcciones IP y compatibilidad con subred mejorada.

Asignación dinámica de direcciones IP

Los pods que usan Azure CNI obtienen direcciones IP privadas de una subred del grupo de nodos de hospedaje. La asignación dinámica de direcciones IP de Azure CNI puede asignar direcciones IP privadas a pods de una subred que está separada de la subred que hospeda el grupo de nodos. Esta característica proporciona las siguientes ventajas:

  • La subred de pods asigna dinámicamente direcciones IP a los pods. La asignación dinámica proporciona un mejor uso de las direcciones IP en comparación con la solución CNI tradicional, que realiza una asignación estática de direcciones IP para cada nodo.

  • Puede escalar y compartir subredes de nodo y pod de forma independiente. Puede compartir una sola subred de pod entre varios grupos de nodos o clústeres implementados en la misma red virtual. También puede configurar una subred de pod independiente para un grupo de nodos.

  • Dado que los pods tienen direcciones IP privadas de red virtual, tienen conectividad directa con otros pods y recursos de clúster de la red virtual. Esta capacidad permite mejorar el rendimiento de los clústeres muy grandes.

  • Si los pods tienen una subred independiente, puede configurar directivas de red virtual para los pods que sean diferentes de las directivas de nodo. Tener distintas directivas favorece muchas situaciones útiles, como permitir la conectividad a Internet solo para pods y no para nodos, corregir la IP de origen para pods de un grupo de nodos mediante una instancia de NAT Gateway y usar grupos de seguridad de red (NSG) para filtrar el tráfico entre grupos de nodos.

  • Tanto Directiva de red como las directivas de red de Kubernetes de Calico funcionan con asignación dinámica de direcciones IP.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Otros colaboradores:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes