Bryan Aranda
Jesus Martinez
Amigo, eres un capo!!, esas notas de notion las puedes poner publicas?
Maxi Mou
Dato no menor, según tengo entendido la cantidad de nodos maestro debe ser impares, ya que usan un sistema de mayoría
La orquestación de contenedores con Kubernetes representa uno de los avances más significativos en la gestión de aplicaciones modernas. Su arquitectura robusta y elegante permite a las empresas desplegar soluciones escalables y tolerantes a fallos en entornos de producción reales. A continuación, exploraremos en detalle los componentes que hacen de Kubernetes una herramienta tan poderosa y versátil para el despliegue de aplicaciones en la nube.
¿Cómo está estructurada la arquitectura de Kubernetes?
La arquitectura de Kubernetes se basa fundamentalmente en servidores organizados en dos categorías principales: nodos maestro y nodos worker. Esta estructura jerárquica permite una clara separación de responsabilidades dentro del cluster.
Los nodos maestro albergan lo que se conoce como el "control plane", el cerebro operativo de Kubernetes. Para entornos de producción, se recomienda contar con más de un servidor en esta capa para garantizar alta disponibilidad y resiliencia ante fallos. En entornos de desarrollo más pequeños, un solo nodo maestro puede ser suficiente.
Por otro lado, los nodos worker (también llamados slaves) son los encargados de gestionar las cargas de cómputo. La cantidad de nodos worker varía según el volumen de aplicaciones en ejecución y los requerimientos de recursos del sistema.
¿Cuáles son los componentes clave del control plane?
Al examinar a fondo los nodos maestro, encontramos varios componentes esenciales que conforman el control plane:
API Server: Es el punto de entrada para toda comunicación dentro del cluster. Cuando ejecutas un comando como kubectl get pods, este llega al API Server, que se comunica con otros componentes para proporcionar la respuesta adecuada.
etcd: Esta base de datos llave-valor de alta concurrencia registra cada cambio realizado, asegurando que el cluster siempre mantenga actualizado su estado deseado. Funciona como la "memoria" persistente de Kubernetes.
Controller Manager: No es un solo controlador, sino un conjunto de ellos que monitorean diferentes aspectos del cluster:
Scheduler: Decide en qué nodo se ejecutará cada pod, basándose en los recursos requeridos (CPU, memoria, GPU) y los recursos disponibles en cada nodo worker.
¿Qué componentes encontramos en los nodos worker?
Los nodos worker contienen componentes igualmente importantes:
Kubelet: Este agente se ejecuta en cada nodo worker y se comunica con el API Server para garantizar que los contenedores funcionen correctamente. Si detecta errores, informa para que se tomen acciones correctivas.
kube-proxy: Gestiona la capa de red del cluster, facilitando la comunicación entre pods y con el exterior.
Container Runtime Interface (CRI): Es el encargado de ejecutar los contenedores dentro del nodo. Aunque anteriormente se utilizaba Docker por defecto, las versiones más recientes de Kubernetes han migrado a containerd.
¿Cómo se organizan las cargas de trabajo en Kubernetes?
Kubernetes utiliza conceptos importantes para organizar y gestionar las cargas de trabajo de manera eficiente:
¿Qué son los namespaces y cuál es su función?
Los namespaces proporcionan una separación lógica de recursos dentro del cluster. Esta organización depende del caso de uso específico de cada empresa:
Dentro de estos namespaces viven los pods, que son la unidad fundamental de Kubernetes. Un pod puede contener uno o múltiples contenedores, dependiendo de las necesidades específicas.
¿Cómo gestionan los services la comunicación en Kubernetes?
Los services son componentes que aceptan tráfico y lo redirigen a grupos específicos de pods. Existen diferentes tipos:
NodePort: Utilizado principalmente en entornos de desarrollo, expone un puerto específico en cada nodo worker para permitir comunicación externa hacia los pods. No se recomienda para entornos productivos.
ClusterIP: Permite comunicación interna dentro del cluster mediante una IP específica. Facilita el balanceo de carga entre pods asociados a una misma aplicación.
LoadBalancer: Al trabajar con Kubernetes en la nube, este tipo de servicio crea automáticamente un balanceador de carga en el proveedor de servicios cloud, garantizando un tráfico más escalable y resiliente.
ExternalName: Altamente recomendado para entornos productivos, permite mapear un nombre público (como una base de datos RDS en AWS) a un nombre privado dentro del cluster. Optimiza los tiempos de comunicación entre servicios internos y externos.
¿Cómo funciona el flujo de una aplicación en Kubernetes?
El despliegue de una aplicación en Kubernetes sigue un proceso bien definido:
Este proceso completo permite que Kubernetes actúe como un verdadero director de orquesta, coordinando todos los elementos para que nuestra aplicación funcione de manera óptima, escalable y resistente a fallos.
La arquitectura de Kubernetes representa una solución elegante para los desafíos de la computación moderna, permitiendo despliegues resilientes y escalables sin importar la complejidad de la aplicación. ¿Has implementado Kubernetes en tu organización? ¿Qué otros aspectos de su arquitectura te gustaría explorar? Comparte tu experiencia en los comentarios.
Bryan Aranda
Jesus Martinez
Amigo, eres un capo!!, esas notas de notion las puedes poner publicas?
Maxi Mou
Dato no menor, según tengo entendido la cantidad de nodos maestro debe ser impares, ya que usan un sistema de mayoría
Cesar Medrano
Es la segunda clase que empieza a hablarte de como funciona algo que aun no sabes de que está compuesto. Este curso parece que no tiene ninguna estructura. Imposible de seguir, los alumnos tienen que estar poniendo en los comentarios por que las explicaciones no son utiles.
Luis Boivar
Kubernetes no es sencillo, no esperes entender todo al comienzo, va ir tomando sentido, no te desanimes.
No concuerdo con que no este estructurado, si lo esta, y me hace mucho sentido la clase.
La frustracion es normal, paciencia, todo tendra sentido en algun momento jajaja aunque no parezca.
Santiago Marulanda Molina
Si, la verdad deja un sin sabor este curso solo con iniciarlo
Dannier Leonides Galicia Chinchilla
Increíble que aprendas mas en comentarios que en la clase
Luis Suarez
siento que la explicación no es clara y además no tiene similitud a cualquier sistema existente y estoy de acuerdo hay muchas inexactitudes esto tiene una cara mas de un sistema serveles pero esta muy mal explicado y no siento que sea adecuado iniciar con esto ya que si es alguien que no conoce estará super perdido si no conociera los despliegues por CDK no sabría nada de lo que esta hablando
Bryan Aranda
Coincido, pienso que la explicación no es clara o buena precisamente. En especial hoy en día que la IA te explica con lujo de detalle, no comprendo muy bien el valor que pueden aportar lecciones en video como esta, si la calidad no es tan buena.
PIERO SMITH BARZOLA PARRA
Que relacion existe entre kubernetes y docker
Luis Boivar
una app puede ser un microservicio en go (CRUD) con una bdd y un redis.
docker, empaqueta todo esto (app, redis, db) y puedes jugar con mas configuraciones, como variables de entorno.
Kubernetes: crea un pod de tu docker (container), el pod puede tener varios contenedores.
Kubernetes configura cuantas instancias de este pod quiere tener siempre vivo, ejemplo que siempre existan 2 pods de tu app vivos (muy comun), esto da escalabilidad horizontal y mucha resilencia.
Leonardo Beroes
Este pana e sun crack, 3 clases y me esta pareciendo fascinante todo. El tiempo necesario para explicar los fundamentos hasta ahora
Carlos G
Recuerden que este curso es para Nivel Intermedio, por tal razón es necesario conocer la terminología anterior en temas como contenedores, bases de datos, pod, redes. Veo con la ruta de orquestación e infraestructura, y me parece que el curso está bien explicado. Como todo en la vida toca profundizar con lecturas y otros recursos para afianzar mejor la clase.
Ivan Sabido
un video que puede ayudar a reforzar lo explicado en este video
Yosuad David Castillo Valdes
En Kubernetes, hay varios tipos de servicios que permiten la comunicación entre los pods y el exterior. Aquí un resumen de los principales:
NodePort: Expone un puerto en cada nodo worker para permitir el acceso externo a un grupo de pods. Es útil en entornos de prueba.
ClusterIP: Permite la comunicación interna dentro del clúster, utilizando una dirección IP específica para acceder a un grupo de pods.
LoadBalancer: En entornos de nube, crea automáticamente un balanceador de carga, optimizando el tráfico hacia los pods.
ExternalName: Mapea un nombre externo a un servicio dentro del clúster, facilitando la resolución de nombres.
Estos servicios son esenciales para la correcta orquestación y acceso a aplicaciones en Kubernetes.
Jhonatan Estiven Becerra Pedrozo
Sí, cada POD dentro de un namespace es una instancia de tu aplicación corriendo. Los pods son la unidad básica de despliegue en Kubernetes y pueden contener uno o más contenedores que ejecutan tu aplicación. El uso de namespaces permite organizar y gestionar estos pods de manera lógica, facilitando la separación de recursos y la gestión del entorno de tu aplicación.
Miguel Angel Reyes Moreno
Un pequeño resumen:
Kubernetes está compuesto de servidores. Hay 2 tipos:
Los nodos master tienen por dentro:
Los nodos worker tienen por dentro:
Container Runtime Interface (CRI): es quien corre los contenedores. NO es Kubernetes quien hace esto.
Services: Acepta y redirige el tráfico a un grupo de pods.
Jorge Marquez Robinson
aqui link de utilidad
max anthony cachi ayala
Recomiendo antes de empezar la ruta de dev/ops si eres dev y tienes curiosidad al igual que yo en aprender docker k8s k3s, te ayuda bastante primero LEER LA DOCUMENTACIÓN oficial. Porqué? para que? POR EL CONTEXTO y no te pierdas en al teoría del profe
Diego Araya
Como todos mencionan, esta es una clase muy cargada de teoria, la cual quizas con ejemplos mas "practicos y/o visuales" se podria haber entendido mucho mejor. Pero como una pincelada (pensando en que todos estos "temas" se estaran tocando a lo largo del curso) pues esta bien, simplemente es algo muy cargado de teoria para abordarlo todo en una clase.
PIERO SMITH BARZOLA PARRA
En que componente se despliega los microservicios dentro de kubernetes
jose taveras
en los pods, estos contienen los contenedores que contienen tu microservicios
Yosuad David Castillo Valdes
Un clúster de Kubernetes está compuesto por varios nodos. Hay dos tipos de nodos: el nodo maestro, que controla el clúster, y los nodos worker, que ejecutan las aplicaciones. El nodo maestro gestiona el control plane, mientras que los nodos worker son responsables de ejecutar los pods donde corren las aplicaciones. La combinación de varios nodos permite que el clúster sea escalable y tolerante a fallos, asegurando alta disponibilidad en entornos productivos.
Adonis Arias Holguin
Un "Service" en Kubernetes actúa como un punto de acceso a un conjunto de Pods, como un director de orquesta que gestiona la comunicación entre los músicos (Pods) y el público (usuarios). Imagina un restaurante donde los camareros (Services) recogen los pedidos (tráfico) de los comensales (usuarios) y los llevan a la cocina (Pods) para que se preparen. Así, el Service asegura que los pedidos lleguen correctamente y que los comensales siempre tengan acceso a su comida, incluso si algunos músicos (Pods) cambian o fallan. Esto permite una experiencia fluida y organizada.
Christian Portilla
Se podria cambiar el containerd por otro motor de ejecucion de docker images ?
John Carlos Espitia Rivera
Si, puedes usar podman o cri-o
Edwar Baron
Team PlatziSi, containerd es solo una de las opciones de CRI disponibles, kubernetes puede usar cualquier runtimes compatible.
EXPLICACIÓN QUE TE PERMITE ENTENDER TODO (LO PROMETO) (20 MIN DE LECTURA)