Teorica 11 (Containers & Kubernetes) Flashcards

Containers & Kubernetes

1
Q

Que son los containers

A

permiten que cada aplicacion se ejecute en un entorno propio separado del resto de las aplicaciones que estan en el SO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que problemas resuelven los containers

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Workflow de containers

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dockerfile

A

lo que define la forma en la que se va a construir la imagen de docker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nomeclatura - container

A

Container: proceso y ambiente que utilizan la imagen para ejecutar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Nomeclatura - image registry y container runtime

A

Container Runtime: el que ejecuta el container

Image Registry: repositorio de imagenes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nomeclatura - image e imageBuilder

A

image: paquete que incluye todo lo necesario para ejecutar un proceso

imageBuilder: el que genera la imagen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Image layers de los containers

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

ejemplo de image layers

A

python app 1
custom python libs
python 3.8.15
Ubuntu 22.04

(si cambia unicamente la capa app se bajaria solo esa capa)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

cual es el registry mas usado

A

Docker hub es el mas usado y el default (a donde va a ir a buscar las imagenes)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

CGroups

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Namespaces

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

tipos de namespaces

A

○ 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

que son Capabilites en los containers

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

seccomp_bpf

A

Maneras de controlar la system calls que puede ejecutar el proceso

Docker bloquea varias system calls peligrosas ( por
ejemplo reboot )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

pivot_root

A

Cambia el root del filesystem a un subdirectorio del host para ese container (para que el filesystem vea el / en donde esta la imagen)

17
Q

Kubernetes

A

“Capitan de barco” en griego

Orquestador de containers

Algo que me administra una gran cantidad de containers de forma bastante automatica

yo tengo por un lado un registry y por otro una cierta configuracion que quiero que tenga un grupo de hosts que corran una serie de containers. Kubernetes en el medio intenta hacer que esta configuracion se respete en el grupo de containers

18
Q

Funcionalidades principales de kubernetes

A

Rollback & rollout: Instalar algo nuevo o volver a una version anterior

Service Discovery: Configurar las relaciones entre servicios por nombres (como un dns)

Service Load Balancing: balancear pedidos entre servicios

Storage Orchestration: montar volumenes

Self Healing: reiniciar containers caidos, health checks, etc

Horizontal Scaling: Escala automatica o manual en containers

Manejo de config y secretos: guardar de forma segura la configuracion e info sensible

19
Q

Conceptos principales de kubernetes

A

Cluster: deployment completo de ckubernetes

Nodo: donde se corren los pods

Pod: la unidad minima de ejecucion puede tener uno o mas container. Es como un container intermedio

Service: la manera de acceder a los podes que implementan algun servicio particular

20
Q

Componentes de kubernetes

A

Api server: Interfaz por la que se ejecutan los comandos sobre el cluster

kubectl: interfaz de configuracion y admin de kubernetes. ejecuta los comandos llamando a la api

Controllers (controller manager, scheduler, kubelet): Ejecutan un loop donde checkean el estado de la config, el estado real del sistema , ejecutan acciones para que converjan

etcd: Base de datos key value con config distribuida redundante

Kubeproxy: manejo del networking del nodo en base a la config de iptables

21
Q

Definicion de objetos en kubernetes

A

se definen en archivos Manifest con formato YAML

parametros:
- apiVersion de kubernetes
- kind: tipo de objeto
-metadata

22
Q

Labels kubernetes

A

Key Values que identifican, describen y agrupan un grupo de objetos

La idea es que apliquen a muchos objetos

Parte de la metadata

23
Q

Selectors kubernetes

A

Se usan los labels para especificar a que objetos aplican los comandos u otros objetos

24
Q

Replica set

A

Manejo de replicas en los pods

Su mision es asegurar que siempre exista el numero requerido de pods de cadatipo

25
Q

Deployment

A

Construye sobre el ReplicaSet

Permite manejar Updates y Rollbacks

Crea identificadores automáticos con cada update
para los replicaSets y sus Pods

26
Q

Servicios

A

Forma de acceder a los pods
Recursos permanentes
Balancea los pedidos entre los pods
IPs estaticas del cluster
Nombres de servicio resuelto por DNS

27
Q

Blue Green Deployments

A

Tener en paralelo dos deployments activos con distintos labels

Defino un servicio que apunte a uno u otro

Pueden ser versiones Actual y nueva o variantes que estoy probando

28
Q

Networking General en kubernetes

A

Todos los containers dentro de un pod se pueden comunicar libremente

Cualquier pod puede comunicarse con cualquier otro sin NAT

Todos los nodos pueden comunicarse con todos los pods sin NAT y viceversa

La ip en que se ve un Pod es la misma que ven todos los otros Pods

Todos los pods comparten un unico namespace de networking

Se comunican por localhost del namespace que comparten

Para un servicio se asigna una IP fija del cluster independientemente del estado de los pods

29
Q

Comunicacion entre containers - mismo pod

A

tiene su propio stack de networking

Se comunican por localhost

El localhost de los containers del pod no ve los otros containers en el mismo nodo, ya q no comparten namespace

30
Q

Comunicacion entre containers - mismo nodo

A

cada pod tiene su eth0 con su ip en la red de los pods

los eth0 se conectan al root namespace con una veth en ese namespace

un virtual bridge dentro del root conecta los veth del nodo con los eth0 de cada pod

en resumen, se comunican mediante ips

31
Q

Comunicacion entre pods - distinto nodo

A

cada pod sale con su ip y se comunica con cualquier otro pod usando la ip de ese pod

32
Q

comunicacion entre pods - overlay networking

A

Red de containers de distintos hosts

encapsulamiento de paquetes (parecido a vpn pero layer 2)

antes de la interfaz de salida (osea antes del eth0 del root namespace) se agrega una interfaz que se encarga de encapsular el trafico saliente del nodo y de rutear hacia la otra interfaz

33
Q

comunicacion pod - service

A

como el overlay, antes de la interfaz de salida agregas una interfaz llamada IPTables

IPTables elige un pod al azar de los que estan asociados al servicio y cambia la IP de destino al paquete

34
Q

trafico externo a un servicio (ingreso)

A

el load balancer balancea entre nodos y lo deriva a alguno

la IPTables balancea entre pods que tienen el servicio por lo que podria llegar a derivarlo a otro nodo

35
Q

Istio

A

agrega una capa de management y observabilidad para kubernetes

36
Q

kiali

A

herramienta de visualizacion integrada con istio