Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

¿Cómo funciona la arquitectura de red de Kubernetes?

4/33

Lectura

¡Un saludo, Platzinauta!👋🏻

¡Ups! De momento esta clase no está disponible en nuestra plataforma, pero sí la tenemos en YouTube.

Para no interrumpir tu aprendizaje te dejamos el video y link para que puedas verla en YouTube.

Link a YouTube

Pronto estará disponible en Platzi como el resto de clases.

Gracias por tu comprensión y nunca pares de aprender. 💚

Aportes 22

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Arquitectura de K8s

Nodo Master

  1. API Server: A lo que todo se conecta, los agentes, el CLI, el dashboard etc. Cuando se cae un nodo master es lo que se pierde. Se usa el algoritmo de ruft para algoritmo de elección.
  2. Scheduler: Cuando se deben crear un job, un pod en máquinas específicas, el scheduler se encarga de asignar las tareas y administrar los flujos de trabajos, revisando siempre las restricciones y los recursos disponibles.
  3. Controller Manager: Es un proceso que está en un ciclo de reconciliación constante buscando llegar al estado deseado con base al modelo declarativo con el que se le dan instrucciones a K8s.
    ++Tipos de controller manager: ++
  • Replica manager
  • Deployment manager
  • Service manager
  1. Etcd: Key value store que permite que el cluster este altamente disponible.

Componentes muy importantes que viven en los nodos:

  1. Kubelet: Agente de kubernetes, se conecta con el control play y le pregunta que recursos (pods, contenedores) debo correr al scheduler via API Server. Monitorea los pods constantemente para saber si están vivos, los recursos disponibles etc y le comunica constantemente al scheduler via API Server.
  2. Kube-proxy: Se encarga de balancear el tráfico que corre en nuestros contenedores/servicios. Una vez llega una request se encarga de decidir a que pod y contenedor debe de ir.

Nodos == Minions

Todos los nodos y masters están conectados a una red física para poder hablarsen entre sí.

Le comparto el Comic de Google que explica lo que es Kubernetes:
https://cloud.google.com/kubernetes-engine/kubernetes-comic/

Un link por si están interesados en el algoritmo de consenso Raft.

Pelador Nerd también da una explicación brutal sobre lo que son contenedores y su arquitectura:
Link del vídeo

Me guataría compartieran las imagenes que salen en el video.

Pods are the smallest, most basic deployable objects in Kubernetes. A Pod represents a single instance of a running process in your cluster. Pods contain one or more containers, such as Docker containers. When a Pod runs multiple containers, the containers are managed as a single entity and share the Pod’s resources.

Entendido. Máster y minions.

  • Arquitectura K8s

Recomendacion, ver un par de veces esta clase, contiene mucha informacion de la cual se debe investigar mas por cuenta propia, muy buena base para empezar.

Yo tengo un background de BigData a nivel de infraestructura/arquitectura y al final un cluster de kubernetes tiene muchos de los servicios que se utilizan para la creación de un cluster de BigData. Porque al final no dejan de ser clusters.

Muy bien explicado en el video

Aquí también hay un poco mas de información: https://dzone.com/articles/how-kubernetes-works

Un nodo master ejecuta los siguientes procesos:

**etcd: **Etcd es una base de datos de tipo (clave, valor) que se utiliza para mantener la configuración global del clúster. La información contenida en etcd es crítica y debe tenerse siempre un plan de copias de seguridad.

** kube-apiserver: **los nodos master exponen una API que es usada para los nodos minion y los clientes del clúster para comunicarse.
kube-scheduler: es el componente de Kubernetes encargado de decidir en qué nodo se ejecuta un determinado contenedor.
**kube-controller-manager: **es el encargado de ejecutar los distintos controladores. Un “controlador” es el encargado de asegurar que en todo momento se cumple el estado deseado de la aplicación y del clúster (p. ej. que en todo momento haya 5 instancias de un contenedor determinado).

repasando 😃

Me sorprende que en pleno año 2021 le sigan llamando Master al nodo principal. incluso github ya crea las primeras ramas como main.

Pronto estará disponible en Platzi como el resto de clases…

Les comparto este blog que he estado leyendo sobre Kubernetes, tiene los conceptos super bien explicados. Al final vienen links a artículos sobre pods, deployments, replicaSets y otros.

Desplegando una aplicación en kubernetes

Bueno el ejemplo de los nodos de trabajo como con los minions

Minions == Nodos

Buena clase explicativa 😃 gracias

Excelente explicación, si quieren profundizar un poco mas, en la documentación oficial de Kubernates en la sección de Documentation/Concepts/Overview/Kubernetes Components viene un explicacion en detalle de cada elemento mencionado por Marcos Lilljedahl.

Les comparto el link de la documentación: K8s

Saludos!!

Excelente clase para conocer la arquitectura de K8s “The future of infrastructure”!!!

kube-scheduler
Si el cluster requiere de nuevos clústeres el kube-scheduler se encarga de programar en Kubernetes la generación de los mismos.

Para ello se debe tener en cuenta los recursos que se necesita en un pod, como CPU o memoria, junto con el estado del clúster. Luego se programa el pod en un nodo informático adecuado.

kube-controller-manager
Los controladores son los que realmente ejecutan el clúster. El kube-controller-manager contiene varias funciones de este tipo en una. El controlador realiza una consulta al programador y se asegura de que se esté ejecutando la cantidad correcta de pods. Si uno de ellos se cae, otro controlador lo percibe y responde al problema. Un controlador conecta los servicios a los pods, de manera que las solicitudes van a los extremos correctos. Además, hay algunos que permiten crear cuentas y tokens de acceso a las API.

etcd
Los datos de configuración y la información sobre el estado del clúster se alojan en la etcd, una base de datos de almacenamiento de valor clave. Esta base de datos distribuida y con tolerancia a los fallos está diseñada para ser la principal fuente de información del clúster.

Nodos
Un clúster de Kubernetes necesita al menos un nodo, pero suele tener varios. Los pods se programan y organizan para ejecutarse en ellos.

Pods
El pod es la unidad más pequeña y sencilla del modelo de objetos de Kubernetes. Representa una instancia única de una aplicación. Cada pod contiene un contenedor o una serie de contenedores con conexión directa, y las opciones que controlan su funcionamiento. Los pods pueden conectarse a un almacenamiento permanente para ejecutar aplicaciones con estado.

Motor de tiempo de ejecución de contenedores (Container runtime engine)
Cada nodo posee un motor de tiempo de ejecución de contenedores que posibilita su funcionamiento. Docker es un ejemplo, aunque Kubernetes también admite otros tiempos de ejecución que cumplen con la Open Container Initiative, como rkt y CRI-O.

kubelet
Todos los nodos contienen un kubelet, es decir, una aplicación muy pequeña que se comunica con el plano de control. El kubelet garantiza que sus contenedores se ejecuten en un pod. Cuando el plano de control necesita que algo suceda en un nodo, la kubelet ejecuta la acción.

kube-proxy
Los nodos también contienen un kube-proxy, es decir, un proxy de red que facilita los servicios de red de Kubernetes. El kube-proxy administra las comunicaciones de red dentro y fuera del clúster. Para ello, confía en la capa de filtrado de paquetes de su sistema operativo o reenvía el tráfico por cuenta propia.

Almacenamiento permanente (Persistant storage)
Kubernetes además de gestionar los contenedores que ejecutan una aplicación, también puede administrar los datos que esta genera y que están adjuntos a un clúster. Esta tecnología permite que los usuarios soliciten recursos de almacenamiento sin necesidad de conocer los detalles de la infraestructura subyacente. Los volúmenes permanentes son específicos de un clúster y no de un pod, así que duran más que este último.

Registro de contenedores (Container registry)
Las imágenes de contenedores en las que se basa Kubernetes se almacenan en un registro de contenedores, el cual puede configurarlo usted o pertenecerle a un tercero.

Infraestructura subyacente (Underlying infrastructure)
Al tener toda una infraestructura se puede ejecutar Kubernetes en servidores sin sistema operativo, máquinas virtuales, proveedores de nube pública, nubes privadas o entornos de nube híbrida. Una de las principales ventajas de Kubernetes es que funciona en muchos tipos de infraestructura.