GKE se basa en la plataforma de organización de contenedores de código abierto Kubernetes, y gran parte de la documentación de este sitio da por sentado que ya estás familiarizado con los conceptos y la terminología básicos de Kubernetes. Si no es así, en esta página, se proporciona una descripción general rápida de los conceptos básicos de Kubernetes, con vínculos a lecturas recomendadas para comenzar.
Conceptos clave
Los siguientes son algunos conceptos clave que usamos en toda la documentación de GKE. Esta no es una lista exhaustiva de los conceptos de Kubernetes. Puedes encontrar mucho más para leer y explorar 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 nodes. 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. El plano de control de Kubernetes administra cada nodo y tiene todos los componentes necesarios para ejecutar pods. Un clúster es un conjunto de nodos que se pueden tratar en conjunto como una sola entidad y en el que se implementa una aplicación en contenedores.
Obtén 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 más recursos, como Pods y servicios dentro de un clúster, por ejemplo, si tienes varios equipos de aplicaciones que ejecutan cargas de trabajo en un solo clúster.
Obtén más información en la documentación de Kubernetes:
Pods
En Kubernetes, las aplicaciones en contenedores se ejecutan dentro de un pod. Un Pod es la unidad de procesamiento implementable más pequeña que puedes crear y administrar en Kubernetes. Un Pod tiene uno o más contenedores. Cuando un Pod ejecuta varios contenedores (por ejemplo, un servidor de aplicaciones y un servidor proxy), los contenedores se administran como una sola entidad y comparten los recursos del Pod.
Obtén más información en la documentación de Kubernetes:
Controladores
Los controladores de Kubernetes hacen un seguimiento y administran el estado de tus clústeres y cargas de trabajo, según el estado deseado que especifiques (por ejemplo, "Me gustaría ejecutar tres de estos Pods en este clúster, con este contenedor en cada Pod"). Los diferentes controladores realizan un seguimiento de diferentes tipos de recursos de Kubernetes, incluidos los siguientes:
- Implementaciones: Un Deployment es un objeto de Kubernetes que representa uno o más Pods idénticos, llamados réplicas. Un Deployment ejecuta varias réplicas de los Pods distribuidos entre los nodos de un clúster. Una Deployment reemplaza automáticamente cualquier Pod que falle o deje de responder.
- StatefulSet: Un StatefulSet es como un Deployment, pero mantiene una identidad única y persistente para cada uno de sus Pods. Los StatefulSets pueden ser útiles en aplicaciones con estado persistente (aplicaciones con estado).
- DaemonSets: Un DaemonSet de Kubernetes te permite agregar Pods predeterminados a algunos o a todos tus nodos. A menudo, estos son servicios “auxiliares” para tus cargas de trabajo, como un daemon de recopilación de registros o un daemon de supervisión.
- ReplicaSets: Un ReplicaSet es un conjunto de Pods idénticos. Por lo general, un ReplicaSet se administra como parte de una Deployment.
Obtén más información en la documentación de Kubernetes:
Service de Kubernetes
De forma predeterminada, no puedes controlar en qué nodo del clúster se ejecuta un Pod, por lo que los Pods no tienen direcciones IP estables. Para obtener una dirección IP para una aplicación que se ejecuta en Kubernetes, debes definir una abstracción de herramientas de redes además de sus Pods, lo que se denomina Service de Kubernetes. Un Service de Kubernetes proporciona un extremo de herramientas de redes estable para un conjunto de Pods.
Existen varios tipos de servicio, incluidos los servicios LoadBalancer
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 de DNS (por ejemplo, helloserver.default.cluster.local
) a los servicios. Esto permite que los Pods del clúster lleguen a otros Pods dentro del clúster con una dirección estable. No puedes usar este nombre de DNS fuera del clúster, por ejemplo, desde Cloud Shell.
Obtén más información en la documentación de Kubernetes:
Almacenamiento
Si tus aplicaciones necesitan guardar datos que existen más allá de la vida útil 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 optar por usar el almacenamiento efímero, que se destruye cuando se cierra el Pod correspondiente.
Obtén 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 administran 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 nodos disponibles y los controladores que hacen un seguimiento y administran el estado del clúster. En GKE, el plano de control es proporcionado y administrado por Google Cloud.
Obtén más información en la documentación de Kubernetes:
Control de acceso según la función (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 uses GKE, a menudo usarás una combinación de RBAC de Kubernetes y Identity and Access Management de Google Cloudpara proteger tus aplicaciones.
Obtén más información en la documentación de Kubernetes:
Lectura recomendada
En esta sección, se proporcionan vínculos a recursos recomendados para obtener más información sobre Kubernetes. En particular, Kubernetes.io, el sitio web oficial de Kubernetes, tiene mucho material confiable y actualizado sobre todo lo relacionado con Kubernetes.
Instructivos y guías
- Descripción general de Kubernetes: Una descripción general conceptual exhaustiva de Kubernetes. Por qué necesitas Kubernetes y qué puede hacer es una excelente introducción a los problemas que Kubernetes puede resolver.
- Instructivo: Aprende los conceptos básicos de Kubernetes: Te explica los conceptos básicos de Kubernetes con un ejemplo sencillo.
- Instructivo: Introducción a los contenedores: Obtén información sobre los contenedores y la orquestación de contenedores con una aplicación de ejemplo simple y termina con el ejemplo que se ejecuta en GKE.
- Instructivos de Kubernetes: Cuando tengas todo listo para ir más allá de los conceptos básicos, esta sección de la documentación de Kubernetes proporciona instructivos sobre una variedad de temas de Kubernetes, desde aplicaciones con estado hasta seguridad.
Documentación de referencia
- Glosario de Kubernetes: Una lista completa y estandarizada de la terminología de Kubernetes. Si no estás seguro de un término de Kubernetes, aquí tienes dónde buscarlo.
Videos
- Aprende a usar Kubernetes con Google: Una playlist de guías de video 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 entrega continuas, con la ayuda improbable de la Diosa de la Sabiduría (y las aplicaciones en contenedores).