jueves, 6 de junio de 2019

Kubernetes (parte 1)

¿Que es?
Kubernetes es una plataforma de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores. El proyecto está amparado por la Cloud Native Computing Foundation

Entiende los conceptos básicos
Kubernetes en cluster se compone de tres elementos.  
El Master de Kubernetes es un conjunto de tres procesos que se ejecutan en un único nodo del clúster, que se denomina nodo master. 
Estos procesos son: 
  • kube-apiserver, 
  • kube-controller-manager 
  • y kube-scheduler.
En Kubernetes se utilizan objetos objetos de la API de Kubernetes para describir el estado deseado del clúster: qué aplicaciones u otras cargas de trabajo se quieren ejecutar, qué imagenes de contendores usan, el número de replicas, qué red y qué recursos de almacenamiento quieres que tengan disponibles, etc. Se especifica el estado deseado del clúster mediante la creación de objetos usando la API de Kubernetes, típicamente mediante la interfaz de línea de comandos, kubectl. También se puede usar la API de Kubernetes directamente para interactuar con el clúster y especificar o modificar tu estado deseado.

Una vez que se especifica el estado deseado, el Plano de Control de Kubernetes realizará las acciones necesarias para que el estado actual del clúster coincida con el estado deseado. Para ello, Kubernetes realiza diferentes tareas de forma automática, como pueden ser: parar o arrancar contenedores, escalar el número de réplicas de una aplicación dada, etc. El Plano de Control de Kubernetes consiste en un grupo de procesos que corren en tu clúster:

El Master de Kubernetes es un conjunto de tres procesos que se ejecutan en un único nodo del clúster, que se denomina nodo master. Estos procesos son: kube-apiserver, kube-controller-manager y kube-scheduler.

Los restantes nodos no master contenidos en tu clúster, ejecutan los siguientes dos procesos:
kubelet, el cual se comunica con el Master de Kubernetes.
kube-proxy, un proxy de red que implementa los servicios de red de Kubernetes en cada nodo.

Objetos de Kubernetes
Kubernetes tiene diferentes abstracciones que representan el estado de tu sistema: aplicaciones contenerizadas desplegadas y cargas de trabajo, sus recursos de red y almacenamiento asociados e información adicional acerca de lo que el clúster está haciendo en un momento dado. Estas abstracciones están representadas por objetos de la API de Kubernetes. Puedes revisar Entendiendo los Objetos de Kubernetes para obtener más detalles.

Los objetos básicos de Kubernetes incluyen:
  •     Pod
  •     Service
  •     Volume
  •     Namespace

Además, Kubernetes contiene abstracciónes de nivel superior llamadas Controladores. Los Controladores se basan en los objetos básicos y proporcionan funcionalidades adicionales sobre ellos. Incluyen:
  •     ReplicaSet
  •     Deployment
  •     StatefulSet
  •     DaemonSet
  •     Job

No hay comentarios.: