Tutorial de Kubernetes: una guía completa para Kubernetes



Este blog sobre el tutorial de Kubernetes lo guiará a través de todos los conceptos del sistema de orquestación de contenedores con una práctica.

Kubernetes es una plataforma que elimina los procesos manuales involucrados en la implementación de aplicaciones en contenedores. En este blog sobre el tutorial de Kubernetes, repasará todos los conceptos relacionados con esta solución de gestión de varios contenedores.

Los siguientes temas se cubrirán en este tutorial:





Ahora, antes de avanzar en este blog, permítanme informarles rápidamente sobre la contenedorización.

Entonces, antes de que existieran los contenedores, los desarrolladores y los probadores siempre tenían una disputa entre ellos. Por lo general, esto sucedía porque lo que funcionaba en el lado del desarrollador no funcionaba en el lado de las pruebas. Ambos existieron en diferentes entornos. Ahora, para evitar tales escenarios, se introdujeron contenedores para que tanto los desarrolladores como los probadores estuvieran en la misma página.



por qué deberías aprender Python

La manipulación de una gran cantidad de contenedores en conjunto también fue un problema. A veces, al ejecutar contenedores, en el lado del producto, se plantearon pocos problemas que no estaban presentes en la etapa de desarrollo. Este tipo de escenarios introdujeron el Container Orchestration System.

Antes de profundizar en el sistema de orquestación, permítanme enumerar rápidamente los desafíos que enfrenta sin este sistema.



Tutorial de Kubernetes: Desafíos sin la orquestación de contenedores

Desafíos sin la orquestación de contenedores - Tutorial de Kubernetes - Edureka

Como puede ver en el diagrama anterior, cuando varios servicios se ejecutan dentro de contenedores, es posible que desee escalar estos contenedores. En industrias a gran escala, esto es realmente difícil de hacer. Esto se debe a que aumentaría el costo de mantener los servicios y la complejidad de ejecutarlos en paralelo.

Ahora, para evitar configurar los servicios manualmente y superar los desafíos, se necesitaba algo grande. Aquí es donde entra en juego Container Orchestration Engine.

Este motor, nos permite organizar múltiples contenedores, de tal manera que se lanzan todas las máquinas subyacentes, los contenedores están en buen estado y distribuidos en un entorno agrupado. En el mundo actual, existen principalmente dos de estos motores: Gobernadores & Enjambre de Docker .

Kubernetes Tutorial: Kubernetes vs Docker Swarm

Gobernadores y Enjambre de Docker son herramientas de orquestación de contenedores líderes en el mercado actual. Entonces, antes de usarlos en la producción, debe saber qué son exactamente y cómo funcionan.

Además, en el blog, voy a profundizar en Kubernetes, pero para conocer Docker puede hacer clic .

Como puede consultar la imagen anterior, Kubernetes, en comparación con Docker Swarm, posee una gran comunidad activa y permite el escalado automático en muchas organizaciones. De manera similar, Docker Swarm tiene un clúster fácil de iniciar en comparación con Kubernetes, pero está limitado a las capacidades de la API de Docker.

Bueno, amigos, estas no son las únicas diferencias entre estas herramientas principales. Si desea conocer las diferencias detalladas entre estas dos herramientas de orquestación de contenedores, puede hacer clic en

¿Le interesa saber más sobre Kubernetes?

Si pudiera elegir mi elección entre los dos, entonces tendría que ser Kubernetes, ya que los contenedores deben administrarse y conectarse al mundo exterior para tareas como la programación, el equilibrio de carga y la distribución.

Pero, si piensa lógicamente, Docker Swarm sería una mejor opción, ya que se ejecuta sobre Docker, ¿verdad? Si yo fuera usted, definitivamente me habría confundido acerca de qué herramienta usar. Pero bueno, Kubernetes es un líder indiscutible en el mercado y también se ejecuta sobre los contenedores Docker con mejores funcionalidades.

Ahora que ha entendido la necesidad de Kubernetes, es un buen momento, le digo ¿Qué es Kubernetes?

Kubernetes Tutorial: ¿Qué es Kubernetes?

es un código abierto sistema que maneja el trabajo de programar contenedores en un clúster de computación y administra las cargas de trabajo para garantizar que se ejecuten como lo desea el usuario. Al ser una creación de Google, ofrece una comunidad excelente y funciona de manera brillante con todos los proveedores de la nube para convertirse en un solución de gestión de contenedores múltiples.

Kubernetes Tutorial: Funciones de Kubernetes

Las características de Kubernetes son las siguientes:

  • Programación automatizada: Kubernetes proporciona un programador avanzado para lanzar contenedores en los nodos del clúster en función de sus requisitos de recursos y otras limitaciones, sin sacrificar la disponibilidad.
  • Capacidades de autocuración: Kubernetes permite reemplazar y reprogramar contenedores cuando los nodos mueren. También elimina los contenedores que no responden a la verificación de estado definida por el usuario y no los anuncia a los clientes hasta que están listos para publicarse.
  • Implementaciones y reversiones automatizadas: Kubernetes implementa cambios en la aplicación o su configuración mientras monitorea el estado de la aplicación para asegurarse de que no elimine todas sus instancias al mismo tiempo. Si algo sale mal, con Kubernetes puede revertir el cambio.
  • Balanceo de carga y escala horizontal: Kubernetes puede escalar y reducir la aplicación según los requisitos con un comando simple, usando una interfaz de usuario o automáticamente según el uso de la CPU.

Kubernetes Tutorial: Arquitectura de Kubernetes

La arquitectura de Kubernetes tiene los siguientes componentes principales:

  • Nodos maestros
  • Nodos trabajador / esclavo

Voy a discutir cada uno de ellos uno por uno. Por lo tanto, inicialmente comencemos por comprender Nodo maestro .

Nodo maestro

El nodo principal es responsable de la gestión del clúster de Kubernetes. Es principalmente el punto de entrada para todas las tareas administrativas. Puede haber más de un nodo maestro en el clúster para verificar la tolerancia a fallas.

Como puede ver en el diagrama anterior, el nodo principal tiene varios componentes como API Server, Controller Manager, Scheduler y ETCD.

  • Servidor API: El servidor API es el punto de entrada para todos los comandos REST utilizados para controlar el clúster.
  • Administrador del controlador: Es un demonio que regula el clúster de Kubernetes y gestiona diferentes lazos de control no terminantes.
  • Programador: El programador programa las tareas para los nodos esclavos. Almacena la información sobre el uso de recursos para cada nodo esclavo.
  • ETCD: ETCD es un almacén de valores clave simple, distribuido y coherente. Se utiliza principalmente para la configuración compartida y el descubrimiento de servicios.

Nodos trabajador / esclavo

Los nodos de trabajo contienen todos los servicios necesarios para administrar la red entre los contenedores, comunicarse con el nodo maestro y asignar recursos a los contenedores programados.

Como puede ver en el diagrama anterior, el nodo trabajador tiene varios componentes como Docker Container, Kubelet, Kube-proxy y Pods.

  • Contenedor Docker: Docker se ejecuta en cada uno de los nodos de trabajo y ejecuta los pods configurados
  • Kubelet: Kubelet obtiene la configuración de un Pod del servidor de API y se asegura de que los contenedores descritos estén en funcionamiento.
  • Proxy de Cuba: Kube-proxy actúa como un proxy de red y un equilibrador de carga para un servicio en un solo nodo trabajador
  • Vainas: Un pod es uno o más contenedores que lógicamente se ejecutan juntos en nodos.

Si desea una explicación detallada de todos los componentes de la arquitectura de Kubernetes, puede consultar nuestra blog en

¿Quiere obtener la certificación en Kubernetes?

Kubernetes Tutorial: Estudio de caso de Kubernetes

Y ¡ay! JAPÓN es un proveedor de servicios web con sede en Sunnyvale, California. Como la empresa tenía como objetivo virtualizar el hardware, la empresa comenzó a utilizar OpenStack en 2012. Su entorno interno cambió muy rápidamente. Sin embargo, debido al progreso de la tecnología de contenedores y nube, la empresa quería la capaPosibilidad de lanzar servicios en varias plataformas.

Problema: ¿Cómo crear imágenes para todas las plataformas requeridas a partir de un código de aplicación e implementar esas imágenes en cada plataforma?

Para su mejor comprensión, consulte la siguiente imagen. Cuando se cambia el código en el registro de código, las herramientas de integración continua crean imágenes completas, contenedores Docker e imágenes de VM, que se insertan en el registro de imágenes y luego se implementan en cada plataforma de infraestructura.


Ahora, centrémonos en el flujo de trabajo de los contenedores para comprender cómo utilizaron Kubernetes como plataforma de implementación. Consulte la imagen de abajo para echar un vistazo a la arquitectura de la plataforma.

Se utilizan instancias de OpenStack, con Docker, Kubernetes, Calico, etcd encima para realizar varias operaciones como Container Networking, Container Registry, etc.

Cuando tiene varios clústeres, entonces resulta difícil administrarlos, ¿verdad?

¿Cuál es la diferencia entre git y github?

Por lo tanto, solo querían crear un clúster OpenStack básico y simple para proporcionar la funcionalidad básica necesaria para Kubernetes y hacer que el entorno OpenStack sea más fácil de administrar.

Mediante la combinación del flujo de trabajo de creación de imágenes y Kubernetes, crearon la cadena de herramientas que se muestra a continuación, lo que facilita el proceso de envío de código a la implementación.


Este tipo de cadena de herramientas aseguró que se consideraran todos los factores para la implementación de producción, como la tenencia múltiple, la autenticación, el almacenamiento, las redes y el descubrimiento de servicios.

Así es como amigos Yahoo! JAPÓN construyó una cadena de herramientas de automatización para la implementación de código de 'un clic' en Kubernetes que se ejecuta en OpenStack, con la ayuda de Google y Solinea .

Tutorial de gobernadores: práctico

En esta práctica, le mostraré cómo crear una implementación y un servicio. Estoy usando una instancia Amazon EC2 para usar Kubernetes. Bueno, Amazon ha creado Servicio de contenedor elástico de Amazon para Gobernadores (Amazon EKS) , lo que les permite crear clústeres de Kubernetes en la nube de forma muy rápida y sencilla. Si desea obtener más información al respecto, puede consultar el blog.

Paso 1: primero crear una carpeta dentro del cual creará su implementación y servicio. Después de eso, use un editor y abrir un archivo de implementación .

mkdir handsOn cd handsOn vi Deploy.yaml

Paso 2: Una vez que abra el archivo de implementación, mencione todas las especificaciones de la aplicación que desea implementar. Aquí estoy tratando de implementar un httpd solicitud.

apiVersion: apps / v1 # Define el tipo de versión de API: Implementación # El parámetro Tipo define qué tipo de archivo es, aquí está Metadatos de implementación: nombre: dep1 # Almacena el nombre de la especificación de implementación: # En Especificaciones, mencionas todos las especificaciones para las réplicas de implementación: 3 # El número de réplicas sería 3 selector: matchLabels: app: httpd # El nombre de la etiqueta que se buscaría es httpd template: metadata: labels: app: httpd # El nombre de la plantilla sería httpd spec: # Under Especificaciones, mencionas todas las especificaciones de los contenedores contenedores: - nombre: httpd # El nombre de los contenedores sería httpd imagen: httpd: último #La imagen que se debe descargar es httpd: últimos puertos: - contenedorPort: 80 # estaría expuesto en el puerto 80

Paso 3: Después de escribir su archivo de implementación, aplique la implementación con el siguiente comando.

kubectl apply -f Deploy.yaml

Aquí -f es un nombre de bandera utilizado paratel archivonombre.

Etapa 4: Ahora, una vez que se aplique la implementación, obtenga la lista de pods en ejecución.

kubectl get pods -o wide

Aquí, -o wide se usa para saber en qué nodo se está ejecutando la implementación.

Paso 5: Después de haber creado una implementación, ahora debe crear un servicio. Para eso nuevamente use un editor y abra un espacio en blanco Servicio. archivo yaml .

vi service.yaml

Paso 6: Una vez que abra un archivo de servicio, mencione todas las especificaciones del servicio.

apiVersion: v1 # Define el tipo de versión de API: Servicio # El parámetro Tipo define qué tipo de archivo es, aquí está Metadatos del servicio: nombre: netsvc # Almacena el nombre de la especificación del servicio: # En Especificaciones, menciona todas las especificaciones para el tipo de servicio: selector de NodePort: aplicación: puertos httpd: -protocolo: puerto TCP: 80 targetPort: 8084 # El número de puerto de destino es 8084

Paso 7: Después de escribir su archivo de servicio, aplique el archivo de servicio usando el siguiente comando.

kubectl apply -f service.yaml

Paso 8: Ahora, una vez que se aplique su servicio para verificar si el servicio se está ejecutando o no, use el siguiente comando.

kubectl obtener svc

Paso 9: Ahora, para ver las especificaciones del servicio y comprobar qué Endpoint esenlazado a, use el siguiente comando.

kubectl describe svc

Paso 10: Ahora que estamos usando la instancia de amazon ec2, para buscar la página web y verificar el resultado, use el siguiente comando.

dirección ip curl

Si este blog del tutorial de Kubernetes le pareció relevante, consulte el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Tienes una pregunta para nosotros? Por favor, menciónelo en la sección de comentarios de ' Kubernetes Tutorial ”Y me pondré en contacto contigo.