GKE se basa en la plataforma de orquestación de contenedores de código abierto Kubernetes, y gran parte de la documentación de este sitio presupone que ya conoces los conceptos y la terminología básicos de Kubernetes. Si no es así, en esta página se ofrece un resumen rápido de los conceptos básicos de Kubernetes, con enlaces a lecturas recomendadas para empezar.
Conceptos clave
A continuación se indican algunos de los conceptos clave que usamos en la documentación de GKE. Esta no es una lista exhaustiva de conceptos de Kubernetes. Puedes encontrar mucha más información en los temas proporcionados de la documentación de Kubernetes y en nuestra lectura recomendada.
Nodos y clústeres
Todas las cargas de trabajo de Kubernetes se ejecutan en nodos. En GKE, un nodo es una máquina virtual (VM) de Compute Engine. En otras plataformas de Kubernetes, un nodo puede ser una máquina física o virtual. Cada nodo está gestionado por el plano de control de Kubernetes y tiene todos los componentes necesarios para ejecutar pods. Un clúster es un conjunto de nodos que se pueden tratar como una sola entidad en la que se despliega una aplicación en contenedores.
Consulta más información en la documentación de Kubernetes:
Espacios de nombres
Los espacios de nombres de Kubernetes proporcionan un mecanismo para agrupar y seleccionar recursos, como pods y servicios, en un clúster. Por ejemplo, si tienes varios equipos de aplicaciones que ejecutan cargas de trabajo en un solo clúster.
Consulta más información en la documentación de Kubernetes:
Pods
En Kubernetes, las aplicaciones en contenedores se ejecutan en un pod. Un pod es la unidad de computación desplegable más pequeña que puedes crear y gestionar en Kubernetes. Un pod tiene uno o varios contenedores. Cuando un pod ejecuta varios contenedores (por ejemplo, un servidor de aplicaciones y un servidor proxy), los contenedores se gestionan como una sola entidad y comparten los recursos del pod.
Consulta más información en la documentación de Kubernetes:
Controladores
Los controladores de Kubernetes monitorizan y gestionan el estado de tus clústeres y cargas de trabajo en función del estado deseado que especifiques (por ejemplo, "Quiero ejecutar tres de este pod en este clúster, con este contenedor en cada pod"). Los distintos controladores monitorizan diferentes tipos de recursos de Kubernetes, entre los que se incluyen los siguientes:
- Despliegues: un despliegue es un objeto de Kubernetes que representa uno o varios pods idénticos, llamados réplicas. Una implementación ejecuta varias réplicas de los pods distribuidas entre los nodos de un clúster. Un Deployment sustituye automáticamente los pods que fallan o no responden.
- StatefulSet un StatefulSet es como un Deployment, pero mantiene una identidad única persistente para cada uno de sus pods. Los StatefulSets pueden ser útiles en aplicaciones con estado persistente (aplicaciones con reconocimiento del estado).
- DaemonSets un DaemonSet de Kubernetes te permite añadir pods predeterminados a algunos o a todos tus nodos. A menudo, se trata de servicios de asistencia para tus cargas de trabajo, como un daemon de recogida de registros o un daemon de monitorización.
- ReplicaSets un ReplicaSet es un conjunto de pods idénticos. Un ReplicaSet se gestiona normalmente como parte de un Deployment.
Consulta más información en la documentación de Kubernetes:
Servicio de Kubernetes
De forma predeterminada, no puedes controlar en qué nodo de clúster se ejecuta un pod, por lo que los pods no tienen direcciones IP estables. Para obtener una dirección IP de una aplicación que se ejecuta en Kubernetes, debes definir una abstracción de red sobre sus pods, llamada servicio de Kubernetes. Un servicio de Kubernetes proporciona un endpoint de red estable para un conjunto de pods.
Hay varios tipos de servicio, entre los que se incluyen los siguientes:
LoadBalancer
Servicios que exponen una dirección IP externa para que puedas acceder a las aplicaciones desde fuera de su clúster.
Kubernetes también tiene un sistema DNS integrado para la resolución de direcciones internas, que asigna nombres DNS (por ejemplo, helloserver.default.cluster.local
) a los servicios. De esta forma, los pods del clúster pueden acceder a otros pods del clúster mediante una dirección estable. No puedes usar este nombre de DNS fuera del clúster, como desde Cloud Shell.
Consulta más información en la documentación de Kubernetes:
Almacenamiento
Si tus aplicaciones necesitan guardar datos que existan más allá del tiempo de vida de su pod (aplicaciones con estado), puedes usar un objeto PersistentVolume de Kubernetes para aprovisionar este almacenamiento. En GKE, el almacenamiento de PersistentVolume está respaldado por discos de Compute Engine. También puedes usar el almacenamiento efímero, que se destruye cuando finaliza el Pod correspondiente.
Consulta más información en la documentación de Kubernetes:
Plano de control de Kubernetes
El plano de control de Kubernetes es un conjunto de componentes del sistema que gestionan el estado general de tu clúster, incluido el servidor de la API de Kubernetes, que te permite interactuar con tus clústeres y aplicaciones mediante kubectl
y otras herramientas, un programador para programar pods en los nodos disponibles y los controladores que monitorizan y gestionan el estado del clúster. En GKE, el plano de control lo proporciona y gestiona Trusted Cloud by S3NS.
Consulta más información en la documentación de Kubernetes:
Control de acceso basado en roles (RBAC)
Kubernetes incluye un mecanismo de control de acceso basado en roles (RBAC) que te permite crear políticas de autorización para acceder a tus clústeres y sus recursos. Cuando usas GKE, a menudo utilizas una combinación de RBAC de Kubernetes y gestión de identidades y accesos de Trusted Cloud by S3NSpara proteger tus aplicaciones.
Consulta más información en la documentación de Kubernetes:
Lecturas recomendadas
En esta sección se proporcionan enlaces a recursos recomendados para obtener más información sobre Kubernetes. En concreto, Kubernetes.io, el sitio web oficial de Kubernetes, tiene mucho material actualizado y fiable sobre todo lo relacionado con Kubernetes.
Guías y tutoriales
- Descripción general de Kubernetes: una descripción conceptual detallada de Kubernetes. Por qué necesitas Kubernetes y qué puede hacer es una introducción excelente a los problemas que puede resolver Kubernetes.
- Tutorial: Aprender los conceptos básicos de Kubernetes: te explica los conceptos básicos de Kubernetes con un ejemplo sencillo.
- Tutorial: Introducción a los contenedores: descubre los contenedores y la orquestación de contenedores con una aplicación de ejemplo sencilla. Al final, la aplicación de ejemplo se ejecutará en GKE.
- Tutoriales de Kubernetes: cuando quieras ir más allá de los conceptos básicos, consulta esta sección de la documentación de Kubernetes, que ofrece tutoriales sobre diversos temas de Kubernetes, desde aplicaciones con reconocimiento del estado hasta seguridad.
Documentación de referencia
- Glosario de Kubernetes: una lista completa y estandarizada de términos de Kubernetes. Si no tienes claro algún término de Kubernetes, aquí puedes buscarlo.
Vídeos
- Aprende Kubernetes con Google: una lista de reproducción de guías en vídeo de Google que abarcan diferentes funciones y características de Kubernetes, con material para desarrolladores y operadores.
Cómic
- Cómic de Kubernetes: descubre la historia de Kubernetes y cómo usarlo para la integración y la entrega continuas con la ayuda de la diosa de la sabiduría (y de las aplicaciones en contenedores).