Un clúster general de Kubernetes (también escrito como K8) consta de un plano de control nodos y al menos un nodo trabajador .
Este tutorial lo guía a través de la arquitectura de Kubernetes y los componentes del plano de control y del nodo de trabajo. Explica la arquitectura y características como api-server , programador , etc. y administrador de control . En los nodos trabajadores, cubrimos detalles sobre kubectl , kubelet y proxy kube .
Arquitectura de Kubernetes
Imagen de kubernetes.io
En el diagrama anterior, podemos ver que el plano de control toma algunas decisiones globales, como la programación, y mantiene los detalles del clúster en un almacén de datos (etcd). También responde a los eventos del clúster, incluido el mantenimiento de las réplicas como se menciona en las implementaciones.
Componentes del plano de control
Entonces, ¿qué es un plano de control de Kubernetes?
En palabras simples y llanas, el plano de control es un tomador de decisiones global para el clúster, lo que significa que controla la programación. También es responsable de mantener el comportamiento general del clúster. Las aplicaciones en contenedores se programan en los nodos trabajadores en función de la memoria asignada por implementación. También responde a los eventos del clúster. Por ejemplo, el plano de control inicia/finaliza nuevos pods cuando no se cumplen los valores del conjunto de réplicas. Podemos decir que el plano de control de Kubernetes es el cerebro del clúster que toma decisiones lógicas.
[A los lectores también les gustó: Convertir una implementación de Kubernetes en un servicio de Knative]
El plano de control tiene los siguientes componentes:
Servidor API (también conocido como kube-apiserver)
El servidor API es la interfaz de Kubernetes que expone la API de Kubernetes. También valida y configura datos para los objetos de API, incluidos pods, servicios, implementaciones, controladores de replicación y otros. El servidor API da servicio a las operaciones REST y proporciona la interfaz para el estado compartido del clúster a través del cual interactúan todos los demás componentes.
etcd (almacén de datos)
El almacén de datos etcd es el backend de Kubernetes, que contiene la información del clúster en pares clave-valor. En Kubernetes, existe un concepto de estado deseado y estado actual . Kubernetes usa etcd para monitorear estos dos estados. Si divergen, Kubernetes realiza cambios para conciliar el estado real y el estado deseado. Esto se supervisa utilizando el almacén de datos distribuidos etcd.
planificador de Kube
El kube-scheduler es un componente del plano de control que asigna principalmente los pods no programados al nodo relevante en función de su uso de memoria. El uso de la memoria y las restricciones de hardware/software se tienen en cuenta al configurar un nodo para determinados factores de la aplicación, como las políticas de red.
administrador de control de Kube
El kube-control-manager es un componente del plano de control que ejecuta el proceso de control. En general, un proceso de control es un ciclo que se enfoca en hacer que el estado deseado sea igual al estado actual para cualquier aplicación en cualquier instancia de tiempo.
Componentes del nodo trabajador
¿Qué es un nodo trabajador?
Un nodo trabajador ejecuta las aplicaciones en contenedores e informa continuamente al servidor de API del plano de control. sobre su salud.
Tiene los siguientes componentes:
kubelet
El kubelet es un agente que se ejecuta en cada nodo en un clúster de Kubernetes, lo que garantiza que los contenedores dentro de los pods estén funcionando y en buen estado. Habla continuamente con la API de Kubernetes para transmitir la información de salud de los pods.
proxy-kube
El kube-proxy es un proxy de red que se ejecuta en cada nodo de un clúster de Kubernetes. Mantiene las reglas de red en todos los nodos, lo que permite una comunicación fluida entre los elementos del módulo tanto dentro como fuera del clúster.
Tiempo de ejecución del contenedor
Es un software que se encarga de ejecutar contenedores dentro de los nodos del clúster. Los ejemplos incluyen CRI-O, containerd, Docker, etc.
[ Obtenga este libro electrónico gratuito:Administrar sus clústeres de Kubernetes para principiantes. ]
¿Qué sigue?
En esta publicación de dos blogs, he cubierto la arquitectura de Kubernetes y sus componentes. Hice un esfuerzo humilde y sencillo para explicar las máquinas virtuales, los conceptos de contenedores y la arquitectura de clúster básica de Kubernetes.
[ Las diferencias entre Kubernetes y OpenShift se pueden encontrar en este nuevo libro electrónico. ]
Referencias:Componentes de Kubernetes