Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

Repaso de contenedores e introducci贸n a k8s

2/33
Recursos
Transcripci贸n

Los contenedores no son un first class citizen del kernel de Linux, un contenedor no es una entidad previamente definida. Es un concepto abstracto conformado por diferentes tecnolog铆as que se potencian las unas a las otras y trabajando en conjunto componen esta tecnolog铆a.

  • Cgroups o Control Groups: Son los que permiten que un contenedor o proceso tenga aislado los recursos como memoria, I/O, Disco y m谩s. Limitan los recursos del SO
  • Namespaces: Permiten aislar el proceso para que viva en un sandbox y no pueda haber otros recursos de SO o contenedores.
    鈥 Mount Namespaces: Permite que nuestro proceso tenga una visibilidad reducida de los directorios donde trabaja.
    鈥 Networking Namespaces: Permite que cada contenedor tenga su stack de red.
    鈥 PID.
  • Chroot: Cambia el root directory de un proceso.

Aportes 20

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Contenedor: no es una entidad. Son distintas tecnologias que trabajando en conjunto crean un contenedor.

Las 3 tecnologias son:

CGroups: Asignan a cada contenedor/proceso los recursos va a utilizar (memoria, disco, cpu). Limitan el uso de recursos del sistema operativo para cada contenedor.

Chroot: Nos permite que nuestro proceso/container tenga visibilidad sobre archivos donde tiene que trabajar y no acceder a otros recursos del sistema.

Namespaces: (son 7, aqui los mas importantes):

  • Mount: Nos permite que nuestro proceso tenga una visibilidad reducida de los directorios. Esto permite que dos contenedores que trabajen sobre un sistema de archivos no se interfieran entre si.

  • Networking: Permite que cada contenedor tenga su direcci贸n IP, su tabla de rutas, su interfaz de red, y que no interfiera con otros contenedores.
    Concepto de POD: Entidad atomica scheduleable - Entidad sobre la cual kubernetes va a ejecutar los contenedores. (se ver谩 en detalle m谩s adelante).

  • PID o de proceso: si ejecutamos un ps cuando ejecutamos nuestro contenedor, vamos a ver que nuestro contenedor es el process id 1 y no vemos todo el resto de los procesos del SO. Esto es posible gracias al namespace de procesos. (se ver谩 en detalle m谩s adelante).

Kubernetes
Desde el principio, Kubernetes fue dise帽ado para ser un entorno para la creaci贸n de aplicaciones distribuidas de contenedores. El objetivo principal de Kubernetes es un sistema para la construcci贸n, el funcionamiento y la gesti贸n de sistemas distribuidos.

Adem谩s se basa en la experiencia de muchos a帽os de Google trabajando con los contenedores de Linux. Es, en cierto modo, una r茅plica de lo que Google ha estado haciendo durante mucho tiempo, pero, esta vez, adaptado a Dockers, entonces aporta esa experiencia en la forma de organizar y desplegar una aplicaci贸n en contenedores.

Otra buena caracter铆stica de Kubernetes es que se puede configurar el controlador para mantener activos el mismo n煤mero de contenedores, es decir, si por alg煤n motivo se detuviese alg煤n contenedor, se crear谩 un nuevo contenedor con una copia casi exacta, del 99%.

Y por 煤ltimo (que no quiero decir que no tenga m谩s caracter铆sticas) es el escalado ya sea 鈥渉acia arriba鈥 o 鈥渉acia abajo鈥; con Kubernetes es f谩cil, solo se tiene que especificar la cantidad de nuevas aplicaciones y si quieres hacia arriba o hacia abajo a trav茅s de un comando.

en cuanto a Docker Swarm, es la herramienta nativa para el cluster de Docker. Con Docker Swarm tenemos lo que llamaremos Swarm Master que ser谩 el responsable del cluster, tambi茅n tendremos nodos que debe ser accesible por el Master y cada uno de ellos contendr谩 uno o varios contenedores.

Al contrario que Kubernetes, Swarm es un 鈥渆sfuerzo鈥 por parte de Docker para extender la API de Docker existente para hacer que un conjunto de m谩quinas se vean como una sola API de Docker.

Para los que no se conforman con "I dont鈥 care how if it works"
Como funciona docker internamente

Que bueno, esperaba mucho este curso, me encanto el primero que dio hace rato.

Una correci贸n a los slides del profe. A diferencia de las virtual machines, los contenedores se ejecutan sobre un docker engine y no sobre un hypervisor.

Hola compa帽[email protected],

Yo en documentaciones pasadas he leido que una imagen se compone de capas y la base de esta pila de capas es el SO que puede ser debian,Centos,etc.

Porque esto no fue considerado en la planilla?

Dejo imagen de referencia.!

no carga el video, a alguno le pasa lo mismo ?

repasando 馃槂

驴Qu茅 significa Kubernetes? 驴Qu茅 significa K8S?
El nombre Kubernetes proviene del griego y significa timonel o piloto. Es la ra铆z de gobernador y de cibern茅tica. K8s es una abrevaci贸n que se obtiene al reemplazar las ocho letras 鈥ubernete鈥 con el n煤mero 8.

Excelente profesor 馃槂

Namespaces: Aislan los componentes del sistema dentro de un contenedor.
Cgroups: Administran esos contenedores, cuanto de RAM se le ir谩 a cada uno por ejemplo.
Chroot: Aisla los archivos.

  • contenedores=namespace+cgroup+chroot+鈥
    • namespace: vista de recursos de SO (sandbox, aislar).
    • Cgroup: limitan y miden los recursos del SO.
    • Chroot: cambian el root directory de un proceso.

Es bueno realizar una aclaraci贸n a la 煤ltima imagen que nos comparte Marcos. La capa de Hypervisor en el 谩mbito de Containers mas bien deberia de ser el daemon de Docker.

Esta comparacion de las VM con contenedores es errada. En el caso de las VM, el hypervisor va justo encima de la arquitectura mientras que los contenedores no utilizan hypervisors. Les dejo un enlace a un recurso muy bueno donde aprender sobre ello. https://www.youtube.com/watch?v=L1ie8negCjc

Los contenedores cuanto procesamiento pueden ejecutar?

Exelente forma de explicar!

Entendido, vamos a seguir aprendiendo鈥

Super 馃槂 vamos por uno m谩s

repaso

Excelente resumen de K8s