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ándares 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 ofrece las funciones y características principales de GKE en tu entorno desconectado. A los efectos 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 como usas 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
Completamente desconectado Se puede operar en un entorno sin conexión a Internet. No
Solución de copia de seguridad Servicio para crear copias de datos y configuraciones de un clúster para garantizar la protección de datos y permitir la recuperación de fallas, errores o ciberataques. 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 contenedor 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 GPUs GPU y TPU
Ajuste de escala automático horizontal de pods Ajuste automático de la cantidad de réplicas de pod en una implementación o en otra carga de trabajo según las métricas observadas, como el uso de CPU o memoria.
Contenedores de Linux Es un 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 los 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 Google Cloudpúblico, 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 incluidos con funciones estándar de Kubernetes actualizadas.
  • Visibilidad de los 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 establecer 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 se incluyen de forma predeterminada en GKE en GDC y están disponibles para su uso con clústeres creados por el servicio administrado de Kubernetes.

Arquitectura del clúster de GDC

Los clústeres de Kubernetes están separados lógicamente entre sí para proporcionar diferentes dominios de falla 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 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, incluido el plano de control y todos los componentes del sistema. Eres responsable de administrar los nodos de trabajador 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:

  • El plano de control, que incluye un servidor de la API y servicios predefinidos, como el almacenamiento y la programación predeterminada de pods
  • Nodos trabajadores que ejecutan cargas de trabajo de contenedores
  • Servicios de GDC, como redes de VPC y balanceo de cargas, que proporciona el servicio administrado de GKE en GDC

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, 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 que elegiste 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 del clúster de Kubernetes

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

  • Clúster compartido: Es un clúster de Kubernetes con alcance para toda la organización que abarca varios proyectos y no está administrado por un solo proyecto, sino que está adjunto a ellos.
  • Clúster estándar: Es un clúster de Kubernetes con alcance en el 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 estos ejecutan tus dispositivos de GPU como cargas de trabajo del 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 aprovisionando máquinas con 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 GPUs se asignan de forma estática. Las primeras cuatro GPUs siempre se dedican a cargas de trabajo como las APIs de IA y AA previamente entrenadas. Estas GPUs no se ejecutan en un clúster de Kubernetes. Las GPUs 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 con GPU a los tipos de clúster 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?