Teorica 11 (Containers & Kubernetes) Flashcards
Containers & Kubernetes
Que son los containers
permiten que cada aplicacion se ejecute en un entorno propio separado del resto de las aplicaciones que estan en el SO
Que problemas resuelven los containers
Crean un entorno completo que permite la construccion de un paquete para que luego se pueda ejecutar en otro ambiente (deploy & run)
deploy&run sin tener que preocuparse por las dependencias
Se suele usar Docker
Workflow de containers
por un lado hay un entorno (un docker) donde vos haces el build y generas la imagen del container
Una vez que lo construis lo subis a un registry (para distribuirlo)
Despues el que lo quiera lo baja del registry y lo corre
Dockerfile
lo que define la forma en la que se va a construir la imagen de docker
Nomeclatura - container
Container: proceso y ambiente que utilizan la imagen para ejecutar
Nomeclatura - image registry y container runtime
Container Runtime: el que ejecuta el container
Image Registry: repositorio de imagenes
Nomeclatura - image e imageBuilder
image: paquete que incluye todo lo necesario para ejecutar un proceso
imageBuilder: el que genera la imagen
Image layers de los containers
la imagen se construye por capas
el file system que se crea se llama overlay file system
cada capa tiene como dependencia su capa inferior
Todo lo que se escribe durante la ejecucion va a una Layer efimera que se borra al terminar el container
Para que no se pierda es necesario usar un Volume
ejemplo de image layers
python app 1
custom python libs
python 3.8.15
Ubuntu 22.04
(si cambia unicamente la capa app se bajaria solo esa capa)
cual es el registry mas usado
Docker hub es el mas usado y el default (a donde va a ir a buscar las imagenes)
CGroups
control group
restringen el uso del CPU y memoria
Se genera un CGroup de CPU y otro de memoria por container
Se le asigna una cuota a cada CGroup. El container puede usar como maximo esa cantidad de recursos
Namespaces
Generan un entorno acotado para los procesos que corren en el (osea no deberia ver otros procesos que no sean del container)
Siempre hay un namespace default
tipos de namespaces
○ pid - Se asignan pids distintos dentro del NS
○ user - usuarios propios del NS ( root dentro del
container != root dentro del host )
○ uts - hostname que ve el container
○ ipc - interprocess communication
○ mnt - ve su propio FS que es el overlay
○ net - ve su propio stack de red e interfaces
que son Capabilites en los containers
Son los permisos de bajo nivel que tiene cada usuario
El usuario root tmb tiene capabilities (CAP_SYS_ADMIN o CAP_NET_ADMIN)
Algunas capabilities estan limitadas para usuarios dentro de los containers por motivos de seguridad
seccomp_bpf
Maneras de controlar la system calls que puede ejecutar el proceso
Docker bloquea varias system calls peligrosas ( por
ejemplo reboot )