Clústeres regionales

En esta página, se explica cómo funcionan los clústeres regionales en Google Kubernetes Engine. Puedes crear un clúster regional o ver más información sobre los diferentes tipos de clústeres.

Descripción general

De forma predeterminada, el plano de control (instancia principal) y los nodos de un clúster se ejecutan en una sola zona de procesamiento que especificas cuando creas el clúster. Los clústeres regionales aumentan la disponibilidad del plano de control (instancia principal) de un clúster y de sus nodos cuando los replican en varias zonas de una región. Esto proporciona las ventajas de los clústeres multizonales, con los siguientes beneficios adicionales:

  • Si una o más zonas (pero no todas) de una región experimentan una interrupción, el plano de control del clúster permanece accesible mientras haya una réplica del plano de control disponible.
  • Durante el mantenimiento del clúster, como una actualización del clúster, solo hay una réplica del plano de control que no está disponible a la vez, y el clúster permanece operativo.

De forma predeterminada, el plano de control y cada grupo de nodos se replican en tres zonas de una región, pero puedes personalizar la cantidad de réplicas.

No puedes modificar si un clúster es zonal, multizonal o regional después de crear el clúster.

Cómo funcionan los clústeres regionales

Los clústeres regionales replican los nodos y las instancias principales entre varias zonas de una misma región. Por ejemplo, un clúster regional en la región us-east1 crea réplicas del plano de control y los nodos en tres zonas us-east1: us-east1-b, us-east1-c y us-east1-d. En el caso de una interrupción de la infraestructura, tus cargas de trabajo continúan ejecutándose y los nodos se pueden volver a balancear de forma manual o con el escalador automático del clúster.

Entre los beneficios de usar clústeres regionales, se encuentran los siguientes:

  • Resistencia a fallas en una zona. Los clústeres regionales están disponibles en una región, en lugar de estar disponibles solo en una zona de una región. Si solo una zona deja de estar disponible, el plano de control de Kubernetes y tus recursos no se verán afectados.
  • No hay tiempo de inactividad durante las actualizaciones o cambios de tamaño de la instancia principal, y el tiempo de inactividad por fallas en la instancia principal es reducido. Los clústeres regionales ofrecen un plano de control de alta disponibilidad que te permite acceder a él incluso durante las actualizaciones.

Limitaciones

  • De forma predeterminada, los clústeres regionales constan de nueve nodos que se reparten de manera uniforme entre tres zonas de una región. Esto consume nueve direcciones IP. Si lo deseas, puedes reducir la cantidad de nodos a uno por zona. Las cuentas de Google Cloud recién creadas reciben solo ocho direcciones IP por región, por lo que es posible que debas solicitar un aumento de cuotas para las direcciones IP regionales en uso, según el tamaño de tu clúster regional. Si tienes muy pocas direcciones IP en uso disponibles, la creación del clúster fallará.

  • Para los clústeres regionales que ejecutan GPU, debes elegir una región que tenga GPU en tres zonas o especificar zonas con la marca --node-locations. De lo contrario, puede que aparezca un error como el siguiente:

    ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=
      (1) accelerator type "nvidia-tesla-k80" does not exist in zone us-west1-c.
      (2) accelerator type "nvidia-tesla-k80" does not exist in zone us-west1-a.
    

    Para obtener una lista completa de las regiones y zonas donde están disponibles las GPU, consulta GPU en Compute Engine.

  • No puedes crear grupos de nodos en zonas ajenas a las zonas del clúster. Sin embargo, puedes cambiar las zonas de un clúster, lo que hará que todos los nodos nuevos y existentes abarquen esas zonas.

Precios

Los clústeres regionales se ofrecen sin costo adicional.

El uso de clústeres regionales requiere más cuotas regionales de tu proyecto que un clúster zonal o multizonal similar. Asegúrate de que tienes la información necesaria sobre las cuotas y los precios de Google Kubernetes Engine antes de usar clústeres regionales. Si encuentras un error Insufficient regional quota to satisfy request for resource, tu solicitud excede la cuota disponible en la región actual.

Además, se te cobra por el tráfico de nodo a nodo entre zonas. Por ejemplo, si una carga de trabajo que se ejecuta en una zona necesita comunicarse con una carga de trabajo en una zona diferente, el tráfico entre zonas genera un costo. Para obtener más información sobre la salida entre zonas en la misma región (por GB), consulta la página de precios de Compute Engine.

Almacenamiento continuo en clústeres regionales

Los discos de almacenamiento continuo son recursos zonales. Cuando agregas almacenamiento continuo a tu clúster, GKE asigna el disco a una zona de forma automática, a menos que especifiques una. GKE selecciona la zona de forma aleatoria. Cuando usas StatefulSet, los discos persistentes aprovisionados de cada replica se reparten entre varias zonas.

Cuando se aprovisiona un disco persistente, los pods que hagan referencia a él se programan en la misma zona donde este se encuentre.

Un disco persistente de lectura y escritura no se puede asignar a varios nodos.

Ajuste de escala automático de clústeres regionales

Ten en cuenta las siguientes consideraciones cuando uses el escalador automático del clúster para realizar un ajuste de escala automático en grupos de nodos en clústeres regionales.

También puedes obtener más información sobre los límites del ajuste de escala automático para clústeres regionales o sobre cómo el escalador automático del clúster realiza el balanceo entre zonas.

Sobreaprovisiona los límites de escalamiento

Para mantener la capacidad en el caso improbable de falla zonal, puedes permitir que GKE sobreprovisione tus límites de escalamiento a fin de garantizar un nivel mínimo de disponibilidad, incluso cuando algunas zonas no estén disponibles.

Por ejemplo, si sobreaprovisionas un clúster de tres zonas al 150%, puedes garantizar que el 100% del tráfico se enrutará a zonas disponibles si se pierde un tercio de la capacidad del clúster. En el ejemplo anterior, esto se lograría si especificas un máximo de seis nodos por zona en lugar de cuatro. Si una zona falla, el clúster escala a doce nodos en las zonas restantes.

De manera similar, si sobreaprovisionas un clúster de dos zonas al 200%, puedes garantizar que el 100% del tráfico se enrutará si se pierde la mitad de la capacidad del clúster.

Puedes obtener más información sobre el escalador automático del clúster o leer las Preguntas frecuentes sobre ajuste de escala automático en la documentación de Kubernetes.

Próximos pasos