Arquitectura de clúster de Autopilot


Un clúster es la base de Google Kubernetes Engine (GKE): los objetos de Kubernetes que representan tus aplicaciones en contenedores se ejecutan sobre un clúster.

En el modo Autopilot, un clúster consta de un plano de control con alta disponibilidad y varias máquinas trabajadoras llamadas nodos. Este plano de control y las máquinas de nodos ejecutan el sistema de organización de clústeres de Kubernetes. Para los clústeres en modo Autopilot, GKE administra toda la infraestructura subyacente de los clústeres, incluidos el plano de control, los nodos y todos los componentes del sistema.

En el siguiente diagrama, se proporciona una descripción general de la arquitectura de un clúster de Autopilot en GKE:

GKE aprovisiona, mantiene y opera todo en el plano de control y solo aprovisiona los nodos.

Plano de control

El plano de control ejecuta los procesos del plano de control, incluido el servidor, el programador y los controladores de recursos principales de la API de Kubernetes. GKE administra el ciclo de vida del plano de control cuando creas o borras un clúster. Esto incluye actualizaciones a la versión de Kubernetes que se ejecuta en el plano de control, las cuales GKE realiza de forma automática para clústeres de Autopilot.

Plano de control y API de Kubernetes

El plano de control es el extremo unificado para tu clúster. Todas las interacciones con el clúster se realizan a través de las llamadas a la API de Kubernetes, y el plano de control ejecuta el proceso del servidor de la API de Kubernetes para controlar esas solicitudes. Puedes realizar llamadas a la API de Kubernetes directamente a través de HTTP/gRPC o de forma indirecta mediante la ejecución de los comandos desde el cliente de línea de comandos de Kubernetes (kubectl) o mediante la interacción con la IU en Cloud Console.

El proceso del servidor de la API es el centro de todas las comunicaciones para el clúster. Todos los procesos internos del clúster (como los nodos del clúster, el sistema y los componentes, los controladores de la aplicación) actúan como clientes del servidor de API. El servidor de API es la única "fuente de verdad" para todo el clúster.

Plano de control e interacción de los nodos

El plano de control es responsable de decidir qué se ejecuta en todos los nodos del clúster. Esto puede incluir la programación de cargas de trabajo, como aplicaciones en contenedores, y la administración del ciclo de vida de las cargas de trabajo, el escalamiento y las actualizaciones. El plano de control también administra los recursos de red y almacenamiento para esas cargas de trabajo.

El plano de control y los nodos también se comunican mediante las API de Kubernetes.

Interacciones del plano de control con Artifact Registry y Container Registry

Cuando creas o actualizas un clúster, las imágenes de contenedor para el software de Kubernetes que se ejecuta en el plano de control (y los nodos) se extraen de Artifact Registry pkg.dev o Container Registry gcr.io. Una interrupción que afecta a estos registros puede provocar los siguientes tipos de fallas:

  • La creación de nuevos clústeres fallará durante la interrupción.
  • La actualización de los clústeres fallará durante la interrupción.
  • Las interrupciones en las cargas de trabajo pueden ocurrir incluso sin la intervención del usuario, según la naturaleza específica y la duración de la interrupción.

En el caso de una interrupción regional de Artifact Registry pkg.dev o Container Registry gcr.io, Google podría redireccionar las solicitudes a una zona o región que no se vea afectada por la interrupción.

Para verificar el estado actual de los servicios de Google Cloud, ve al panel de estado de Google Cloud.

Nodos

Un clúster tiene nodos, que son las máquinas trabajadoras que ejecutan tus aplicaciones en contenedores y otras cargas de trabajo. Autopilot administra los nodos, y el plano de control recibe actualizaciones sobre el estado autoinformado de cada nodo. Autopilot determina automáticamente el tamaño del nodo, el tipo de nodo y la cantidad de nodos en función de todos los recursos especificados por la carga de trabajo y la carga real en el clúster. Para los clústeres de Autopilot, puedes ver los nodos con el comando kubectl describe nodes, pero no tienes que administrarlos ni interactuar con ellos. A diferencia del modo estándar, los nodos no son visibles a través de Compute Engine o el comando gcloud compute instances list.

Imágenes de SO

Los clústeres de Autopilot usan Container-Optimized OS con Containerd (cos_containerd) para ejecutar tus contenedores.