• ¡Obtenga la seguridad de la aplicación de la manera correcta! Detectar, proteger, monitorear, acelerar y más ...
  • ¿Escuchas mucho sobre Kubernetes pero no estás seguro de qué son?

    What is Kubernetes?

    Kubernetes es una herramienta de código abierto que se encarga de la orquestación de contenedores. Automatiza la implementación de contenedores, el escalado y desescalado continuo, el equilibrio de carga de contenedores, etc.

    Kubernetes GeekFlare

    Google ha desarrollado inicialmente Kubernetes en el lenguaje de programación Go.

    Actualmente, es líder del mercado en la orquestación de contenedores. Kubernetes es una plataforma ideal para alojar aplicaciones de microservicios que se escalan de forma dinámica. Cuando trabaja en un entorno de producción, Kubernetes es la plataforma preferida y más segura para la orquestación de contenedores.

    Debido a que en un entorno de producción, espera cero tiempo de inactividad, su clúster siempre debe estar en funcionamiento.

    Con Google Cloud Platform (GCP), puede iniciar Kubernetes con solo unos pocos clics. Es compatible con otros proveedores de la nube, también como AWS y Azure. Y hay varios plataforma Kubernetes administrada disponible.

    Why Kubernetes?

    Anteriormente, una pelea entre desarrolladores y probadores era algo común.

    Los entornos solían ser diferentes para ellos; lo que funcionó en el sistema del desarrollador no se ejecutó en el sistema de probadores.

    Ahora que la mayoría de las organizaciones utilizan contenedores, los problemas que surgen debido a diferencias en el entorno ya no ocurren.

    Pero organizar y ejecutar varios contenedores tampoco es una tarea fácil. Cuando trabaja en aplicaciones dinámicas, escalando hacia arriba o hacia abajo, la cantidad de contenedores es algo normal. Hacer estas tareas manualmente puede resultar complejo y arriesgado. Por lo tanto, se requiere una herramienta de orquestación de contenedores y es por eso que se necesita Kubernetes.

    Kubernetes Features

    Hay muchos, pero los siguientes son algunos de los mejores.

    # Embalaje automático de contenedores

    Kubernetes empaqueta su aplicación y coloca contenedores automáticamente según sus requisitos y los recursos disponibles.

    # Descubrimiento de servicios y equilibrio de carga

    Kubernetes asigna automáticamente a los contenedores sus direcciones IP y un nombre DNS a los contenedores que ejecutan operaciones lógicas. La función de equilibrio de carga también está presente entre el conjunto de contenedores.

    # Orquestación de almacenamiento

    Kubernetes monta automáticamente el sistema de almacenamiento de su elección. Puede ser un almacenamiento local o un proveedor de nube pública como AWS.

    # Autocuración

    Siempre que Kubernetes se dé cuenta de que uno de sus contenedores ha fallado, reiniciará ese contenedor por sí solo y también creará un nuevo contenedor en lugar del bloqueado. En caso de que su nodo falle, los contenedores que se ejecutan en ese nodo se iniciarán en otro nodo en ejecución en el clúster.

    # Escala horizontal

    Puede escalar sus aplicaciones hacia arriba y hacia abajo rápidamente con un simple comando. El comando simple se puede ejecutar en la CLI o mediante el panel de Kubernetes. El escalado automático también es posible, según el uso de la CPU, sus contenedores se escalarán o reducirán automáticamente.

    # Rollback y rollout automático

    Siempre que hay una actualización de su aplicación, Kubernetes implementa progresivamente estos cambios y actualizaciones en la aplicación o sus configuraciones. No todas las instancias se actualizan al mismo tiempo, lo que garantiza una alta disponibilidad. Si algo sale mal, Kubernetes revertirá los cambios de inmediato.

    Kubernetes Terminologies

    Antes de ensuciarse las manos, debe conocer algunas terminologías que se utilizan en Kubernetes con regularidad.

    # Vaina

    Representa uno o más contenedores que se ejecutan en un clúster.

    # Servicios

    Una forma abstracta de acceder al pod / aplicación.

    # Espacio de nombres

    Se utiliza para eliminar la colisión de nombres dentro de un clúster. Es compatible con varios clústeres virtuales en el mismo clúster físico.

    # Nodo

    Máquina de trabajo de Kubernetes.

    # Médico

    Consta de un grupo de nodos que ejecutan aplicaciones en contenedores en Kubernetes.

    # Anotación

    Una etiqueta para almacenar los datos requeridos por los recursos.

    # Tamaño

    Es el directorio de datos al que acceden los contenedores en el pod.

    # ReplicaSet

    Varias réplicas de cápsulas para correr.

    # Disquera

    Dar un nombre a los objetos de Kubernetes para que se puedan identificar en todo el sistema.

    # Kubelet

    Es un agente que se ejecuta en cada nodo y comprueba si los contenedores se están ejecutando en los pods.

    # Kubectl

    Utilidad de línea de comandos para interactuar con el servidor API de Kubernetes.

    # Proxy de Kube

    Proxy de red que contiene todas las reglas de red en cada nodo del clúster.

    Kubernetes and Docker

    Ahora podría estar pensando en qué se diferencia Kubernetes de Docker. La frase Kubernetes vs. Docker puede ser engañosa.

    Docker es una plataforma que empaqueta sistemas operativos, bibliotecas y aplicaciones dentro de un contenedor. Déjame decirte que Docker hace lo mismo que debe hacer en Kubernetes. Pero cuando trabaja solo con Docker, todo es manual. Debe iniciar y detener los contenedores manualmente. Pero con Kubernetes, todo se automatiza.

    Kubernetes puede programar pods que tienen contenedores, luego Kubelet le dice a Docker que inicie o detenga los contenedores. Kubelet en Kubernetes es responsable de monitorear esos contenedores y recopilar su información en el nodo maestro. Entonces, la diferencia básica es que en lugar de que los administradores le digan a Docker qué hacer, en Kubernetes, todo está automatizado.

    Hay otra herramienta utilizada para la orquestación de contenedores es Enjambre Docker. Entonces, ¿cuál es la diferencia entre ellos?

    Kubernetes vs. Docker Swarm

    Kubernetes Enjambre Docker
    La instalación es compleja La instalación es sencilla
    Comunidad de código abierto más grande Comunidad más pequeña en comparación con Kubernetes
    Puede orquestar cientos de contenedores fácilmente Bueno para orquestar 10-20 contenedores
    El panel de Kubernetes proporciona GUI Sin GUI
    Admite escalado automático No admite escalado automático
    Admite actualizaciones continuas con reversión automática Admite actualizaciones continuas pero no reversión automática
    Registro y monitoreo disponibles incorporados Necesita un tercero como ELK para registro y monitoreo
    Puede compartir volumen con contenedores en el mismo pod Puede compartir volumen con cualquier contenedor del clúster

    En resumen

    Espero que ahora tenga una comprensión básica de qué es Kubernetes y cómo ayuda. Si está interesado en DevOps o está pensando en hacerlo, le sugiero que tome este fantástico curso de Udemy para aprender Kubernetes.