Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En DevOps Última actualización: 24 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

¿Oye hablar mucho de Kubernetes pero no está seguro de lo que son?

¿Qué es Kubernetes?

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

Kubernetes GeekFlare

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

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

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

Con Google Cloud Platform (GCP), puede poner en marcha Kubernetes con sólo unos clics. Es compatible con otros proveedores de nubes, también como AWS y Azure. Y, hay múltiples plataformas Kubernetes gestionadas disponibles.

¿Por qué Kubernetes?

Antes, la lucha entre desarrolladores y probadores era algo habitual.

Los entornos solían ser diferentes para ellos; lo que funcionaba en el sistema del desarrollador no funcionaba en el de los probadores.

Ahora que la mayoría de las organizaciones utilizan contenedores, los problemas que aparecían debido a las diferencias en el entorno ya no se producen.

Pero organizar y ejecutar varios contenedores tampoco es una tarea fácil. Cuando se trabaja con aplicaciones dinámicas, ampliar o reducir el número de contenedores es algo habitual. Realizar estas tareas manualmente puede resultar complejo y arriesgado. De ahí que se necesite una herramienta de orquestación de contenedores, y por eso se necesita Kubernetes.

Características de Kubernetes

Hay muchas, pero las siguientes son algunas de las mejores.

# Empaquetado automático de contenedores

Kubernetes empaqueta su aplicación y coloca automáticamente los contenedores en función de sus necesidades y de 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.

# Solicitud 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í mismo creando también un nuevo contenedor en lugar del que se ha estrellado. En caso de que su nodo falle, los contenedores que se estén ejecutando en ese nodo se iniciarán en otro nodo en ejecución del clúster.

# Escalado horizontal

Puede escalar sus aplicaciones hacia arriba y hacia abajo rápidamente con un simple comando. El comando simple puede ejecutarse en la CLI o a través del panel de control de Kubernetes. El autoescalado también es posible, basándose en el uso de la CPU, sus contenedores se escalarían automáticamente hacia arriba o hacia abajo.

# Rollback y Rollout automáticos

Cada vez que se produce una actualización en su aplicación, Kubernetes despliega progresivamente estos cambios y actualizaciones en la aplicación o en sus configuraciones. No todas las instancias se actualizan al mismo tiempo, garantizando así una alta disponibilidad. Si algo va mal, Kubernetes deshará los cambios inmediatamente.

Aprenda a instalar y configurar Kubernetes.

Terminología de Kubernetes

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

Vaina #

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

# Servicio

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

# Espacio de nombres

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

# Nodo

Máquina trabajadora de Kubernetes.

# Clúster

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

# Anotación

Etiqueta para almacenar los datos requeridos por los recursos.

# Volumen

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

# ReplicaSet

Varias réplicas de vainas en ejecución.

# Etiqueta

Dar un nombre a los objetos Kubernetes para que puedan ser identificados 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.

# Kube-proxy

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

Kubernetes y 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 SO, librerías y aplicaciones dentro de un contenedor. Permítame decirle que Docker hace lo mismo que Kubernetes. Pero cuando se trabaja sólo con Docker, todo es manual. Tiene que iniciar y detener los contenedores manualmente. Pero con Kubernetes, todo se automatiza.

Kubernetes puede programar pods que tengan contenedores, Kubelet entonces le dice a Docker que inicie o detenga los contenedores. Kubelet en Kubernetes se encarga de monitorizar esos contenedores y recopilar su información en el nodo maestro. Así pues, la diferencia básica es que en lugar de que los administradores le digan a Docker lo que tiene que hacer, en Kubernetes todo está automatizado.

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

Kubernetes frente a Docker Swarm

KubernetesEnjambre Docker
La instalación es complejaLa instalación es sencilla
Mayor comunidad de código abiertoComunidad más pequeña en comparación con Kubernetes
Puede solicitar fácilmente 100 contenedoresBueno para orquestar 10-20 contenedores
Kubernetes Dashboard proporciona GUISin GUI
Admite autoescaladoNo soporta auto-escalado
Soporta rolling updates con rollback automáticoSoporta rolling updates pero no rollback automático
Registro y supervisión incorporadosNecesita terceros como ELK para el registro y la supervisión
Puede compartir volumen con contenedores del mismo podPuede compartir volumen con cualquier contenedor del clúster

Conclusión

Espero que ahora tenga una comprensión básica de lo que es Kubernetes y cómo ayudar. Si usted en DevOps o pensando en entrar en, entonces yo sugeriría tomar este fantástico curso Udemy para aprender Kubernetes.

  • Avi
    Autor
    Avi es un entusiasta de la tecnología con experiencia en tecnologías de tendencia como DevOps, Cloud Computing, Big Data y muchas más. Le apasiona aprender tecnologías de vanguardia y compartir sus conocimientos con los demás a través de... Seguir leyendo
Gracias a nuestros patrocinadores
Más lecturas sobre DevOps
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder