Tutorial de Kubernetes para principiantes
โก Resumen inteligente
Kubernetes es un sistema de gestiรณn de contenedores de cรณdigo abierto desarrollado por Google que automatiza el despliegue, el escalado y el funcionamiento de aplicaciones en contenedores en clรบsteres de servidores fรญsicos, virtuales y en la nube, ofreciendo autorreparaciรณn, despliegues automatizados, equilibrio de carga y entornos consistentes para una entrega fiable de las aplicaciones.

Antes de comenzar este tutorial de Kubernetes, aprendamos:
ยฟQuรฉ es kubernetes?
Kubernetes es un sistema de gestiรณn de contenedores desarrollado en el Google Kubernetes es una plataforma que ayuda a gestionar aplicaciones en contenedores en diversos tipos de entornos fรญsicos, virtuales y en la nube. Google Kubernetes es una herramienta de contenedores altamente flexible que permite ofrecer de forma consistente aplicaciones complejas que se ejecutan en clรบsteres de cientos o miles de servidores individuales.
ยฟPor quรฉ necesitas contenedores?
El usuario de Internet de hoy nunca acepta el tiempo de inactividad. Por lo tanto, los desarrolladores deben encontrar un mรฉtodo para realizar el mantenimiento y la actualizaciรณn sin interrumpir sus servicios.
Por lo tanto, un contenedor es un entorno aislado. Incluye todo lo necesario para la ejecuciรณn de una aplicaciรณn. Facilita a los desarrolladores la ediciรณn e implementaciรณn de aplicaciones. Ademรกs, la contenedorizaciรณn se ha convertido en el mรฉtodo predilecto para empaquetar, implementar y actualizar aplicaciones web.
ยฟQuรฉ tareas realiza Kubernetes?
Kubernetes es el kernel de Linux que se utiliza para sistemas distribuidos. Te ayuda a estar completamente seguro.tract el hardware subyacente de los nodos (servidores) y ofrece una interfaz consistente para las aplicaciones que consumen el conjunto compartido de recursos.
ยฟPor quรฉ utilizar Kubernetes?
Kubernetes le ayuda a controlar la asignaciรณn de recursos y la gestiรณn del trรกfico para microservicios y aplicaciones en la nube. Tambiรฉn ayuda a simplificar varios aspectos de las infraestructuras orientadas a servicios. Kubernetes le permite garantizar dรณnde y cuรกndo se ejecutan las aplicaciones en contenedores y le ayuda a encontrar recursos y herramientas con las que desea trabajar.
Caracterรญsticas de los kubernetes
Estas son las caracterรญsticas esenciales de Kubernetes:
- Programaciรณn automatizada
- Capacidades de autocuraciรณn
- Implementaciones y reversiones automatizadas
- Escalado horizontal y equilibrio de carga
- Ofrece coherencia ambiental para desarrollo, pruebas y producciรณn.
- La infraestructura estรก dรฉbilmente acoplada a cada componente y puede actuar como una unidad separada.
- Proporciona una mayor densidad de utilizaciรณn de recursos.
- Ofrece funciones listas para la empresa
- Gestiรณn centrada en aplicaciones
- Infraestructura autoescalable
- Puedes crear una infraestructura predecible
Conceptos bรกsicos de Kubernetes
Ahora, en este tutorial de Kubernetes, aprenderemos algunos conceptos bรกsicos importantes de Kubernetes:
Cluster
Es una colecciรณn de hosts (servidores) que lo ayuda a agregar sus recursos disponibles. Eso incluye RAM, CPU, RAM, disco y sus dispositivos en un grupo utilizable.
Domina el
El maestro es una colecciรณn de componentes que conforman el panel de control de Kubernetes. Estos componentes se utilizan para todas las decisiones del clรบster. Incluye tanto la programaciรณn como la respuesta a los eventos del clรบster.
Nodo
Es un รบnico host que es capaz de ejecutarse de forma fรญsica o mรกquina virtualUn nodo debe ejecutar kube-proxy, minikube y kubelet, que se consideran parte del clรบster.
Espacio de nombres
Es un clรบster o entorno lรณgico. Es un mรฉtodo ampliamente utilizado que se emplea para scoping acceder o dividir un clรบster.
Kubernetes Architectura
A continuaciรณn se muestra un diagrama detallado de la arquitectura de Kubernetes:

Nodo maestro
El nodo maestro es el primer componente y el mรกs importante, responsable de la gestiรณn del clรบster de Kubernetes. Es el punto de entrada para todo tipo de tareas administrativas. Puede haber mรกs de un nodo maestro en el clรบster para comprobar la tolerancia a fallos.
El nodo maestro tiene varios componentes como API Server, Controller Manager, Scheduler y ETCD. Vamos a verlos todos.
Servidor API: El servidor API actรบa como punto de entrada para todos los comandos REST utilizados para controlar el clรบster.
Scheduler
El programador programa las tareas para el nodo esclavo. Almacena la informaciรณn de uso de recursos para cada nodo esclavo. Es el responsable de distribuir la carga de trabajo.
Tambiรฉn te ayuda a track cรณmo se utiliza la carga de trabajo en los nodos del clรบster. Esto le ayuda a ubicar la carga de trabajo en los recursos disponibles y a aceptarla.
Etc.
Los componentes de etcd almacenan detalles de configuraciรณn y valores de Wright. Se comunica con la mayorรญa de los componentes para recibir comandos y trabajar. Tambiรฉn gestiona las reglas de la red y la actividad de reenvรญo de puertos.
Nodos trabajador/esclavo
Los nodos trabajadores son otro componente esencial que contiene todos los servicios necesarios para gestionar la red entre los contenedores y comunicarse con el nodo maestro, lo que le permite asignar recursos a los contenedores programados.
- Kubelet: obtiene la configuraciรณn de un Pod del servidor API y garantiza que los contenedores descritos estรฉn en funcionamiento.
- Contenedor acoplable: Docker El contenedor se ejecuta en cada uno de los nodos trabajadores, que ejecuta los pods configurados.
- Kube-proxy: Kube-proxy actรบa como equilibrador de carga y proxy de red para realizar el servicio en un รบnico nodo trabajador.
- Pods: un pod es una combinaciรณn de uno o varios contenedores que se ejecutan lรณgicamente juntos en nodos.
Otras terminologรญas clave
Controladores de replicaciรณn
Un controlador de replicaciรณn es un objeto que define una plantilla de pod. Tambiรฉn controla los parรกmetros para escalar rรฉplicas idรฉnticas de Pod horizontalmente aumentando o disminuyendo el nรบmero de copias en ejecuciรณn.
Conjuntos de replicaciรณn
Los conjuntos de replicaciรณn son una interacciรณn en el diseรฑo del controlador de replicaciรณn con flexibilidad en la forma en que el controlador reconoce los pods que debe administrar. Reemplaza a los controladores de replicaciรณn debido a su mayor capacidad de selecciรณn de replicaciones.
Los despliegues
La implementaciรณn es una carga de trabajo comรบn que se puede crear y administrar directamente. La implementaciรณn utiliza el conjunto de replicaciรณn como bloque de construcciรณn que agrega la caracterรญstica de gestiรณn del ciclo de vida.
Conjuntos con estado
Es un control de pod especializado que ofrece orden y singularidad. Se utiliza principalmente para tener un control detallado, que es especialmente necesario en relaciรณn con el orden de implementaciรณn, la red estable y los datos persistentes.
Conjuntos de demonios
Los conjuntos de daemon son otra forma especializada de controlador de pod que ejecuta una copia de un pod en cada nodo del clรบster. Este tipo de controlador de pod es un mรฉtodo eficaz para implementar pods que le permite realizar tareas de mantenimiento y ofrece servicios para los propios nodos.
Kubernetes contra Docker Swarm
Aquรญ hay diferencias importantes entre Kubernetes frente a Docker.
| Parรกmetro | Enjambre Docker | Kubernetes |
|---|---|---|
| Descamaciรณn | Sin escala automรกtica | Escalado automรกtico |
| Balanceo de carga | ยฟTiene equilibrio de carga automรกtico? | Configure manualmente sus ajustes de equilibrio de carga |
| Compartir volumen de almacenamiento | Comparte volรบmenes de almacenamiento con cualquier otro contenedor | Comparte volรบmenes de almacenamiento entre mรบltiples contenedores dentro del mismo Pod |
| Uso de herramienta de inicio de sesiรณn y monitoreo. | Utilice 3rd herramienta de fiesta como ELK | Proporcione una herramienta incorporada para registro y monitoreo. |
| Instalaciรณn | Fรกcil y rรกpido | Complicado y requiere mucho tiempo |
| GUI | GUI no disponible | GUI estรก disponible |
| Escalabilidad organizacional | La ampliaciรณn es mรกs rรกpida que con K8S, pero la solidez del clรบster no es tan sรณlida | El escalamiento es lento en comparaciรณn con Swarm, pero garantiza un estado de clรบster mรกs fuerte. El equilibrio de carga requiere una configuraciรณn manual del servicio. |
| Balanceo de carga | Proporciona una tรฉcnica de equilibrio de carga incorporada. | Programaciรณn de procesos para mantener los servicios durante la actualizaciรณn. |
| Actualizaciones y reversiones Registro y monitoreo de volรบmenes de datos | Actualizaciones progresivas y seguimiento de la salud del servicio. | Solo se comparte con contenedores en el mismo Pod. Herramientas de registro y monitoreo incorporadas. |
Ventajas de Kubernetes
- Fรกcil organizaciรณn del servicio con pods
- Es desarrollado por Google, quienes aportan aรฑos de valiosa experiencia en la industria.
- La comunidad mรกs grande entre las herramientas de orquestaciรณn de contenedores
- Ofrece una variedad de opciones de almacenamiento, incluidas las locales, SAN y nubes pรบblicas.
- Se adhiere a los principios de infraestructura inmutable.
- Kubernetes puede ejecutar bare metal local, OpenStack y nubes pรบblicas Google, Azure, AWS, etc.
- Ayuda a evitar problemas de dependencia de proveedores, ya que puede utilizar cualquier API o servicio especรญfico del proveedor, excepto cuando Kubernetes proporciona una API absoluta.tracciรณn, por ejemplo, balanceador de carga y almacenamiento.
- La contenedorizaciรณn mediante kubernetes permite que el software de paquetes cumpla estos objetivos. Permitirรก que las aplicaciones que necesitan ser lanzadas y actualizadas sin ningรบn tiempo de inactividad.
- Kubernetes le permite asegurarse de que esas aplicaciones en contenedores se ejecuten donde y cuando quiera y le ayuda a encontrar los recursos y herramientas con los que desea trabajar.
Desventajas de Kubernetes
- El panel de Kubenetes no es tan รบtil como deberรญa ser
- Kubernetes es un poco complicado e innecesario en entornos donde todo el desarrollo se realiza localmente.
- La seguridad no es muy efectiva.
