Clústeres de Kubernetes en GDC

En este documento, se describen las opciones y capacidades de los clústeres de Kubernetes disponibles en Google Distributed Cloud (GDC) aislado. Los clústeres de Kubernetes proporcionan un servicio de Kubernetes administrado con Google Kubernetes Engine (GKE) que te permite implementar y ejecutar cargas de trabajo de contenedores con metodologías de Kubernetes estándar de la industria.

Este documento está dirigido a públicos como administradores de TI dentro del grupo de administradores de la plataforma y desarrolladores de aplicaciones dentro del grupo de operadores de aplicaciones que son responsables de administrar las cargas de trabajo de contenedores dentro de su organización. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

GKE en un entorno desconectado

GKE en GDC es un servicio de Kubernetes administrado que incorpora las funciones y características principales de GKE a tu entorno desconectado. A los fines de la documentación, los clústeres administrados por GKE en GDC se denominan clústeres de Kubernetes. Para obtener más información sobre los conceptos de Kubernetes, consulta Comienza a aprender sobre Kubernetes.

GKE en GDC te permite crear y administrar cargas de trabajo de contenedores en tu entorno desconectado de manera similar a usar GKE en la nube pública Google Cloud.

En la siguiente tabla, se proporciona una comparación entre los clústeres en GDC y Google Cloud:

Función Descripción GKE en GDC GKE en Google Cloud
Totalmente desconectado Operable en un entorno sin conexión a Internet No
Solución de copia de seguridad Servicio para crear copias de datos y configuraciones para un clúster para garantizar la protección de datos y permitir la recuperación de fallas, errores o ataques cibernéticos Copia de seguridad para GDC Copia de seguridad para GKE
Supervisión y registros integrados Servicio que combina la recopilación y el análisis de registros con la supervisión de indicadores clave de rendimiento para obtener una vista integral del comportamiento del clúster Prometheus, Grafana y Loki Cloud Logging y Cloud Monitoring
Container Registry administrado Servicio que aloja y organiza imágenes de contenedores, y controla la infraestructura, la disponibilidad y la seguridad de las imágenes Servicio de Harbor administrado Artifact Registry
Aislamiento del contenedor Capacidad de mantener las aplicaciones de contenedores y sus dependencias separadas e independientes entre sí y del sistema host
Compatibilidad con GPU y TPU Unidades de procesamiento de alto rendimiento que permiten capacidades de procesamiento mejoradas Solo GPU GPU y TPU
Ajuste de escala automático horizontal de pods Ajuste automatizado de la cantidad de réplicas de pods en una implementación o en otra carga de trabajo en función de las métricas observadas, como el uso de CPU o memoria
Contenedores de Linux Entorno aislado para ejecutar aplicaciones en un host de Linux
IU para clústeres Interfaz gráfica que proporciona una forma visual y fácil de usar para administrar y supervisar un clúster Solo clúster compartido
IU para recursos del clúster Interfaz gráfica que proporciona una forma visual y fácil de usar para administrar y supervisar las cargas de trabajo de contenedores de un clúster Solo lectura

Para obtener más información sobre GKE y su conjunto completo de funciones disponibles en la nube pública Google Cloud, consulta Explora la documentación de GKE.

Beneficios de los clústeres de Kubernetes

GKE en GDC proporciona beneficios clave para tus clústeres de Kubernetes, como los siguientes:

  • Administración del ciclo de vida de varios clústeres: Implementa varios clústeres en GDC de forma simultánea para una variedad de instancias alojadas para tus cargas de trabajo de contenedores.
  • Distribución de Kubernetes totalmente compatible: Crea clústeres con funciones de Kubernetes estándar actualizadas.
  • Visibilidad de costos: Supervisa el uso y las estadísticas en tiempo real, lo que te ayuda a supervisar tus costos de Kubernetes de manera continua.
  • Administración de varios equipos: Otorga acceso a varios grupos de usuarios a clústeres de Kubernetes para obtener límites de administración flexibles.
  • Flujos de trabajo automatizados de Kubernetes: Confía en el aprovisionamiento automático de nodos y el ajuste de escala automático horizontal de pods para administrar sin problemas tus cargas de trabajo de contenedores.

Todas estas funciones vienen de forma estándar con GKE en GDC y están disponibles para usarse con clústeres creados por el servicio de Kubernetes administrado.

Arquitectura del clúster de GDC

Los clústeres de Kubernetes están separados lógicamente entre sí para proporcionar diferentes dominios de fallas y garantías de aislamiento. En algunos casos, incluso están separados físicamente.

Puedes configurar un clúster de Kubernetes como un clúster compartido o un clúster estándar. Un clúster compartido abarca varios proyectos. Un clúster estándar se limita a un solo proyecto. Para obtener más información, consulta Configuraciones de clústeres de Kubernetes.

Un clúster de Kubernetes consta de un plano de control y de máquinas de trabajador llamadas nodos. El plano de control y los nodos conforman el sistema de organización de clústeres de Kubernetes. GKE en GDC administra toda la infraestructura subyacente de los clústeres, incluidos el plano de control y todos los componentes del sistema. Eres responsable de administrar los nodos trabajadores que ejecutan tus cargas de trabajo alojadas en contenedores.

En el siguiente diagrama, se muestra la arquitectura de un clúster de Kubernetes:

Un clúster de Kubernetes consta de un plano de control, nodos y servicios.

En este diagrama, se muestra un clúster de Kubernetes con los siguientes componentes:

Información sobre el plano de control

El plano de control ejecuta procesos como el servidor de la API de Kubernetes, el programador y los controladores de recursos principales. GKE en GDC administra el ciclo de vida del plano de control desde la creación hasta la eliminación del clúster. Esto incluye actualizaciones a la versión de Kubernetes que se ejecuta en el plano de control del clúster, las cuales GDC realiza de forma automática o manual según lo solicites si prefieres actualizar antes de la programación automática.

Plano de control y API de Kubernetes

El plano de control es el extremo unificado para tu clúster. Interactúas con el plano de control a través de llamadas a la API de Kubernetes. El plano de control ejecuta el proceso del servidor de la API de Kubernetes, o kube-apiserver, para controlar las solicitudes a la API. Puedes realizar llamadas a la API de Kubernetes de las siguientes maneras:

  • Llamadas directas: KRM
  • Llamadas indirectas: clientes de la línea de comandos de Kubernetes, como la CLI de kubectl o la consola de GDC

El proceso del servidor de la API es el centro de todas las comunicaciones para el clúster. Todos los componentes internos del clúster, como los nodos, los procesos del sistema y los controladores de aplicaciones, actúan como clientes del servidor de la API.

Las solicitudes a la API le indican a Kubernetes cuál es el estado elegido para los objetos en tu clúster. Kubernetes intenta mantener ese estado de forma constante. Kubernetes te permite configurar objetos en la API de forma imperativa o declarativa.

Administración de nodos trabajadores

El plano de control administra qué se ejecuta en todos los nodos del clúster. El plano de control programa las cargas de trabajo y administra el 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 se comunican entre sí mediante las API de Kubernetes.

Acerca de los nodos

Los nodos son máquinas de trabajador que ejecutan tus aplicaciones en contenedores y otras cargas de trabajo. Las máquinas individuales son máquinas virtuales (VMs) que crea GKE en GDC. El plano de control administra y recibe actualizaciones sobre el estado autoinformado de cada nodo.

Un nodo ejecuta los servicios necesarios para admitir los contenedores que conforman las cargas de trabajo de tu clúster. Estos incluyen el entorno de ejecución y el agente de nodo de Kubernetes, o kubelet, que se comunica con el plano de control y es responsable de iniciar y ejecutar los contenedores programados en el nodo.

GKE en GDC también ejecuta varios contenedores del sistema que se ejecutan como agentes por nodo, llamados DaemonSets, que proporcionan funciones como la recopilación de registros y la conectividad de red dentro del clúster.

Los nodos se agrupan en un grupo de nodos, que es un conjunto de nodos dentro de un clúster que comparten la misma configuración y características. No puedes configurar un solo nodo en un grupo de nodos.

Los grupos de nodos personalizados son útiles cuando se programan pods que requieren más recursos que otros, como más memoria o espacio en el disco local. Puedes usar taints de nodos si necesitas más control sobre la programación de pods.

Para obtener más información, consulta Administra grupos de nodos.

Configuraciones de clústeres de Kubernetes

Las siguientes configuraciones de clústeres están disponibles con el servicio de GKE en GDC para administrar tus cargas de trabajo de contenedores en una organización:

  • Clúster compartido: Un clúster de Kubernetes con alcance de la organización que abarca varios proyectos y no está administrado por un solo proyecto, sino que está conectado a ellos
  • Clúster estándar: Un clúster de Kubernetes con alcance de proyecto que administra los recursos del clúster dentro de un proyecto y no puede abarcar varios proyectos

Puedes elegir el clúster que mejor se adapte a tus requisitos para administrar cargas de trabajo de contenedores. Para obtener más información, consulta Configuraciones de clústeres de Kubernetes.

Cargas de trabajo de GPU en un clúster

GDC proporciona compatibilidad con GPU de NVIDIA para clústeres de Kubernetes, y ejecuta tus dispositivos de GPU como cargas de trabajo de usuario. Por ejemplo, es posible que prefieras ejecutar notebooks de inteligencia artificial (IA) y aprendizaje automático (AA) en un entorno de GPU. Debes configurar tu clúster para que admita dispositivos de GPU mediante el aprovisionamiento de máquinas de GPU para ellos. Para obtener una lista de los tipos de máquinas compatibles con los clústeres de Kubernetes en GDC, consulta Máquinas de nodos de clústeres.

Las GPU se asignan de forma estática. Las primeras cuatro GPU siempre están dedicadas a cargas de trabajo como las APIs de IA y AA preentrenadas. Estas GPU no se ejecutan en un clúster de Kubernetes. Las GPU restantes están disponibles para los clústeres de Kubernetes. Los notebooks de IA y AA se ejecutan en clústeres de Kubernetes.

Asegúrate de asignar máquinas de GPU para los tipos de clústeres correctos para permitir que los componentes, como las APIs de IA y AA, se ejecuten en tu clúster. Para obtener más información, consulta Crea un clúster compartido o Crea un clúster estándar.

Limitaciones de GKE en GDC

Las siguientes capacidades de GKE son limitaciones que no están disponibles para GKE en GDC:

¿Qué sigue?