Clústeres de Kubernetes en GDC

En este documento se describen las opciones y funciones de clústeres de Kubernetes disponibles en Google Distributed Cloud (GDC) aislado. Los clústeres de Kubernetes proporcionan un servicio de Kubernetes gestionado con Google Kubernetes Engine (GKE) que te permite desplegar y ejecutar cargas de trabajo de contenedores mediante metodologías de Kubernetes estándar del sector.

Este documento está dirigido a audiencias como los administradores de TI del grupo de administradores de plataformas y los desarrolladores de aplicaciones del grupo de operadores de aplicaciones que se encargan de gestionar las cargas de trabajo de contenedores en su organización. Para obtener más información, consulta la documentación sobre las audiencias de GDC aislado.

GKE en un entorno desconectado

GKE en GDC es un servicio de Kubernetes gestionado que ofrece las funciones y características principales de GKE a tu entorno desconectado. A efectos de documentación, los clústeres gestionados por GKE en GDC se denominan clústeres de Kubernetes. Para obtener más información sobre los conceptos de Kubernetes, consulta Empezar a aprender sobre Kubernetes.

GKE en GDC te permite crear y gestionar cargas de trabajo de contenedores en tu entorno desconectado de forma similar a como se usa GKE en la nube pública Google Cloud.

En la siguiente tabla se comparan los clústeres de GDC y Google Cloud:

Función Descripción GKE en GDC GKE en Google Cloud
Totalmente desconectada Se puede usar en un entorno sin conexión a Internet. Sí 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 fallos, errores o ciberataques. Copia de seguridad de GDC Copia de seguridad de GKE
Almacenamiento de registros y monitorización integrados Servicio que combina la recogida y el análisis de registros con la monitorización de métricas de rendimiento para ofrecer una vista completa del comportamiento de los clústeres. Prometheus, Grafana y Loki Cloud Logging y Cloud Monitoring
Registro de contenedores gestionado Servicio que aloja y organiza imágenes de contenedor, gestionando la infraestructura, la disponibilidad y la seguridad de las imágenes. Managed Harbor Service Artifact Registry
Aislamiento de contenedores Capacidad de mantener las aplicaciones de contenedores y sus dependencias separadas e independientes entre sí y del sistema host. Sí Sí
Compatibilidad con GPUs y TPUs Unidades de computación de alto rendimiento que permiten mejorar las capacidades de procesamiento. Solo GPUs GPUs y TPUs
Autoescalado de pods horizontal Ajuste automático del número de réplicas de pods en un despliegue u otra carga de trabajo en función de las métricas observadas, como el uso de CPU o de memoria. Sí Sí
Contenedores de Linux Entorno aislado para ejecutar aplicaciones en un host de Linux. Sí Sí
Interfaz de usuario para clústeres Interfaz gráfica que ofrece una forma visual y fácil de usar para gestionar y monitorizar un clúster. Solo clúster compartido Sí
Interfaz de usuario para recursos de clúster Interfaz gráfica que ofrece una forma visual y fácil de usar para gestionar y monitorizar las cargas de trabajo de contenedores de un clúster. Solo lectura Sí

Para obtener más información sobre GKE y todas sus funciones disponibles públicamente Google Cloud, consulta la documentación de GKE.

Ventajas de los clústeres de Kubernetes

GKE en GDC ofrece ventajas clave para tus clústeres de Kubernetes, como las siguientes:

  • Gestión del ciclo de vida de varios clústeres: despliega varios clústeres en GDC simultáneamente para una variedad de instancias alojadas para tus cargas de trabajo de contenedores.
  • Distribución de Kubernetes totalmente compatible: crea clústeres con funciones estándar de Kubernetes actualizadas.
  • Visibilidad de los costes: monitoriza el uso y las estadísticas en tiempo real para controlar continuamente los costes de Kubernetes.
  • Gestión de varios equipos: permite que varios grupos de usuarios accedan a clústeres de Kubernetes para definir límites de gestión flexibles.
  • Flujos de trabajo de Kubernetes automatizados: confía en el aprovisionamiento automático de nodos y en el autoescalado horizontal de pods para gestionar tus cargas de trabajo de contenedores sin problemas.

Todas estas funciones se incluyen de forma estándar con GKE en GDC y se pueden usar con clústeres creados por el servicio gestionado de Kubernetes.

Arquitectura de clústeres de GDC

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

Puedes configurar un clúster de Kubernetes como clúster compartido o como 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 trabajo llamadas nodos. El plano de control y los nodos forman el sistema de orquestación de clústeres de Kubernetes. GKE en GDC gestiona toda la infraestructura subyacente de los clústeres, incluidos el plano de control y todos los componentes del sistema. Eres responsable de gestionar los nodos de trabajador que ejecutan tus cargas de trabajo en contenedores.

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

Un clúster de Kubernetes está formado por un plano de control, nodos y servicios.

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

  • Plano de control, que incluye un servidor de la API y servicios predefinidos, como el almacenamiento y la programación de pods predeterminada.
  • Nodos de trabajador que ejecutan cargas de trabajo de contenedores.
  • Servicios de GDC, como la red de VPC y el balanceo de carga, que se proporcionan mediante el servicio gestionado de GKE on GDC.

Acerca del 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 gestiona el ciclo de vida del plano de control desde la creación hasta la eliminación del clúster. Esto incluye las actualizaciones de la versión de Kubernetes que se ejecuta en el plano de control, que GDC realiza automáticamente o de forma manual si lo solicitas, en caso de que prefieras actualizar antes de lo previsto.

Plano de control y la API de Kubernetes

El plano de control es el endpoint unificado de tu clúster. Interactúas con el plano de control mediante llamadas a la API de Kubernetes. El plano de control ejecuta el proceso del servidor de la API de Kubernetes, o kube-apiserver, para gestionar las solicitudes a la API. Puedes hacer llamadas a la API de Kubernetes de las siguientes formas:

  • Llamadas directas: KRM
  • Llamadas indirectas: clientes de 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 del 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.

Tus solicitudes a la API indican a Kubernetes el estado que has elegido para los objetos de tu clúster. Kubernetes intenta mantener ese estado de forma constante. Kubernetes te permite configurar objetos en la API de forma imperativa o declarativa.

Gestión de nodos de trabajador

El plano de control gestiona lo que se ejecuta en todos los nodos del clúster. El plano de control programa las cargas de trabajo y gestiona su ciclo de vida, escalado y actualizaciones. El plano de control también gestiona los recursos de red y de almacenamiento de esas cargas de trabajo. El plano de control y los nodos se comunican entre sí mediante las APIs de Kubernetes.

Acerca de los nodos

Los nodos son las máquinas de trabajo 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 gestiona y recibe actualizaciones sobre el estado notificado de cada nodo.

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

GKE en GDC también ejecuta una serie de contenedores de sistema que se ejecutan como agentes por nodo, llamados DaemonSets, que proporcionan funciones como la recogida 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 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 para programar pods que requieren más recursos que otros, como más memoria o espacio en disco local. Puedes usar restricciones de nodos si necesitas más control sobre la programación de pods.

Para obtener más información, consulta Gestionar pools de nodos.

Configuraciones de clústeres de Kubernetes

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

  • Clúster compartido: clúster de Kubernetes de ámbito de organización que abarca varios proyectos y que no está gestionado por un solo proyecto, sino que está vinculado a ellos.
  • Clúster estándar: un clúster de Kubernetes de ámbito de proyecto que gestiona los recursos de clúster de un proyecto y no puede abarcar varios proyectos.

Puedes elegir el clúster que mejor se adapte a tus requisitos para gestionar 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 ofrece compatibilidad con GPUs de NVIDIA para clústeres de Kubernetes, y ejecuta tus dispositivos de GPU como cargas de trabajo de usuario. Por ejemplo, puede que prefieras ejecutar cuadernos de inteligencia artificial (IA) y aprendizaje automático en un entorno de GPU. Debes configurar tu clúster para que admita dispositivos GPU aprovisionando máquinas GPU para ellos. Para ver una lista de los tipos de máquinas compatibles con los clústeres de Kubernetes en GDC, consulta Máquinas de nodos de clúster.

Las GPUs se asignan de forma estática. Las cuatro primeras GPUs siempre se dedican a cargas de trabajo como las APIs de IA y aprendizaje automático preentrenadas. Estas GPUs no se ejecutan en un clúster de Kubernetes. Las GPUs restantes están disponibles para los clústeres de Kubernetes. Los cuadernos de IA y aprendizaje automático se ejecutan en clústeres de Kubernetes.

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

Limitaciones de GKE en GDC

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

  • Gestión automatizada de clústeres
    • Reparaciones automáticas de nodos: Los clústeres de Kubernetes de GDC no pueden corregir automáticamente los nodos cuando se vuelven incorrectos.
    • Actualizaciones automáticas de clústeres: los clústeres de Kubernetes de GDC no pueden actualizar automáticamente los nodos con nuevas actualizaciones de la versión de Kubernetes. Debes actualizar manualmente un clúster para incorporar las nuevas actualizaciones de Kubernetes.
    • Autoescalado de clústeres: Los clústeres de Kubernetes de GDC no pueden ajustar automáticamente el tamaño de sus nodos en función de las demandas de carga de trabajo.
    • Autopilot de GKE: GDC no ofrece un modo operativo totalmente gestionado para que los clústeres de Kubernetes gestionen la infraestructura.
    • Autoescalado vertical de pods: las solicitudes y los límites de CPU y memoria de los pods de un clúster de Kubernetes de GDC no se pueden ajustar automáticamente en función de las demandas de la carga de trabajo.
  • Multinube
    • Adjuntar clústeres multinube: GDC no puede gestionar clústeres de Kubernetes que se hayan creado en otros entornos de nube.
    • Pasarela de Connect: GDC no puede conectar clústeres de otros proveedores de servicios en la nube con tu Google Cloud identidad para la autenticación.
    • Entrada multi-clúster: los clústeres de Kubernetes de GDC no pueden compartir recursos de balanceo de carga entre clústeres.
  • Operaciones

Siguientes pasos