Teorica 11 (Containers & Kubernetes) Flashcards

Containers & Kubernetes (36 cards)

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
Deployment
Construye sobre el ReplicaSet Permite manejar Updates y Rollbacks Crea identificadores automáticos con cada update para los replicaSets y sus Pods
26
Servicios
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
Blue Green Deployments
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
Networking General en kubernetes
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
Comunicacion entre containers - mismo pod
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
Comunicacion entre containers - mismo nodo
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
Comunicacion entre pods - distinto nodo
cada pod sale con su ip y se comunica con cualquier otro pod usando la ip de ese pod
32
comunicacion entre pods - overlay networking
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
comunicacion pod - service
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
trafico externo a un servicio (ingreso)
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
Istio
agrega una capa de management y observabilidad para kubernetes
36
kiali
herramienta de visualizacion integrada con istio