Introducción a Kubernetes para principiantes

Escuchando mucho sobre Kubernetes pero no estoy seguro de qué son?


¿Qué es 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 continuo y la reducción de escala, el equilibrio de carga de contenedores, etc..

Kubernetes GeekFlare

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

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

Debido a que en un entorno de producción, espera un tiempo de inactividad cero, 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, como AWS y Azure. Y, hay múltiples plataformas Kubernetes administradas disponibles.

Por que kubernetes?

Anteriormente, una pelea entre desarrolladores y evaluadores 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 prueba.

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

Pero organizar y ejecutar múltiples contenedores tampoco es una tarea fácil. Cuando está trabajando en aplicaciones dinámicas, escalando hacia arriba / abajo, la cantidad de contenedores es algo normal. Hacer tales tareas manualmente puede ser complejo y arriesgado. Por lo tanto, se requiere una herramienta de orquestación de contenedores, y es por eso que se necesita Kubernetes.

Características de Kubernetes

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

# Embalaje automático de contenedores

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

# Descubrimiento de servicio 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 almacenamiento local o un proveedor de nube pública como AWS.

# Autocuración

Cada vez que Kubernetes se dé cuenta de que uno de sus contenedores ha fallado, reiniciará ese contenedor por sí mismo 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 comenzarán en otro nodo en ejecución en el clúster.

# Escalado 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 en el panel de Kubernetes. El autoescalado también es posible, en función del uso de la CPU, sus contenedores se ampliarían o reducirían automáticamente.

# Rollback y Rollout automáticos

Cada vez 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, entonces Kubernetes revertirá los cambios inmediatamente..

Terminologías de Kubernetes

Antes de ensuciarse las manos, debe conocer algunas terminologías utilizadas en Kubernetes regularmente.

# Pod

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

# Servicio

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

# Espacio de nombres

Se utiliza para eliminar la colisión de nombres dentro de un clúster. Admite múltiples clústeres virtuales en el mismo clúster físico.

# Nodo

Máquina de trabajo Kubernetes.

# Cluster

Compuesto por un grupo de nodos que ejecutan aplicaciones en contenedores en Kubernetes.

# Anotación

Una etiqueta para almacenar los datos requeridos por los recursos..

# Volumen

Es el directorio de datos que los contenedores en acceso pod.

# ReplicaSet

Varias réplicas de pods en ejecución.

# Etiqueta

Dar un nombre a los objetos de Kubernetes para que pueda identificarse en todo el sistema.

# Kubelet

Es un agente que se ejecuta en cada nodo y comprueba si los contenedores se ejecutan en los pods..

# Kubectl

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

# Kube-proxy

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

Kubernetes y Docker

Ahora puede que esté pensando en cómo Kubernetes es diferente a Docker. La frase Kubernetes vs. Docker puede ser engañosa.

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

Kubernetes puede programar vainas que tienen contenedores, Kubelet luego le dice a Docker que inicie o pare 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 Docker Swarm. Entonces, ¿cuál es la diferencia entre ellos??

Kubernetes contra Docker Swarm

KubernetesEnjambre Docker
La instalación es compleja.La instalación es simple
Comunidad de código abierto más grandeComunidad más pequeña en comparación con Kubernetes
Puede orquestar cientos de contenedores fácilmenteBueno para orquestar contenedores de 10-20
Kubernetes Dashboard proporciona GUISin GUI
Admite escalado automáticoNo es compatible con el autoescalado
Admite actualizaciones continuas con reversión automáticaAdmite actualizaciones continuas pero no reversión automática
Registro y monitoreo disponibles incorporadosNecesita terceros como ELK para el registro y la supervisión
Puede compartir volumen con contenedores en el mismo podPuede compartir volumen con cualquier contenedor en el clúster

Conclusión

Espero que ahora tenga una comprensión básica de lo que es Kubernetes y cómo ayuda. Si te gusta DevOps o estás pensando en entrar, te sugiero que tomes esto fantástico curso de Udemy para aprender Kubernetes.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map