Kubernetes Que Es y Para Qué Sirve. Vamos a responder a este tema, por el cual nos preguntan bastante. Kubernetes y Docker son las herramientas perfectas para desplegar y gestionar aplicaciones en la actualidad. Trabajando con contenedores de apps.
La tecnología de contenedores con Docker y Kubernetes lo está cambiando todo en el mundo de la gestión de aplicaciones, servidores, cloud computing, desarrollo web y de aplicaciones móviles multiplataforma.
Kubernetes Qué Es y Para Qué Sirve?
Kubernetes, k8s (abreviatura que se forma con la primera k, el 8, que representa los 8 caracteres de en medio, y luego la s) o «kube» para ser breves, es una plataforma de open source que automatiza las operaciones de un contenedor de Linux. Elimina muchos de los procesos manuales involucrados en la implementación y escalabilidad de las aplicaciones en contenedores.
En otras palabras, puede crear un clúster de grupos de hosts con Docker que ejecutan contenedores de Linux, y Kubernetes lo ayuda a administrar con facilidad y eficacia esos clústeres. Estos clústeres pueden comprender hosts en nubes públicas, privadas o híbridas.
Kubernetes fue desarrollado y diseñado originalmente por ingenieros de Google. Google fue uno de los primeros colaboradores de la tecnología de contenedores de Linux, y ha contado públicamente que todo en Google se ejecuta en contenedores. (Esta tecnología es la que subyace tras los servicios de nube de Google).
Google genera más de 2 mil millones de implementaciones en contenedores por semana, impulsadas por una plataforma interna: Borg. Borg fue la precursora de Kubernetes, y las lecciones aprendidas del desarrollo de Borg a lo largo de los años fueron la principal influencia detrás de gran parte de la tecnología de Kubernetes.
Google donó el proyecto Kubernetes a la recientemente creada Cloud Native Computing Foundation en 2015. Kubernetes Qué Es y Para Qué Sirve?
¿Cual es la Necesidad de Kubernetes?
Las aplicaciones de producción real abarcan varios contenedores. Esos contenedores deben implementarse en varios hosts de servidores. Kubernetes le ofrece las capacidades de organización y gestión que se necesitan para implementar contenedores a escala para estas cargas de trabajo.
La organización de Kubernetes le permite crear servicios de aplicaciones que abarcan varios contenedores, programar esos contenedores en un clúster, escalarlos y administrar el estado de esos contenedores en el tiempo.
Kubernetes también debe integrarse a las conexiones en red, el almacenamiento, la seguridad, la telemetría y otros servicios para proporcionar una infraestructura completa de contenedores. Kubernetes Qué Es y Para Qué Sirve?
Como Utilizar los Contenedores
Esto multiplica significativamente el número de contenedores en su entorno y, a medida que dichos contenedores se acumulan, la complejidad aumenta.
Kubernetes soluciona muchos problemas comunes de la proliferación de contenedores al ordenar y reunir los contenedores juntos en un pod. Los pods añaden un nivel de abstracción a los contenedores agrupados, lo que le permite programar las cargas de trabajo y proporcionar los servicios necesarios, como las conexiones de red y el almacenamiento, para esos contenedores.
Otras partes de Kubernetes lo ayudan a equilibrar la carga en estos pods y a garantizar que cuente con la cantidad correcta de contenedores ejecutándose para dar soporte a su carga de trabajo.
Con la implementación correcta de Kubernetes y la ayuda de otros proyectos de open source, como por ejemplo Atomic Registry, Open vSwitch, heapster, OAuth y SELinux, puede organizar todas las partes de su infraestructura de contenedores.
¿Qué Se Puede Hacer con Kubernetes?
La principal ventaja de usar Kubernetes en su entorno es que le proporciona la plataforma para programar y ejecutar contenedores en clústeres de máquinas virtuales o físicas. A grandes rasgos, le permite implementar y depender completamente de una infraestructura basada en contenedores en entornos de producción.
Y dado que Kubernetes abarca todo lo referido a la automatización de tareas operativas, puede hacer muchas de las cosas que también otras plataformas de aplicaciones o sistemas de gestión le permiten hacer, pero para sus contenedores. Kubernetes Qué Es y Para Qué Sirve?
Con Kubernetes usted puede:
- Orquestar contenedores en múltiples hosts.
- Hacer un mejor uso del hardware para maximizar los recursos necesarios para ejecutar sus aplicaciones empresariales.
- Controlar y automatizar las implementaciones y actualizaciones de las aplicaciones.
- Montar y añadir almacenamiento para ejecutar aplicaciones con estado.
- Escalar las aplicaciones en contenedores y sus recursos sobre la marcha.
- Administrar servicios de forma declarativa, que garanticen que las aplicaciones implementadas siempre se ejecuten del modo que las implementó.
- Comprobaciones de estado y autorregeneración de sus aplicaciones con ubicación, reinicio, replicación y escalamiento automáticos.
Otros Proyectos de Apoyo a Kubernetes
Sin embargo, Kubernetes depende de otros proyectos para proporcionar todos estos servicios orquestados. Con el agregado de otros proyectos de open source, puede desplegar al máximo la potencia de Kubernetes. Estas piezas necesarias incluyen las siguientes, entre otras:
- Registro, a través de proyectos como Atomic Registry o Docker Registry.
- Conexiones en red, a través de proyectos como OpenvSwitch y enrutamiento inteligente de perímetros.
- Telemetría, a través de proyectos como heapster, kibana, hawkular y elastic.
- Seguridad, a través de proyectos como LDAP, SELinux, RBAC y OAUTH, con capas multitenencia.
- Automatización, con incorporación de guías de Ansible para instalación y administración del ciclo de vida de los clústeres.
- Servicios, a través de un amplio catálogo del contenido de los patrones de las aplicaciones más conocidas, creado previamente.
Aprender el Lenguaje de Kubernetes
Como cualquier tecnología, existen muchas palabras específicas de la tecnología que pueden ser una barrera al ingresar. Veamos algunos de los términos más comunes para ayudarlo a entender Kubernetes.
- Master: la máquina que controla los nodos Kubernetes. Aquí es donde se originan todas las asignaciones de tareas.
- Nodo: estas máquinas realizan las tareas requeridas y asignadas. El master de Kubernetes las controla.
- Pod: un grupo de uno o más contenedores implementados en un nodo único. Todos los contenedores de un pod comparten la dirección IP, la IPC, el nombre del host y otros recursos. Los pods abstraen la red y el almacenamiento del contenedor subyacente. Esto le permite mover los contenedores por el clúster con mayor facilidad.
- Controlador de replicación: controla cuántas copias idénticas de un pod deben estar ejecutándose en algún lugar del clúster.
- Servicio: separa las definiciones de tareas de los pods. Los proxies de servicios de Kubernetes envían automáticamente las solicitudes de servicio al pod correspondiente, sin importar adónde se traslada en el clúster, o incluso si está siendo reemplazado.
- Kubelet: este servicio se ejecuta en los nodos y lee los manifiestos del contenedor, y garantiza que los contenedores definidos estén iniciados y ejecutándose.
- kubectl: es la herramienta de configuración de la línea de comandos de Kubernetes.
Vea Cómo se Adapta Kubernetes a su Infraestructura
Kubernetes se ejecuta en un sistema operativo e interactúa con los pods de los contenedores que se ejecutan en los nodos. El master de Kubernetes toma los comandos de un administrador (o del equipo de DevOps) y transmite esas instrucciones a los nodos subordinados. Kubernetes Qué Es y Para Qué Sirve?
Esta transferencia funciona con una gran cantidad de servicios para decidir automáticamente qué nodo es el que mejor se adapta a la tarea. Luego asigna los recursos y los pods en ese nodo para cumplir con la tarea requerida.
Por lo tanto, desde el punto de vista de la infraestructura, hay un cambio muy pequeño en la manera en que usted ha estado administrando los contenedores. El control sobre esos contenedores comienza en un nivel superior, lo que le ofrece un mejor control sin la necesidad de microadministrar cada contenedor o nodo por separado. Kubernetes Qué Es y Para Qué Sirve?
Aunque es necesario realizar algunas tareas, se trata principalmente de asignar un master de Kubernetes, definir nodos y definir pods.
Docker
La tecnología Docker funciona igual, como se supone que debe hacerlo. Cuando Kubernetes programa un pod en un nodo, el kubelet en ese nodo instruye a Docker para iniciar los contenedores especificados.
El kubelet luego recopila continuamente información del estado de esos contenedores desde Docker y añade esa información en el master. Docker arrastra los contenedores a ese nodo, e inicia y detiene esos contenedores como lo hace normalmente.
La diferencia radica en que un sistema automatizado le solicita a Docker que realice estas acciones, en lugar de que el administrador lo haga manualmente en todos los nodos de todos los contenedores.
Comparte, opina y si necesitas ayuda no dudes en contactar con nosotros… Kubernetes Qué Es y Para Qué Sirve?