Guía completa de Kubernetes: qué es

Como los contenedores se han vuelto cada vez más importantes para las empresas en todo el mundo, era necesario crear un sistema que permitiera que los contenedores escalen para satisfacer las necesidades de implementaciones a nivel empresarial. Aquí es donde entra en juego Kubernetes.

A diferencia de Docker, Kubernetes es un ecosistema muy robusto. En lugar de implementar un solo contenedor, Kubernetes te permite implementar múltiples contenedores en múltiples hosts, lo que lo hace ideal para implementaciones más grandes y equilibrio de carga.

Índice de Contenido
  1. ¿Qué es Kubernetes?
  2. ¿Por qué es importante Kubernetes?
  3. ¿A quién afecta Kubernetes?
  4. ¿Cuándo sucedió Kubernetes?
  5. ¿Cómo empiezo a usar Kubernetes?

¿Qué es Kubernetes?

Kubernetes es un sistema de código abierto que te permite ejecutar contenedores en múltiples hosts, ofreciendo efectivamente la co-ubicación de contenedores, descubrimiento de servicios y control de replicación. Fue originalmente llamado K8s y fue diseñado por Google y donado a la Cloud Native Computing Foundation.

Las principales funciones de Kubernetes son:

  • Programar, iniciar, administrar y escalar contenedores en múltiples hosts
  • Agregar una API de nivel superior para definir cómo se agrupan lógicamente los contenedores para definir grupos de contenedores y manejar el equilibrio de carga.

Sus características incluyen lo siguiente:

  • Programación automatizada: Permite implementar contenedores y servicios en momentos programados.
  • Capacidades de autorecuperación: Cuando un contenedor o pod sale de su estado deseado, Kubernetes intenta resolver automáticamente el problema.
  • Despliegue y reversión automatizados: Agrega implementación y reversión automáticas para crear una canalización de CI/CD.
  • Escalar horizontalmente y equilibrar carga: Escala tus implementaciones según sea necesario.
  • Consistencia del entorno para el desarrollo: Tus infraestructuras de prueba y producción están acopladas de forma flexible a cada componente individual y pueden actuar como una unidad separada en el clúster.
  • Implementar contenedores y controlar el control de implementación: Con este sistema complejo, puedes describir tus contenedores y/o pods y definir cuántos quieres en una única implementación. Kubernetes no solo administrará la ejecución de esos contenedores o pods (incluso en múltiples hosts), sino que también manejará la implementación de cambios (por ejemplo, actualizaciones de imágenes, cambios de variables, etc.) en tus contenedores.
  • Empaquetado óptimo de recursos: Te permite declarar recursos informáticos mínimos y máximos (CPU y memoria) para todos los contenedores.
  • Descubrimiento de servicios incorporado: Exposición automática de contenedores a Internet u otros contenedores en el clúster de Kubernetes.
  • Escalado automático: Kubernetes equilibra automáticamente el tráfico entre contenedores coincidentes.
  • Clústeres heterogéneos: Kubernetes te permite construir un clúster con una combinación de máquinas virtuales, servidores locales o metal desnudo en el centro de datos de tu empresa.
  • Soporte de almacenamiento persistente: Kubernetes cuenta con soporte para almacenamiento persistente, incluyendo Amazon Web Services EBS, Google Cloud Platform persistent disks y más. Los proveedores como Red Hat, Dell EMC y NetApp proporcionan almacenamiento persistente para Kubernetes.
  • Alta disponibilidad: Incluye características como multiprincipal y federación de clústeres, que permiten vincular clústeres para equilibrar la carga.

Kubernetes te permite hacer lo siguiente de manera fácil:

Los diferentes tipos de buses en los dispositivos electrónicos
  • Implementar aplicaciones en contenedores de forma rápida y previsible.
  • Escalar aplicaciones en contenedores sobre la marcha.
  • Implementar nuevas funciones en tus aplicaciones en contenedores sin problemas.
  • Optimizar tu hardware específicamente para tus aplicaciones en contenedores.

Kubernetes, como mínimo, puede programar y ejecutar aplicaciones en contenedores en clústeres de máquinas físicas o máquinas virtuales o una combinación de máquinas físicas y virtuales. Esto permite a los desarrolladores dejar atrás el método tradicional de trabajar con máquinas físicas y virtuales. Aunque esto se puede lograr con Docker Swarm más simple, Kubernetes permite implementar clústeres mucho más grandes, que pueden incluir contenedores y/o pods. En otras palabras, crea tus contenedores y luego despliégalos en un clúster masivo y equilibrado con Kubernetes.

Kubernetes consiste en los siguientes componentes:

  • Pods: Los contenedores se colocan en pods para que Kubernetes los administre.
  • Etiquetas y selectores: Pares clave-valor utilizados para identificar y agrupar recursos dentro de Kubernetes.
  • Controladores: Un bucle de reconciliación que lleva el estado real del clúster al estado deseado del clúster.
  • Servicios: Una forma de identificar elementos utilizados por aplicaciones (resolución de nombres, caché, etc.).
  • Plano de control de Kubernetes: La unidad de control principal del clúster que administra la carga de trabajo y dirige la comunicación en todo el sistema.
  • etcd: Almacenamiento distribuido, liviano y persistente de datos clave-valor.
  • Servidor de API: Sirve la API de Kubernetes utilizando JSON sobre HTTP.
  • Programador: Componente plug-in que selecciona en qué nodo se debe ejecutar un pod según la disponibilidad de recursos.
  • Administrador de controladores: El proceso que ejecuta los controladores de Kubernetes, como DaemonSet y Replication.
  • Kubelet: Responsable del estado en ejecución de cada nodo (inicio, detención y mantenimiento de contenedores de aplicaciones).
  • Kube-proxy: La implementación de un proxy de red y equilibrador de carga que admite la abstracción de servicio.
  • cAdvisor: Un agente que monitorea y recopila el uso de recursos.
  • Runtime de contenedor: A partir de la próxima versión 1.22, el soporte de Kubernetes para Docker será desaprobado. Una vez que esto ocurra, Kubernetes permitirá que se ejecuten tiempos de ejecución que utilizan la Interfaz de Runtime de Contenedor (CRI), como containerd.

¿Por qué es importante Kubernetes?

Los contenedores son una forma potente y flexible de implementar aplicaciones y microservicios de manera segura y confiable para expandir y ampliar los servicios de tu empresa. Cuando la necesidad va más allá de una implementación de Docker estándar o cuando necesitas implementar/administrar múltiples aplicaciones en contenedores de diferentes sistemas (como Docker), necesitas una forma de implementar y controlar esos sistemas.

Con la ayuda de Docker Swarm, puedes implementar aplicaciones en contenedores a través de un clúster, pero estás limitado a los contenedores basados ​​en Docker y a utilizar únicamente la seguridad y el registro de Docker, Inc. Con Kubernetes, esos contenedores pueden provenir de varias fuentes (Docker, Windows Server Containers, etc.), lo que hace que Kubernetes sea increíblemente flexible y significativamente más complejo.

¿A quién afecta Kubernetes?

Kubernetes afecta a cualquier empresa que necesite implementar implementaciones masivas de aplicaciones y servicios en contenedores; esto significa que cualquier persona involucrada en la implementación debe estar familiarizada con las herramientas de Kubernetes y Docker. Y considerando que Kubernetes es un sistema bastante complejo, los administradores deberán hacer una buena cantidad de investigación para implementar con éxito la tecnología.

El impacto de Kubernetes va mucho más allá de aquellos que administran el sistema: clientes, clientes, personal y consumidores... nadie está inmune al efecto de las aplicaciones en contenedores. Cuando hablamos de implementaciones empresariales, Kubernetes toma el centro del escenario.

Cómo entrar al programa de configuración del BIOS en tu computadora

Los desarrolladores también se ven afectados por Kubernetes. Hasta 2020, Kubernetes tenía más de 43,000 contribuyentes de diferentes industrias, con más de 43 ramas y más de 96,000 confirmaciones en GitHub. Kubernetes también cuenta con más desarrolladores trabajando en él que Docker Swarm, Mesos y Cloud Foundry Diego combinados.

¿Cuándo sucedió Kubernetes?

Kubernetes fue creado por Joe Beda, Brendan Burns y Craig McLuckie, a quienes pronto se unieron otros ingenieros de Google, y fue anunciado por primera vez por Google a mediados de 2014. El nombre original de Kubernetes era Seven Of Nine (del fama de Star Trek Borg). Una vez que los abogados de Google persuadieron a los desarrolladores originales para que se alejaran del nombre original, acordaron el nombre Kubernetes.

Kubernetes v1.0 fue lanzado el 21 de julio de 2015 y rápidamente se convirtió en el 0.01% superior en estrellas y en el número 1 en términos de actividad en GitHub. Eso se traduce en un desarrollo significativo en el proyecto.

A partir de diciembre de 2020, la última versión de Kubernetes es la 1.18.12, con 27 solicitudes de extracción fusionadas, 87 solicitudes de extracción abiertas, 3.3k usuarios vigilando el proyecto y 72.3k estrellas.

¿Cómo empiezo a usar Kubernetes?

Kubernetes se puede implementar en numerosas plataformas, incluyendo:

  • Google Container Engine
  • Vagrant
  • Cualquier plataforma Linux compatible, como Red Hat
  • minikube

Para obtener una lista completa de proveedores/plataformas que admiten la implementación de Kubernetes, consulta esta hoja de cálculo.

Entendiendo los permisos de archivos y directorios en UNIX

Necesitarás configurar lo siguiente:

  • Controlador de Kubernetes: Aquí es donde diriges las llamadas a la API a los servicios que controlan las actividades de los pods, controladores de replicación, servicios, nodos y otros componentes del clúster.
  • Nodo(s) de Kubernetes: Este sistema proporciona los entornos de ejecución para los contenedores.

El controlador y el nodo pueden estar en el mismo sistema, pero tradicionalmente estarán separados.

También necesitarás tus contenedores. Los contenedores más utilizados implementados por Kubernetes provienen de Docker, lo cual tiene sentido considerando que los contenedores Docker son los más utilizados en el planeta. Y aunque Kubernetes ha desaprobado el soporte para Docker, aún puedes desarrollar tus contenedores o imágenes con Docker y utilizarlos con Kubernetes.

Kubernetes debe ser instalado en el controlador y en todos los nodos. Sin embargo, recuerda que ahora que Kubernetes está a punto de desaprobar Docker, debes instalarlo con un tiempo de ejecución diferente (como containerd). Por ejemplo, en Ubuntu Server 20.04, instala Kubernetes y containerd con los siguientes pasos:

sudo apt-get update && sudo apt-get install -y apt-transport-https curl 
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 
sudo -s 
cat </etc/apt/sources.list.d/kubernetes.list 
deb http://apt.kubernetes.io/ kubernetes-xenial main 
EOF 
exit
sudo apt-get update 
sudo apt-get install kubelet kubeadm kubectl containerd -y

Recursos adicionales

  • Tutoriales de Kubernetes (Kubernetes)
  • Ebook: Guía para líderes de TI sobre cómo hacer que DevOps funcione (Newsmatic Premium)
  • 6 consejos rápidos de Docker para facilitar la administración de tus contenedores (Newsmatic)
  • Cómo instalar WordPress con Docker (Newsmatic)
  • Cómo administrar contenedores Docker desde la línea de comandos (Newsmatic)
  • Cómo instalar Docker en Fedora 25 (Newsmatic)
  • Cómo instalar y usar Portainer para facilitar la administración de contenedores Docker (Newsmatic)

Cómo recuperar una contraseña de BIOS perdida: dos métodos efectivos

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a Guía completa de Kubernetes: qué es , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.