Tancàvem la lliçó anterior amb el mapa de peces del clúster: apiserver, etcd, scheduler, controladors, kubelet. Aquestes són les peces que executen Kubernetes. Ara toca l'altre vocabulari, el que tu escriuràs cada dia: pods, Deployments, Services, ConfigMaps, PVCs, namespaces. És un vocabulari gran i la temptació és aprendre'l com un diccionari, terme a terme, cosa que és una mala idea: els conceptes de Kubernetes no són independents, formen famílies amb relacions jeràrquiques clares. Aquesta lliçó et dona aquest mapa mental complet, de manera que quan al mòdul 5 aparegui un PersistentVolumeClaim ja sàpigues per endavant on encaixa i amb qui parla. No desenvoluparem l'ús pràctic de cada objecte —cadascun té la seva lliçó pròpia— sinó que els col·locarem al mapa.
Contingut
- La base: recurs, objecte i API
- Clúster i node
- El pod: la unitat mínima
- La família de càrregues de treball
- La família de xarxa
- La família de configuració
- La família d'emmagatzematge
- Organització: namespaces, etiquetes, selectors i anotacions
- Controladors, operadors i CRDs
- Taula mestra de conceptes
- La base: recurs, objecte i API
Abans dels noms concrets, tres termes que es confonen constantment:
| Terme | Definició | Exemple |
|---|---|---|
| Recurs (resource) | Un tipus d'entitat que l'API sap gestionar, amb el seu endpoint | pods, deployments, services |
| Objecte (object) | Una instància concreta d'un recurs, desada a etcd | El pod anomenat api-reserves-7d9f a rutas-norte-dev |
| Manifest (manifest) | El fitxer YAML que descriu l'objecte que vols | k8s/base/api-reserves.yaml |
I la regla que governa tot el sistema, que ja vam veure a l'arquitectura:
spec: el que tu vols. L'escrius tu.status: el que realment hi ha. L'escriu el clúster.
Tot el que existeix a Kubernetes —una aplicació, una IP virtual, una contrasenya, un disc, un permís— és un objecte amb spec i status emmagatzemat a la mateixa API. Aquesta uniformitat és el que fa que una sola ordre, kubectl get, serveixi per a tot. El detall de l'anatomia d'un objecte el treballarem a Objectes, Manifests YAML i el Model Declaratiu.
- Clúster i node
- Clúster: el conjunt complet. Un pla de control més un grup de nodes que es presenten com un únic sistema. Quan dius "desplego al clúster", estàs dient "lliuro la meva intenció a l'API i que el sistema decideixi on".
- Node (node): una màquina —física o virtual— que executa càrregues. És també un objecte de l'API:
kubectl get nodest'ho demostra. Té capacitat (CPU, memòria, pods màxims), etiquetes (zona, tipus de disc) i condicions (Ready,MemoryPressure).
Rutas Norte farà servir un clúster de pràctiques d'un sol node (minikube) durant el curs, i parlarem de clústers multinode quan arribem a la planificació (mòdul 6) i a l'alta disponibilitat (mòdul 9).
- El pod: la unitat mínima
Aquest és el concepte fundacional, i el que més sorprèn venint de Docker.
Kubernetes no executa contenidors: executa pods. Un pod és un grup d'un o més contenidors que comparteixen xarxa i emmagatzematge i es programen sempre junts al mateix node.
Què comparteixen els contenidors d'un mateix pod:
- Una única IP. Es veuen entre ells per
localhosti no poden fer servir el mateix port. - Els volums declarats al pod.
- El cicle de vida: neixen junts, moren junts, es mouen junts.
En la immensa majoria dels casos —i en gairebé tots els de Rutas Norte— un pod conté un sol contenidor. Els pods multicontenidor es reserven per a patrons concrets (sidecar, init container, adaptador) que s'estudien al mòdul 6.
Dues propietats del pod que cal interioritzar des del primer dia:
- És efímer. Un pod no es "repara" ni es mou: si el seu node cau, aquell pod es dona per perdut i se'n crea un altre de nou, amb un altre nom i una altra IP. No depenguis mai del nom ni de la IP d'un pod.
- Rarament es crea a mà. Un pod solt no té qui el ressusciti. Llevat de proves puntuals, sempre es crea a través d'un controlador de càrrega de treball. A la lliçó El Projecte del Curs en crearàs un de solt justament per experimentar aquesta fragilitat en primera persona.
Fragment mínim, només per veure'n la forma:
apiVersion: v1
kind: Pod
metadata:
name: api-reserves
spec:
containers:
- name: api
image: registry.rutasnorte.example/api-reserves:2.4.0
- La família de càrregues de treball
Tots aquests objectes tenen el mateix propòsit: crear i mantenir pods. Es diferencien en com i quan.
4.1. La jerarquia essencial
flowchart TD
D["Deployment<br/>gestiona versions"] --> RS["ReplicaSet<br/>garanteix N rèpliques"]
RS --> P1["Pod"]
RS --> P2["Pod"]
RS --> P3["Pod"]
P1 --> C1["contenidor"]
P2 --> C2["contenidor"]
P3 --> C3["contenidor"]
Llegeix-ho així, de baix a dalt:
- El contenidor executa el teu procés.
- El pod embolcalla un o diversos contenidors i és la unitat que es programa en un node.
- El ReplicaSet vigila que hi hagi exactament N pods iguals; si en falta un, el crea.
- El Deployment gestiona ReplicaSets per poder canviar de versió de manera progressiva: crea un ReplicaSet nou amb la imatge nova i va reduint el vell.
Per això tu escrius Deployments, gairebé mai ReplicaSets ni Pods. El ReplicaSet existeix, el veuràs amb kubectl get rs, però és un intermediari que el Deployment gestiona per tu.
4.2. Les sis càrregues de treball
| Objecte | Per a què serveix | Tret distintiu | A Rutas Norte |
|---|---|---|---|
| Deployment | Aplicacions sense estat, amb rèpliques intercanviables | Actualització progressiva i rollback | botiga-web, api-reserves, worker-notificacions |
| ReplicaSet | Mantenir N còpies idèntiques | El gestiona el Deployment; no s'escriu a mà | Creat automàticament pels anteriors |
| StatefulSet | Aplicacions amb estat i identitat estable | Noms fixos (-0, -1), disc propi per rèplica, arrencada ordenada |
postgres-reserves |
| DaemonSet | Una còpia a cada node | S'ajusta sol en afegir o treure nodes | Agents de logs i mètriques (mòdul 7) |
| Job | Tasca que s'executa fins a completar-se | Acaba; pot reintentar i paral·lelitzar | Migracions d'esquema de la base de dades |
| CronJob | Job llançat segons un horari | Sintaxi cron | informes-ocupacio, nocturn |
La pregunta clau per triar és sempre la mateixa: les meves rèpliques són intercanviables? Si qualsevol pot atendre qualsevol petició i no desen res al disc, és un Deployment. Si cada rèplica té identitat i dades pròpies, és un StatefulSet.
- La família de xarxa
Els pods són efímers i les seves IP canvien. La família de xarxa existeix per donar estabilitat i accessibilitat damunt d'aquest caos.
- Service: una IP virtual i un nom DNS estables que reparteixen trànsit entre un conjunt de pods, triats per etiquetes. És la peça que fa possible que
botiga-webcridiapi-reservespel seu nom sense conèixer cap IP. Tipus principals:ClusterIP(intern, l'habitual),NodePortiLoadBalancer(exposició externa), iExternalName. - Ingress: regles HTTP/HTTPS que encaminen per domini i ruta cap a Services diferents, amb terminació TLS. És el que permetrà publicar
www.rutasnorte.exampleiapi.rutasnorte.examplesobre una única IP pública. Un Ingress no fa res per si sol: necessita un Ingress Controller instal·lat al clúster (NGINX, Traefik…). - NetworkPolicy: tallafoc a nivell de pod. Per defecte, a Kubernetes tots els pods poden parlar amb tots. Una NetworkPolicy ho restringeix: per exemple, que només
api-reserveses pugui connectar apostgres-reserves. Atès que aquesta base de dades desa dades personals, per a Rutas Norte no és opcional. - EndpointSlice: la llista, mantinguda automàticament, de les IP de pods sans que hi ha darrere d'un Service. No s'escriu a mà, però és el primer que es mira quan un Service "no arriba enlloc".
flowchart LR
U["Usuari<br/>www.rutasnorte.example"] --> ING["Ingress"]
ING --> SVC1["Service<br/>botiga-web"]
ING --> SVC2["Service<br/>api-reserves"]
SVC1 --> PA["Pod botiga-web"]
SVC1 --> PB["Pod botiga-web"]
SVC2 --> PC["Pod api-reserves"]
SVC2 --> PD["Pod api-reserves"]
PC --> SVC3["Service<br/>postgres-reserves"]
PD --> SVC3
SVC3 --> PG["Pod postgres-reserves"]
- La família de configuració
La regla d'or: la imatge conté el codi; mai la configuració ni les credencials. La mateixa imatge api-reserves:2.4.0 ha de poder executar-se a rutas-norte-dev i a rutas-norte-pro sense reconstruir-se.
| Objecte | Contingut | Com arriba al contenidor | Advertiment |
|---|---|---|---|
| ConfigMap | Configuració no sensible: URLs, mides de memòria cau, fitxers .conf |
Variables d'entorn o fitxer muntat | No xifra res; no hi posis contrasenyes |
| Secret | Dades sensibles: contrasenyes, tokens, certificats TLS | Igual que el ConfigMap | Va codificat en base64, que no és xifratge; requereix RBAC i xifratge en repòs |
| ServiceAccount | Identitat d'un pod davant de l'API de Kubernetes | Token muntat automàticament | Diferent de la identitat d'una persona |
Un detall que evita molts malentesos: base64 és codificació, no protecció. Qualsevol amb permís de lectura sobre Secrets els pot descodificar en un segon. La protecció real ve de RBAC (mòdul 8) i del xifratge en repòs d'etcd.
Relacionats amb aquesta família hi ha els límits de recursos (requests i limits de CPU i memòria), les ResourceQuota per namespace i els LimitRange, que s'estudien al mòdul 3 i determinen la classe de qualitat de servei (QoS) del pod.
- La família d'emmagatzematge
El sistema de fitxers d'un contenidor és efímer: en reiniciar-se, es perd. Per a postgres-reserves això és inacceptable, així que existeix aquesta família.
| Objecte | Què és | Analogia |
|---|---|---|
| Volume | Directori muntat al pod, definit dins del mateix pod | Un directori compartit; molts tipus moren amb el pod (emptyDir) |
| PersistentVolume (PV) | Una peça d'emmagatzematge real del clúster, amb vida independent del pod | El disc físic disponible |
| PersistentVolumeClaim (PVC) | La petició d'un usuari: "vull 20 GiB en mode lectura-escriptura" | El val que bescanvies per un disc |
| StorageClass | El "tipus" d'emmagatzematge i com s'aprovisiona automàticament | El catàleg: ssd-rapid, hdd-barat |
El flux normal, que veuràs al mòdul 5, és: declares un PVC al teu manifest → la StorageClass aprovisiona dinàmicament un PV real → el PVC queda vinculat a ell → el pod munta aquest PVC com un volum. Tu, com a desenvolupador, gairebé sempre escrius només el PVC.
La separació PV/PVC respon a un repartiment de responsabilitats: l'administrador del clúster gestiona l'oferta (PV i StorageClass), el desenvolupador expressa la demanda (PVC), i cap dels dos no necessita saber els detalls de l'altre.
- Organització: namespaces, etiquetes, selectors i anotacions
Amb 40 objectes, el clúster es torna inmanejable sense organització. Kubernetes ofereix dos eixos complementaris.
8.1. Namespace: divisió dura
Un namespace és una partició lògica del clúster. Rutas Norte en farà servir tres: rutas-norte-dev, rutas-norte-pre i rutas-norte-pro.
Què et dona un namespace:
- Unicitat de noms: pot haver-hi un Service
api-reservesa cadascun sense conflicte. - Àmbit de RBAC: "aquest equip pot desplegar a dev però només llegir a pro".
- Àmbit de quotes: límits de CPU i memòria per entorn.
- DNS: un servei es resol com
api-reserves.rutas-norte-dev.svc.cluster.local.
Què no et dona: aïllament de xarxa (per a això, NetworkPolicy) ni aïllament de nodes. A més, alguns objectes són d'àmbit de clúster i no viuen en cap namespace: Node, PersistentVolume, StorageClass, ClusterRole, el mateix Namespace.
8.2. Etiquetes i selectors: la divisió tova
Una etiqueta (label) és un parell clau-valor enganxat a un objecte. Un selector és una consulta sobre etiquetes. Aquest parell és el mecanisme d'acoblament de tot Kubernetes: un Service no coneix els seus pods pel nom, els troba per etiqueta. El mateix fa un ReplicaSet amb les seves rèpliques.
Convencions que Rutas Norte farà servir a tots els objectes:
metadata:
labels:
app: api-reserves # el component
app.kubernetes.io/part-of: rutas-norte # la plataforma
entorn: dev # l'entornI el selector corresponent en un Service:
Les anotacions (annotations) són també parells clau-valor, però amb un propòsit oposat: no es poden seleccionar. Serveixen per adjuntar metadades que consumeixen eines: la configuració d'un Ingress Controller, el commit de Git que va originar el desplegament, un identificador de certificat. Regla mnemotècnica: si hi filtraràs, etiqueta; si és informació per a una eina o per a un humà, anotació.
- Controladors, operadors i CRDs
Aquests tres tanquen el mapa i són la porta a la part avançada del curs.
- Controlador: un procés que executa el bucle de reconciliació de la lliçó anterior sobre un tipus d'objecte. El controlador de ReplicaSet vigila ReplicaSets i crea pods. És el patró universal de Kubernetes.
- CRD (Custom Resource Definition): un objecte que defineix un tipus d'objecte nou. En aplicar un CRD, l'API del teu clúster comença a entendre, per exemple,
kind: Certificateokind: PostgresCluster, amb el seu propikubectl get certificates. - Operador: la combinació d'un CRD amb un controlador propi que sap reconciliar-lo. És "coneixement d'un administrador expert convertit en programari": un operador de PostgreSQL pot crear rèpliques, fer còpies de seguretat i executar una commutació per error sense intervenció humana.
flowchart LR
CRD["CRD<br/>defineix el tipus PostgresCluster"] --> API["API de Kubernetes"]
CR["Objecte PostgresCluster<br/>'reserves', 3 rèpliques"] --> API
API --> CTRL["Controlador de l'operador"]
CTRL --> SS["StatefulSet"]
CTRL --> SVC["Services"]
CTRL --> SEC["Secrets"]
CTRL --> PVC["PVCs"]
Quan al mòdul 6 valoris si postgres-reserves s'ha de gestionar amb un StatefulSet propi o amb un operador, aquesta serà la distinció clau.
- Taula mestra de conceptes
Desa aquesta taula: és l'índex conceptual de tot el curs.
| Concepte | Què és en una frase | On el veurem a Rutas Norte | Mòdul |
|---|---|---|---|
| Clúster | Pla de control + nodes com un sol sistema | El clúster de pràctiques i el futur de producció | 1, 10 |
| Node | Màquina que executa pods | Node únic de minikube; multinode amb kind | 1, 6 |
| Pod | Unitat mínima: contenidors que comparteixen xarxa i disc | Primer desplegament de botiga-web |
1, 2 |
| ReplicaSet | Garanteix N pods idèntics | Creat pels Deployments | 2 |
| Deployment | Gestiona ReplicaSets per desplegar i actualitzar sense tall | botiga-web, api-reserves, worker-notificacions |
2 |
| StatefulSet | Rèpliques amb identitat i disc propis | postgres-reserves |
6 |
| DaemonSet | Un pod per node | Agent de logs i de mètriques | 6, 7 |
| Job | Tasca que corre fins a acabar | Migració de l'esquema de reserves | 6 |
| CronJob | Job programat per horari | informes-ocupacio, cada nit |
6 |
| Service | IP i nom estables + balanceig cap a pods | api-reserves, postgres-reserves, redis-cache |
2, 4 |
| Ingress | Encaminament HTTP per domini i ruta, amb TLS | www.rutasnorte.example, api.rutasnorte.example |
4 |
| NetworkPolicy | Tallafoc entre pods | Només l'API accedeix a la base de dades | 4, 8 |
| ConfigMap | Configuració no sensible externalitzada | Paràmetres de l'API i nginx.conf de la botiga |
3 |
| Secret | Dades sensibles gestionades a part | Contrasenya de postgres-reserves, credencials SMTP |
3, 8 |
| ServiceAccount | Identitat del pod davant de l'API | Compte mínim per a cada component | 3, 8 |
| Volume | Directori muntat al pod | Memòria cau temporal, fitxers compartits entre contenidors | 5 |
| PersistentVolume | Emmagatzematge real amb vida pròpia | Disc de la base de dades | 5 |
| PersistentVolumeClaim | Petició d'emmagatzematge | Els 20 GiB que demana postgres-reserves |
5 |
| StorageClass | Catàleg i aprovisionament dinàmic de discos | Classe per defecte de minikube i classes de núvol | 5 |
| Namespace | Partició lògica del clúster | rutas-norte-dev, -pre, -pro |
2 |
| Etiqueta / selector | Metadada consultable / consulta sobre ella | app, entorn, app.kubernetes.io/part-of |
2 |
| Anotació | Metadada no consultable, per a eines | Configuració de l'Ingress, commit desplegat | 2, 4 |
| Recurs / objecte | Tipus d'entitat / instància concreta | Tot el que escriguis a k8s/ |
1 |
| Controlador | Procés que reconcilia un tipus d'objecte | Els que creen els teus pods sense que els vegis | 1, 6 |
| CRD | Defineix un tipus d'objecte nou a l'API | El que instal·la cert-manager | 4, 6 |
| Operador | CRD + controlador amb lògica experta | Alternativa gestionada per a PostgreSQL | 6 |
| HPA | Ajusta el nombre de rèpliques automàticament | Pics de ponts i vacances | 9 |
| Sonda (probe) | Comprovació de salut d'un contenidor | Liveness i readiness de l'API | 7 |
| RBAC | Qui pot fer què sobre quins recursos | Permisos de l'equip i dels pods | 8 |
Errors Comuns i Consells
- Confondre pod i contenidor. Un pod pot tenir diversos contenidors, però es programa, es mou i s'escala com una unitat. "Escalar" significa crear més pods, no més contenidors dins del pod.
- Crear pods solts en producció. Ningú no els ressuscita. Sempre a través d'un Deployment, StatefulSet, DaemonSet o Job.
- Desar una contrasenya en un ConfigMap. És l'error de seguretat més freqüent en clústers reals. La distinció ConfigMap/Secret existeix precisament per poder aplicar RBAC diferent a cadascun.
- Suposar que un Secret està xifrat.
base64és codificació. Sense xifratge en repòs i RBAC, un Secret és text pla amb un pas extra. - Creure que un namespace aïlla la xarxa. No ho fa: un pod de
rutas-norte-devpot arribar a un derutas-norte-protret que existeixi una NetworkPolicy. - Canviar etiquetes a la lleugera. Les etiquetes són el mecanisme d'acoblament: si modifiques l'etiqueta d'un pod, el seu Service deixa de veure'l i el seu ReplicaSet en crea un de nou per substituir-lo. Es fa a propòsit en algunes tècniques de depuració, però mai per accident.
- Consell: quan aparegui un objecte que no coneguis, fes-te tres preguntes — a quina família pertany (càrrega, xarxa, configuració, emmagatzematge)?, quin altre objecte el crea o el consumeix?, és d'àmbit de namespace o de clúster? Amb aquestes tres respostes ja el pots situar. I
kubectl explain <recurs>te les respon sense sortir del terminal.
Exercicis
Exercici 1: Triar l'objecte adequat
Per a cada necessitat de Rutas Norte, indica quin objecte (o combinació d'objectes) faries servir i per què:
- Executar 4 còpies intercanviables d'
api-reservesi poder passar de la versió 2.4.0 a la 2.5.0 sense tallar el servei. - Que
postgres-reservesconservi les seves dades encara que el seu pod es recreï, i que sempre es digui igual. - Generar un informe d'ocupació cada nit a les 02:30.
- Que
botiga-webarribi aapi-reservesper un nom fix encara que les rèpliques canviïn d'IP. - Desar la contrasenya de la base de dades fora de la imatge.
- Impedir que
worker-notificacionses pugui connectar directament a la base de dades.
Exercici 2: La cadena de responsabilitat
Explica amb les teves paraules, en 6 línies com a màxim, què passa des que escrius replicas: 3 en un Deployment fins que hi ha tres contenidors corrent, anomenant tots els objectes i components que hi intervenen. Després respon: si esborres un d'aquests tres pods a mà, qui el recrea exactament?
Exercici 3: Etiqueta o anotació
Classifica cada metadada com a etiqueta o anotació i justifica-ho en una línia:
app: api-reservesentorn: prorutasnorte.example/commit: 9f3a1c2nginx.ingress.kubernetes.io/proxy-body-size: 8mapp.kubernetes.io/part-of: rutas-norterutasnorte.example/responsable: [email protected]
Solucions
Solució 1
- Deployment. És una aplicació sense estat amb rèpliques intercanviables; el Deployment gestiona ReplicaSets i permet l'actualització progressiva i el rollback.
- StatefulSet + PersistentVolumeClaim (amb la seva StorageClass al darrere). El StatefulSet dona identitat estable (
postgres-reserves-0) i un PVC propi per rèplica que sobreviu a la recreació del pod. - CronJob, que al seu torn crea un Job i aquest un Pod a cada execució programada.
- Service de tipus ClusterIP. Dona nom DNS i IP virtual estables i reparteix entre els pods sans seleccionats per etiqueta.
- Secret, muntat com a variable d'entorn o fitxer, amb RBAC restrictiu. Mai un ConfigMap.
- NetworkPolicy que permeti trànsit d'entrada a
postgres-reservesnomés des de pods amb l'etiquetaapp: api-reserves.
Solució 2
Escrius el Deployment i l'apliques; l'apiserver el desa a etcd. El controlador de Deployment crea un ReplicaSet amb replicas: 3. El controlador de ReplicaSet observa que hi ha 0 pods i crea 3 objectes Pod. El kube-scheduler assigna node a cadascun. El kubelet de cada node demana al runtime, via CRI, que descarregui la imatge i arrenqui el contenidor. Cadena completa: Deployment → ReplicaSet → Pod → contenidor.
Si esborres un pod a mà, el recrea el controlador de ReplicaSet (no el Deployment): detecta que hi ha 2 pods on el seu spec en demana 3 i en crea un de nou, amb nom i IP diferents.
Solució 3
- Etiqueta. Identifica el component i és la clau per la qual seleccionen Services i ReplicaSets.
- Etiqueta. Es fa servir per filtrar i per a selectors per entorn.
- Anotació. És traçabilitat; mai no seleccionaràs objectes per commit i el valor canvia a cada desplegament.
- Anotació. És configuració que consumeix l'Ingress Controller, no un criteri de selecció.
- Etiqueta. Etiqueta estàndard recomanada que permet consultar tota la plataforma d'un cop (
-l app.kubernetes.io/part-of=rutas-norte). - Anotació. Informació de contacte per a humans; no té sentit filtrar-hi i el seu format lliure no encaixa en les restriccions de valor d'una etiqueta.
Conclusió
Ja tens el mapa complet del vocabulari: els objectes de Kubernetes s'agrupen en famílies amb papers clars —càrregues de treball que creen pods, xarxa que els dona estabilitat i accés, configuració que els parametritza, emmagatzematge que els dona persistència— organitzades per namespaces i acoblades entre si mitjançant etiquetes i selectors, amb els controladors reconciliant-ho tot i els CRDs i operadors permetent estendre el sistema. La jerarquia Deployment → ReplicaSet → Pod → contenidor és la columna vertebral que convé tenir sempre present, i la taula mestra et serveix d'índex per a la resta del curs.
Fins aquí, tot ha estat teoria. És el moment de tenir un clúster propi on provar cada cosa que anem aprenent: a la lliçó següent, Configuració d'un Clúster de Kubernetes, muntarem pas a pas l'entorn de pràctiques que farem servir durant els dotze mòduls.
Curs de Kubernetes
Mòdul 1: Introducció a Kubernetes
- Què és Kubernetes?
- Arquitectura de Kubernetes
- Conceptes i Terminologia Clau
- Configuració d'un Clúster de Kubernetes
- La CLI de Kubernetes: kubectl
- Objectes, Manifests YAML i el Model Declaratiu
- El Projecte del Curs: la Plataforma Rutas Norte
Mòdul 2: Components Principals de Kubernetes
- Pods
- ReplicaSets
- Deployments
- Actualitzacions, Rollbacks i Estratègies de Desplegament
- Serveis
- Namespaces
- Etiquetes, Selectors i Anotacions
Mòdul 3: Gestió de Configuració i Secrets
- ConfigMaps
- Secrets
- Variables d'Entorn
- Quotes i Límits de Recursos
- LimitRanges i Classes de Qualitat de Servei (QoS)
- ServiceAccounts i Accés a l'API des dels Pods
Mòdul 4: Xarxes a Kubernetes
- Xarxes de Clúster
- Tipus de Serveis
- DNS Intern i Descobriment de Serveis
- Controladors d'Ingress
- TLS i Gestió de Certificats amb cert-manager
- Polítiques de Xarxa
Mòdul 5: Emmagatzematge a Kubernetes
- Volums
- Volums Persistents
- Reclamacions de Volums Persistents
- Classes d'Emmagatzematge
- Aprovisionament Dinàmic, Expansió i Snapshots
- Còpies de Seguretat i Restauració de Dades
Mòdul 6: Conceptes Avançats de Kubernetes
- StatefulSets
- DaemonSets
- Treballs i CronJobs
- Init Containers, Sidecars i Patrons Multicontenidor
- Planificació: Afinitat, Taints i Toleracions
- Definicions de Recursos Personalitzats (CRDs)
- Operadors i el Patró Controlador
Mòdul 7: Monitoratge i Registre
- Verificacions de Salut i Sondes
- Servidor de Mètriques i kubectl top
- Monitoratge amb Prometheus
- Visualització i Alertes amb Grafana i Alertmanager
- Registre Centralitzat amb Elasticsearch, Fluentd i Kibana (EFK)
- Depuració d'Aplicacions i Esdeveniments del Clúster
Mòdul 8: Seguretat a Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Contextos de Seguretat i Enduriment del Contenidor
- Polítiques de Seguretat de Pods i Pod Security Standards
- Seguretat de Xarxa
- Seguretat d'Imatges
- Auditoria, Escaneig i Gestió de Vulnerabilitats
Mòdul 9: Escalat i Rendiment
- Autoescalat Horitzontal de Pods
- Autoescalat Vertical de Pods
- Autoescalat de Clúster
- Escalat per Esdeveniments i Mètriques Personalitzades amb KEDA
- Alta Disponibilitat: PodDisruptionBudgets i Topologia
- Ajust de Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
- Minikube i Entorns Locals amb kind
- Kubeadm
- Helm
- Kustomize
- GitOps amb Argo CD i Flux
- Kubernetes Gestionat: EKS, AKS i GKE
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- Execució d'Aplicacions amb Estat
- CI/CD amb Kubernetes
- Estratègies de Desplegament: Blue-Green i Canary
- Gestió Multi-Clúster
- Operació en Producció: Incidències, Runbooks i Costos
