meta data de esta página

Kubernetes

Kubernetes lo podemos definir como un orquestador de contenedores (container). Es decir nos va a permitir gestionar contenedores en una o varias máquinas.

Un container contiene exclusivamente los servicios necesarios para que la aplicación que se empaqueta pueda correr sin ningún problema y se pueda replicar de acuerdo a nuestras necesidades.

Alguna de las ventajas de usar kubernetes son:

  • Escalabilidad
  • Tolerancia a fallos
  • Balanceo de carga
  • Gestión de Volúmenes

Conceptos

Componentes de Kubernetes

Estructura física
  • Nodos
  • Master.
Estructura Lógica
  • POD → Un Pod es el objeto más pequeño y la unidad básica desplegable en Kubernetes. Un pod tiene la función de encapsular uno o varios container
  • Volumes
  • Namespace
  • Label/LabelSelector
  • Controladores

Controladores en Kubernetes

  • ReplicationController
  • ReplicaSet
  • Deployments
  • DaemonSet
  • StatefulSet
  • Jobs
  • CronJobs

ReplicatoinController

  • Garantiza la ejecución de un número determinado de POD’s.
  • Similar a un supervisor.
  • Sobrevive a disrupción.

ReplicaSet

  • Similar al ReplicationController
  • Admite labelSet.
  • No se recomienda.
  • Se puede usar en HPA.

Deployments

  • Proporciona actualizaciones declarativas para POD’s y ReplicaSets.
  • Permite crear/eliminar conjuntos de réplicas
  • No se debe administrar ReplicaSets de un Deployment, todos los casos de uso deben ser cubiertos manipulando el Deployment

DaemonSet

  • Garantiza un POD en cada nodo.
  • Garbage collector.
  • Eliminar un DaemonSet eliminará los PODs creados.
  • En un DaemonSet no se definen ReplicaSets ya que automáticamente va a desplegarlo en cada nodo de nuestro cluster.
  • El DaemonSet se usa mucha para desplegar pods de monitorización en cada nodo de un cluster

StatefulSet

  • Administra aplicaciones con estado.
  • Proporciona garantías sobre el orden y la exclusividad de los PODs.
  • A diferencia de un Deployment, mantiene una identidad adhesiva para cada POD.

Jobs

  • Asegura que X POD acaben correctamente.
  • Permite ejecutar modulos en paralelo.
  • Hasta no tener un % de éxito no se considera acabado el Job.

CronJobs

  • Ejecuta jobs en el tiempo.
  • Una vez en el tiempo / repetidamente una vez en el tiempo.
  • Se escribe en formato cron.

Referencias