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 23

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 “hacia arriba” o “hacia 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 “esfuerzo” 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

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.

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

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.

¿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.

Hola compañer@s,

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 ?

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

repasando 😃

Excelente profesor 😃

¿Que significa k8s?
k8s es una manera de decir kubernetes o kubernets en ingles

Primer clase, y ya tengo ganas de hacerla presencial. Los menos de 10 minutos quedan un poco chicos para todo el material.
Profe sos un crack… cuando sea grande quiero ser como vos XD

Info de CGroupsm para limitar recursos de contenedores

  • 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.

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