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 supone que ya conoces 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 que comiences.
Conceptos clave
A continuación, se incluyen 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 mucha más información para leer y explorar en los temas proporcionados en 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 es administrado 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 en conjunto como una sola entidad y en el que implementas 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 aún más recursos, como Pods y Services, 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 más pequeña que se puede implementar y 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 del estado de tus clústeres y cargas de trabajo, y lo administran según el estado deseado que especifiques (por ejemplo, "Quiero ejecutar tres de este Pod en este clúster, con este contenedor en cada Pod"). Diferentes controladores hacen un seguimiento de diferentes tipos de recursos de Kubernetes, incluidos los siguientes:
- Deployments: 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. Un Deployment reemplaza automáticamente cualquier Pod que falla o deja de responder.
- StatefulSet: Un StatefulSet es como un Deployment, pero mantiene una identidad persistente única 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 de "ayuda" 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 redes sobre 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 Service, incluidos los servicios de 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 objetos Service. Esto permite que los Pods dentro del clúster lleguen a otros Pods en el 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 usar el almacenamiento efímero, que se destruye cuando finaliza 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 usando kubectl
y otras herramientas, un programador para programar Pods en los nodos disponibles y los controladores que realizan un seguimiento del estado del clúster y lo administran. En GKE, Google Cloudproporciona y administra el plano de control.
Obtén 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 del RBAC de Kubernetes y el Identity and Access Management de Google Cloudpara proteger tus aplicaciones.
Obtén más información en la documentación de Kubernetes:
Lecturas recomendadas
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 detallada de Kubernetes. Why you need Kubernetes and what it can do es una excelente introducción a los problemas que Kubernetes puede resolver.
- Instructivo: Aprende los conceptos básicos de Kubernetes: Te guía por los conceptos básicos de Kubernetes con un ejemplo simple.
- Instructivo: Introducción a los contenedores: Aprende sobre los contenedores y la organización de contenedores con una aplicación de ejemplo simple. Finaliza con el ejemplo ejecutándose en GKE.
- Instructivos de Kubernetes: Cuando estés 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 conoces algún término de Kubernetes, aquí puedes buscarlo.
Videos
- Learn Kubernetes with Google: Es una playlist de guías en video de Google que abarca diferentes características y funciones de Kubernetes, con material para desarrolladores y operadores.
Cómic
- Historieta 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).