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 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 fundamentos de Kubernetes, con vínculos a lecturas recomendadas para que comiences.
Conceptos clave
Los siguientes son algunos conceptos clave que usamos en toda la documentación de GKE. Esta no es una lista exhaustiva de conceptos de Kubernetes . Puedes encontrar mucho más para leer y explorar en los temas proporcionados de la documentación de Kubernetes y en nuestras lecturas recomendadas.
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 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, “Me gustaría ejecutar tres de este Pod en este clúster, con este contenedor en cada Pod”). Los 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 de forma automática cualquier Pod que falla o deja de responder.
- 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 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 un 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 de 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
Service, incluidos
LoadBalancer Services 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 Services. 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 usar 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 mediante kubectl y otras herramientas, un programador para programar Pods en los nodos disponibles y los controladores que hacen un seguimiento del estado del clúster y lo administran. En GKE, el plano de control lo
proporciona y administra Google Cloud.
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, usas una combinación de RBAC de Kubernetes y Google Cloud's Identity and Access Management para 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 actualizado y confiable sobre todo lo relacionado con Kubernetes.
Instructivos y guías
- Descripción general de Kubernetes: Una descripción general conceptual completa 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 guía por los conceptos básicos de Kubernetes con un ejemplo simple.
- Instructivo: Introducción a los contenedores: Obtén información sobre los contenedores y la organización de contenedores con una aplicación de ejemplo simple y finaliza con el ejemplo que se ejecuta 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 deKubernetes: Una lista completa y estandarizada de la terminología de Kubernetes. Si no estás seguro de un término de Kubernetes, aquí es donde debes buscarlo.
Videos
- Aprende Kubernetes con Google: Una lista de reproducción de guías en video de Google que abarcan diferentes características y funciones 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).