KUBERNETES PARA PRINCIPIANTES (Explicado Facil, desde Cero)

KUBERNETES PARA PRINCIPIANTES (Explicado Facil, desde Cero)

¿Qué es Kubernetes y para qué sirve?

Introducción a Kubernetes

  • Alexia, la presentadora, introduce el tema de Kubernetes y su relevancia en el mundo actual de la tecnología.
  • Se mencionan términos relacionados como OpenShift, imágenes de contenedor, pods y escalado automático, preparando al espectador para una explicación más profunda.

Contexto del uso de contenedores

  • Se aclara que el mundo de los contenedores y orquestadores es vasto; este video es solo un punto de partida.
  • Se plantea un escenario donde una empresa pequeña utiliza una máquina virtual para alojar su sitio web y base de datos.

Problemas con las máquinas virtuales

  • Las máquinas virtuales emulan sistemas operativos completos, lo que puede llevar a recursos ociosos y problemas de seguridad.
  • La dependencia de versiones específicas de software puede complicar las actualizaciones del sistema operativo sin afectar la aplicación.

Ventajas del uso de contenedores

  • Los contenedores (como Docker) no reemplazan completamente a las máquinas virtuales; ofrecen aislamiento entre aplicaciones y el sistema operativo.
  • Al usar contenedores, se pueden actualizar sistemas operativos sin afectar a las aplicaciones contenidas dentro.

Introducción a Kubernetes

  • Kubernetes permite gestionar múltiples contenedores eficientemente en nodos diferentes, optimizando el uso de recursos.
  • Si un nodo necesita mantenimiento o actualización, otros nodos pueden seguir funcionando para garantizar la disponibilidad continua.

Importancia del uptime

  • Se discute la necesidad crítica del uptime en aplicaciones productivas; se menciona SLA (Service Level Agreement).
  • Aunque se busca minimizar el downtime programado, siempre habrá necesidad de mantenimiento regular.

Orquestación con Kubernetes

  • Con Kubernetes, se pueden distribuir cargas entre varios nodos mientras se realizan actualizaciones sin interrumpir el servicio.

¿Cómo funciona Kubernetes y sus ventajas?

Ventajas de Kubernetes en la infraestructura

  • Kubernetes permite actualizar toda la infraestructura sin interrumpir el servicio a los usuarios, facilitando un rollout que regenera el pod con la nueva versión de la aplicación.
  • Ofrece políticas de escalamiento horizontal como pod autoscaling y node autoscaling, ajustando automáticamente la cantidad de pods o nodos según la demanda.

Consideraciones sobre infraestructuras

  • En configuraciones on-premise, el node autoscaling puede no ser relevante; es más útil en servicios de infraestructura como servicio (IaaS).
  • Al utilizar Kubernetes en la nube, se pueden escalar nodos automáticamente según las necesidades, lo que implica costos variables dependiendo del uso.

Métodos de escalamiento

  • Además del escalamiento horizontal, existe el escalamiento vertical que consiste en aumentar los recursos (RAM y CPU) de los nodos existentes en lugar de agregar nuevos nodos.

Anatomía del clúster de Kubernetes

Estructura básica del clúster

  • Un clúster está compuesto por nodos; cada nodo contiene pods y dentro de cada pod hay contenedores donde se ejecutan las aplicaciones.
  • Existen diferentes configuraciones para un clúster: desde un nodo Master con varios workers hasta configuraciones más pequeñas como k3s.

Componentes del nodo Master

  • El control plane incluye componentes clave: apiserver (interacción con el clúster), scheduler (gestiona órdenes sobre los pods), controller (mantiene el estado deseado), y etcd (base de datos para almacenar datos).

Funciones del nodo Worker

¿Cómo funciona Kubernetes y sus componentes?

Introducción a los Pods y su Funcionamiento

  • Se menciona que cada pod en Kubernetes tiene una IP asignada, lo que permite la comunicación entre los pods. El agente Cubl escucha al nodo maestro para crear pods y reportar su estado.
  • El comando kubectl es fundamental para interactuar con Kubernetes. Un pod es la unidad más pequeña dentro de Kubernetes, generalmente conteniendo un solo contenedor.
  • La diferencia clave entre un pod y un contenedor es que el pod tiene una IP asignada, mientras que el contenedor no. Kubernetes solo puede lanzar pods, no contenedores directamente.

Características de los Pods

  • Los pods son efímeros; van y vienen como las células del cuerpo humano. Reiniciar un pod implica eliminarlo y crear uno nuevo para mantener la cantidad deseada de pods activos.
  • Para asegurar que siempre haya una cantidad específica de pods funcionando, se utiliza un objeto llamado ReplicaSet (RCA set), que reinicia automáticamente los pods fallidos.

Casos de Uso y Limitaciones de Kubernetes

  • Antes de implementar un clúster en Kubernetes, se discuten situaciones donde usarlo podría ser excesivo debido a su complejidad y consumo de recursos.
  • Para aplicaciones estáticas o simples, como las utilizadas por el presentador, puede ser más eficiente utilizar contenedores o máquinas virtuales sin necesidad de orquestación compleja.

Alternativas a Kubernetes

  • Se menciona OpenShift como una alternativa a Kubernetes con mayor seguridad y soporte empresarial. Sin embargo, ambas plataformas funcionan sobre la misma base tecnológica: Kubernetes.
  • Empresas grandes como Google, Tesla y Netflix utilizan Kubernetes para aplicaciones críticas debido a su capacidad para manejar cargas pesadas eficientemente.

Conclusiones sobre el Uso Práctico

  • Aunque aprender sobre Kubernetes es valioso, no todas las aplicaciones requieren su uso; algunas pueden funcionar adecuadamente en entornos más simples como Docker Engine.
  • Se enfatiza la importancia de escalar aplicaciones según demanda utilizando herramientas adecuadas; esto hace que Kubernetes sea útil en ciertos contextos pero no necesariamente en todos.

Instalación Rápida de Kubernetes

Configuración y Uso de Kubernetes con Helm

Configuración Inicial de Kubernetes

  • Se utiliza el comando ctl config view para configurar la salida en un archivo llamado config en el directorio home, permitiendo personalizar la configuración de K3s.
  • Se establece una variable de entorno export kubeconfig=config k3s, lo que permite a los comandos de Kubernetes acceder a esta configuración.
  • Al ejecutar kubectl get nodes, se verifica que el nodo está correctamente configurado y se identifica como "Master".

Introducción a Helm

  • Se menciona la importancia de Helm como herramienta complementaria al trabajar con Kubernetes, facilitando la gestión de aplicaciones.
  • El proceso para descargar Helm incluye acceder a una dirección específica y descomprimir el archivo descargado utilizando tar.

Instalación y Configuración de Helm

  • Después de descomprimir, se realiza un cambio en los permisos del binario usando chmod para permitir su ejecución por todos los usuarios.
  • Se ejecuta el comando sudo mv helm /usr/local/bin/ para mover el binario a un directorio accesible globalmente.

Funcionalidades Clave de Helm

  • Helm es fundamental para instalar charts, agregar repositorios y desplegar aplicaciones dentro del entorno Kubernetes.
Video description

En este video te cuento todo sobre este maravilloso orquestador, desde cero, para que puedas comenzar a desplegar aplicaciones y a administrar tus propios clusters!! Explicado de manera sencilla y repasando todo. Tambien levantamos un pequeño cluster para que puedan aprender como instalar kubernetes y empezar a utilizarlo. Quedense hasta el final!! Instalar k3s (Lightweight Kubernetes): curl -fsL https://get.k3s.io | bash - instalar helm (amd64, Linux) https://github.com/helm/helm/releases Ver catalogo de aplicaciones y charts: https://artifacthub.io Highlights: 2:47 : Container vs Maquina virtual 5:58 : Pod deployment, escalamiento horizontal, pod y node autoscaling 7:57 : Diagrama, cluster, nodo, pod, container, aplicacion 9:35 : anatomia de los nodos master y worker, sus componentes 19:35 : Instalacion facil de kubernetes paso a paso ¿Qué es Kubernetes? ¿Para qué sirve kubernetes? ¿Para que cosas no sirve kubernetes? ¿Que es OpenShift? ¿Que diferencias hay entre pod y container? ¿Como reinicio un pod? ¿Qué es un plano de control? ¿Qué es k3s? Es lo mismo minikube que kubernetes? Qué significa k8s es lo mismo que kubernetes? Como aprender kubernetes rápido Todas estas preguntas las respondo en el video y más! Espero que les guste. No olviden dejarme sus impresiones en los comentarios y suscribirse al canal!! ¡Muchas gracias!! Unite al canal!! https://www.youtube.com/channel/UCzrFWz6KrJy-VOz6D7EoT4w/join Mis redes: Github: https://github.com/alexiarstein Discord: https://discord.gg/kzCnHW923Q Twitter: https://twitter.com/alexiarsteinn Instagram: https://instagram.com/lachicadesistemas Blog: https://lexi.lat Twitch: https://twitch.tv/lachicadesistemas Fediverso: https://floss.social/@alexia