Teniendo en cuenta este párrafo sobre kubernetes, ¿qué es la capa de almacenamiento del plano de control de Kubernetes?
El nodo maestro de Kubernetes se encarga del plano de control de Kubernetes del clúster, gestionando su carga de trabajo y dirigiendo la comunicación en todo el sistema. El plano de control de Kubernetes consta de varios componentes, cada uno con su propio proceso, que pueden ejecutarse tanto en un único nodo maestro como en varios maestros que soporten clústeres de alta disponibilidad Los distintos componentes del plano de control de Kubernetes son los siguientes:

etcd es un almacén de datos clave-valor persistente, ligero y distribuido que ha desarrollado CoreOS. Almacena de forma fiable los datos de configuración del clúster, representando el estado general del clúster en un momento dado. etcd favorece la consistencia frente a la disponibilidad en caso de partición de la red (véase el teorema CAP). La consistencia es crucial para programar y operar correctamente los servicios.
El servidor API sirve a la API de Kubernetes utilizando JSON sobre HTTP, que proporciona la interfaz interna y externa a Kubernetes El servidor API procesa y valida las solicitudes REST y actualiza el estado de los objetos API en etcd, permitiendo así a los clientes configurar cargas de trabajo y contenedores en los nodos trabajadores El servidor API utiliza la API de vigilancia de etcd para supervisar el clúster, desplegar cambios de configuración críticos o restaurar cualquier divergencia del estado del clúster a lo que declaró el desplegador. Por ejemplo, el desplegador puede especificar que deben ejecutarse tres instancias de un "pod" concreto (ver más abajo). etcd almacena este dato. Si el controlador de despliegue comprueba que sólo se están ejecutando dos instancias (en conflicto con la declaración de etcd), programa la creación de una instancia adicional de ese pod.
El programador es el componente extensible que selecciona en qué nodo se ejecuta un pod no programado (la entidad básica gestionada por el programador), en función de la disponibilidad de recursos. El programador realiza un seguimiento del uso de recursos en cada nodo para garantizar que la carga de trabajo no se programe por encima de los recursos disponibles. Para ello, el programador debe conocer los requisitos de recursos, la disponibilidad de recursos y otras restricciones o directivas políticas proporcionadas por el usuario, como la calidad del servicio, los requisitos de afinidad frente a antiafinidad y la localidad de los datos. El papel del programador es hacer coincidir la "oferta" de recursos con la "demanda" de cargas de trabajo.
Un controlador es un bucle de reconciliación que dirige el estado real del clúster hacia el estado deseado, comunicándose con el servidor API para crear, actualizar y eliminar los recursos que gestiona (por ejemplo, pods o puntos finales de servicio) Un tipo de controlador es un Controlador de Replicación, que gestiona la replicación y el escalado ejecutando un número determinado de copias de un pod en todo el clúster. También se encarga de crear pods de sustitución si falla el nodo subyacente. Otros controladores que forman parte del núcleo del sistema Kubernetes son un Controlador DaemonSet para ejecutar exactamente un pod en cada máquina (o en algún subconjunto de máquinas), y un Controlador de Trabajos para ejecutar pods que se ejecutan hasta su finalización (por ejemplo, como parte de un trabajo por lotes). Los selectores de etiquetas que forman parte de la definición del controlador especifican el conjunto de pods que gestiona un controlador.
El gestor de controladores es un proceso que gestiona un conjunto de controladores del núcleo de Kubernetes.
ETCD