Compartir a través de


Conjuntos de disponibilidad en AKS habilitados por Azure Arc

Los conjuntos de disponibilidad son grupos lógicos de máquinas virtuales que tienen relaciones antiafinidad débiles entre sí, para asegurarse de que se distribuyen uniformemente entre los dominios de error disponibles en un clúster físico. Un dominio de error en este contexto es un host físico o un grupo de hosts físicos. Mediante el uso de conjuntos de disponibilidad, AKS Arc puede mejorar la disponibilidad y distribución de las cargas de trabajo de Kubernetes. Los conjuntos de disponibilidad pueden evitar escenarios en los que un error de nodo único puede provocar que varias máquinas virtuales bajen o se desequilibren.

Información general

Si usa AKS en Azure Stack HCI y Windows Server para ejecutar cargas de trabajo de Kubernetes en el entorno local, es posible que encuentre algunos desafíos con la arquitectura actual. Por ejemplo, puede observar que varias máquinas virtuales (VM) dentro del mismo grupo de nodos pueden existir en el mismo host físico, lo que no es ideal para alta disponibilidad. O bien, es posible que vea que las máquinas virtuales no se reequilibran entre hosts físicos cuando un host se recupera de un problema, lo que da lugar a una distribución desigual de las cargas de trabajo. Estos problemas pueden afectar al rendimiento y la confiabilidad de las aplicaciones, lo que provoca interrupciones innecesarias en las operaciones empresariales.

Los conjuntos de disponibilidad ofrecen varias ventajas para los usuarios de AKS en Azure Stack HCI y Windows Server, como:

  • Mejora la disponibilidad y resistencia de las aplicaciones evitando escenarios en los que varias máquinas virtuales del mismo grupo de nodos o plano de control bajen o se desequilibren debido a un error de nodo único.
  • Optimiza el uso y el rendimiento de los recursos del clúster asegurándose de que las máquinas virtuales se distribuyen uniformemente entre los nodos disponibles y no se concentran en un solo nodo o en un subconjunto de nodos.
  • Se alinea con los procedimientos recomendados y las expectativas de los clientes y asociados que buscan una experiencia de Kubernetes local confiable y coherente.

Habilitación de conjuntos de disponibilidad

Con AKS en Azure Stack HCI 23H2, la característica de conjuntos de disponibilidad está habilitada de forma predeterminada cuando se crea un nuevo grupo de nodos.

Con AKS en Azure Stack HCI 22H2, la característica de conjuntos de disponibilidad está deshabilitada de forma predeterminada. Para habilitarlo, agregue el -enableAvailabilitySet parámetro al crear un clúster de carga de trabajo. Por ejemplo:

New-AksHciCluster -Name <name> -controlPlaneNodeCount 3 -osType Linux -kubernetesVersion $kubernetesVersion -enableAvailabilitySet

Funcionamiento de los conjuntos de disponibilidad en AKS habilitados por Azure Arc

Al crear un nuevo clúster de AKS Arc, AKS Arc crea automáticamente conjuntos de disponibilidad, uno para las máquinas virtuales del plano de control y otra para cada uno de los grupos de nodos del clúster. Cada grupo de nodos tiene su propio conjunto de disponibilidad. Con este diseño, AKS Arc garantiza que las máquinas virtuales del mismo rol (plano de control o grupo de nodos) nunca se encuentren en el mismo host físico y que se distribuyan entre los nodos disponibles en un clúster.

Una vez creados los conjuntos de disponibilidad y las máquinas virtuales asignadas, el sistema los coloca automáticamente en los nodos físicos adecuados. Si se produce un error en un nodo, el sistema también conmuta por error automáticamente las máquinas virtuales a otros nodos y las vuelve a equilibrar cuando el nodo se recupera. De este modo, puede lograr una alta disponibilidad y una distribución óptima de las cargas de trabajo de Kubernetes sin intervención manual.

Considere un clúster de AKS en Azure Stack HCI 23H2 con dos máquinas host físicas, Host A y Host B, tres máquinas virtuales del plano de control y dos máquinas virtuales de nodo de trabajo, Nodepool1VM1 y Nodepool1VM2. Para garantizar la alta disponibilidad de las aplicaciones de Kubernetes, las máquinas virtuales del grupo de nodos nunca deben compartir el mismo host, a menos que uno de los hosts no esté disponible temporalmente para el problema de mantenimiento planeado o capacidad, lo que puede hacer que la máquina virtual (máquina virtual) se coloque temporalmente en un host alternativo.

En el diagrama siguiente, cada color representa un grupo de antiafinidad:

Diagrama en el que se muestran los hosts en el grupo de antiafinidad.

Si el host B deja de funcionar debido a un reinicio, el plano de control VM2, el plano de control VM3 y nodepool1VM2 conmutan por error al host A , como se muestra en la ilustración siguiente. Suponiendo que la aplicación ejecuta pods en NodePoolVM1, este reinicio no afecta a la aplicación:

Diagrama que muestra el host B hacia abajo.

En la arquitectura antigua, si el host B volvió a estar en línea después de un reinicio, no había ninguna garantía de que las máquinas virtuales volverían de host A al host B (reequilibrio), lo que obligaba a las cargas de trabajo a permanecer en el mismo host y crear un único punto de error, como se muestra en el diagrama siguiente:

Diagrama en el que no se muestra ningún reequilibrio.

Los conjuntos de disponibilidad de AKS Arc pueden ayudar a reequilibrar las máquinas virtuales una vez que un host se recupera de una interrupción temporal. En este ejemplo, ControlPlaneVM2, ControlPlaneVM3 y Nodepool1VM2 se mueven automáticamente al host B, como se muestra aquí:

Diagrama en el que se muestran los hosts en el grupo de antiafinidad.

Importante

Los conjuntos de disponibilidad de AKS Arc son una nueva característica que sigue evolucionando y mejorando. Todavía no se admite la configuración manual de los dominios de error o los conjuntos de disponibilidad. No puede cambiar los dominios de error de un conjunto de disponibilidad después de crearlo. Las máquinas virtuales se asignan a un conjunto de disponibilidad en la creación del clúster y no se pueden migrar a otro conjunto de disponibilidad.

Agregar o eliminar máquinas

En un escenario de eliminación de host, el host ya no se considera parte del clúster. Esta eliminación suele producirse cuando se reemplaza una máquina debido a problemas de hardware o se reduce verticalmente el clúster de HCI por otros motivos. Durante una interrupción del nodo, el nodo sigue formando parte del clúster de HCI, pero aparece como Inactivo.

Si una máquina física (dominio de error) se elimina permanentemente del clúster, la configuración del conjunto de disponibilidad no se modifica para reducir el número de dominios de error. En este escenario, el conjunto de disponibilidad entra en un estado incorrecto. Se recomienda volver a implementar los clústeres de cargas de trabajo para que el conjunto de disponibilidad se actualice con el número adecuado de dominios de error.

Cuando se agrega una nueva máquina física (dominio de error) al clúster, la configuración del conjunto de disponibilidad se expande automáticamente para incluir la nueva máquina. Sin embargo, las máquinas virtuales existentes no se reequilibran para aplicar esta nueva configuración, ya que ya están asignadas a conjuntos de disponibilidad. Se recomienda volver a implementar los clústeres de cargas de trabajo para que el conjunto de disponibilidad se actualice con el número adecuado de dominios de error.

Pasos siguientes

Introducción a AKS