A la lliçó anterior vam tancar amb una promesa: saps què fa Kubernetes —mantenir de manera contínua l'estat que li declares— i ara toca veure com ho fa. Un clúster no és cap capsa màgica: són sis o set processos amb responsabilitats molt delimitades que es comuniquen sempre a través d'un únic punt central. Entendre aquesta arquitectura és el que després et permetrà diagnosticar problemes en lloc de reiniciar coses a l'atzar: quan un pod es queda en Pending, quan un desplegament no avança o quan el clúster deixa de respondre, la causa és gairebé sempre en una peça concreta i aquesta lliçó t'ensenya quina. Acabarem seguint, pas a pas, tot el que passa des que executes kubectl apply -f api-reserves.yaml fins que el contenidor d'api-reserves està servint peticions en un node.

Contingut

  1. Visió general: pla de control i nodes de treball
  2. Els components del pla de control
  3. Els components dels nodes de treball
  4. El bucle de reconciliació: la idea central
  5. Recorregut complet de kubectl apply
  6. Què passa quan falla cada peça
  7. Alta disponibilitat del pla de control

  1. Visió general: pla de control i nodes de treball

Un clúster de Kubernetes es divideix en dues meitats amb papers molt diferents:

  • El pla de control (control plane): és el cervell. Decideix, registra i vigila. No executa les aplicacions dels usuaris (llevat de clústers d'un sol node com minikube).
  • Els nodes de treball (worker nodes): són els músculs. Executen els contenidors de les teves aplicacions i reporten el seu estat.
flowchart TB
    subgraph CP["Pla de control"]
        API["kube-apiserver<br/>única porta d'entrada"]
        ETCD[("etcd<br/>magatzem d'estat")]
        SCH["kube-scheduler<br/>decideix en quin node"]
        CM["kube-controller-manager<br/>bucles de reconciliació"]
        CCM["cloud-controller-manager<br/>integració amb el núvol"]
        API --- ETCD
        SCH --> API
        CM --> API
        CCM --> API
    end

    subgraph N1["Node treballador 1"]
        K1["kubelet"]
        P1["kube-proxy"]
        R1["containerd (CRI)"]
        K1 --> R1
    end

    subgraph N2["Node treballador 2"]
        K2["kubelet"]
        P2["kube-proxy"]
        R2["containerd (CRI)"]
        K2 --> R2
    end

    USER["kubectl / CI-CD"] --> API
    K1 --> API
    K2 --> API
    P1 --> API
    P2 --> API

Fixa't en la propietat més important del diagrama: totes les fletxes passen per kube-apiserver. Cap component no parla directament amb un altre. El scheduler no crida el kubelet; el kubelet no consulta etcd. Tots llegeixen i escriuen a l'API, i aquesta API és l'única que toca etcd. Aquesta topologia en estrella és el que fa el sistema extensible: per afegir una funcionalitat nova n'hi ha prou d'escriure un procés que observi l'API i actuï (això és un controlador, i és exactament el que fan els operadors del mòdul 6).

  1. Els components del pla de control

2.1. kube-apiserver

És el frontal REST de tot el clúster i l'únic component que escriu a etcd. Tot el que passa a Kubernetes és una petició HTTP contra aquest servidor.

Les seves responsabilitats, en l'ordre en què s'apliquen a cada petició:

  1. Autenticació: qui ets? (certificat de client, token, OIDC…).
  2. Autorització: pots fer això? És on actua RBAC (mòdul 8).
  3. Control d'admissió: modificar o rebutjar l'objecte abans de desar-lo (per exemple, injectar valors per defecte, aplicar quotes o rebutjar imatges no signades).
  4. Validació de l'esquema de l'objecte.
  5. Persistència a etcd.
  6. Notificació a tots els components subscrits mitjançant el mecanisme de watch.

És sense estat i horitzontalment escalable: pots tenir tres rèpliques darrere d'un balancejador.

2.2. etcd

És una base de dades clau-valor distribuïda i consistent, basada en l'algorisme de consens Raft. Desa absolutament tot l'estat del clúster: objectes, configuració, secrets i estat observat.

Punts que has de retenir:

  • És l'única font de veritat. Si perds etcd sense còpia de seguretat, has perdut el clúster (no les aplicacions ja corrent, però sí tota la seva definició).
  • Es desplega en nombre senar de membres (3 o 5) per poder formar quòrum.
  • És sensible a la latència de disc: es recomana SSD dedicat. És el coll d'ampolla habitual en clústers grans.
  • La seva còpia de seguretat (etcdctl snapshot save) és la còpia de seguretat del clúster, i és matèria d'examen a la CKA (mòdul 12).

2.3. kube-scheduler

La seva feina és una sola cosa, i la fa molt bé: decidir en quin node s'executa cada pod acabat de crear. Observa contínuament l'API buscant pods sense nodeName assignat i, per a cadascun, executa dues fases:

Fase Què fa Exemples de criteri
Filtratge (predicates) Descarta els nodes on el pod no pot anar Hi ha CPU i memòria suficients? El node té les etiquetes del nodeSelector? El pod tolera els taints del node? Estan lliures els ports necessaris?
Puntuació (scoring) Ordena els nodes viables i tria el millor Repartiment equilibrat de recursos, afinitat i antiafinitat, nodes que ja tenen la imatge descarregada, dispersió per zones

El resultat no és "arrencar el contenidor": és simplement escriure el camp spec.nodeName del pod a l'API. El scheduler no contacta mai amb el node. Els criteris avançats (afinitat, taints, tolerations) s'estudien al mòdul 6.

2.4. kube-controller-manager

És un únic binari que executa desenes de controladors en paral·lel, cadascun amb el seu propi bucle de reconciliació. Els més rellevants per al curs:

Controlador Què vigila Què fa
Deployment Objectes Deployment Crea i actualitza ReplicaSets per desplegar noves versions
ReplicaSet Objectes ReplicaSet Crea o esborra pods fins que el nombre coincideix amb replicas
Node Estat dels nodes Marca nodes com a NotReady i desallotja els seus pods si no responen
Job / CronJob Tasques Crea pods de tasca i els CronJobs els llancen segons horari
Endpoints / EndpointSlice Services i pods Manté la llista d'IP sanes darrere de cada Service
ServiceAccount i token Namespaces Crea els comptes de servei per defecte
PersistentVolume PVCs i PVs Vincula reclamacions amb volums

Quan al mòdul 2 escriguis un Deployment amb replicas: 3 i vegis aparèixer tres pods, qui els ha creat ha estat aquest procés.

2.5. cloud-controller-manager

Aïlla tot el que depèn del proveïdor de núvol, de manera que el nucli de Kubernetes no tingui codi d'AWS, Azure o GCP. S'encarrega de:

  • Nodes: consultar al proveïdor si una màquina virtual ha estat eliminada realment.
  • Balancejadors: quan crees un Service de tipus LoadBalancer, és qui demana el balancejador real al núvol (mòdul 4).
  • Rutes: configurar l'encaminament entre nodes a la xarxa del proveïdor.

A minikube o kind no existeix, i per això un Service de tipus LoadBalancer es queda amb la IP externa en <pending> tret que facis servir minikube tunnel. És una font clàssica de confusió que veurem al seu moment.

  1. Els components dels nodes de treball

3.1. kubelet

És l'agent que corre a cada node i l'únic que realment arrenca contenidors. El seu bucle és:

  1. Preguntar a l'API quins pods li han estat assignats (spec.nodeName == aquest node).
  2. Comparar amb el que hi ha corrent a la màquina.
  3. Demanar al runtime de contenidors, via CRI, que arrenqui o aturi el que calgui.
  4. Muntar volums, injectar ConfigMaps i Secrets, aplicar límits de recursos.
  5. Executar les sondes de salut (mòdul 7) i reiniciar contenidors fallits.
  6. Reportar contínuament l'estat del node i dels seus pods a l'API.

Important: el kubelet només obeeix l'API, no accepta ordres de ningú més. I només gestiona pods, no contenidors solts: si arrenques un contenidor amb docker run en un node, el kubelet l'ignora.

3.2. kube-proxy

Implementa el concepte de Service a nivell de xarxa a cada node. Observa els Services i els seus EndpointSlices i programa regles de xarxa (iptables o, en clústers grans, IPVS) perquè el trànsit dirigit a la IP virtual d'un servei es reparteixi entre els pods sans.

No és un proxy al camí de les dades en el mode habitual: escriu regles del kernel i s'aparta. Alguns plugins de xarxa moderns (Cilium en mode eBPF) el substitueixen del tot. S'estudia al mòdul 4.

3.3. Runtime de contenidors i la interfície CRI

El kubelet no sap crear contenidors: delega en un runtime a través de la CRI (Container Runtime Interface), una API gRPC estàndard. Els runtimes habituals:

Runtime Notes
containerd El més estès. És el mateix motor que fa servir Docker internament
CRI-O Lleuger, orientat exclusivament a Kubernetes. Habitual a OpenShift
Docker Engine Ja no s'admet directament; requereix l'adaptador cri-dockerd. dockershim es va eliminar a la 1.24

Sota el runtime hi ha un altre nivell (runc) que és qui realment parla amb el kernel (namespaces i cgroups). Aquest detall no el necessites per operar, però explica la frase "Kubernetes ja no fa servir Docker": les imatges que construeixes amb Docker continuen funcionant perfectament perquè compleixen l'estàndard OCI.

3.4. Plugin de xarxa (CNI) i d'emmagatzematge (CSI)

Dues interfícies més que convé anomenar ja:

  • CNI (Container Network Interface): el plugin que assigna IP als pods i fa que es vegin entre nodes. Calico, Cilium, Flannel. Sense CNI instal·lat, els nodes es queden en NotReady. Mòdul 4.
  • CSI (Container Storage Interface): el plugin que aprovisiona discos reals per als volums persistents. Mòdul 5.

  1. El bucle de reconciliació: la idea central

Si et quedes amb una sola idea d'aquesta lliçó, que sigui aquesta. Tots els controladors de Kubernetes executen el mateix patró:

bucle infinit:
    estat_desitjat  <- llegir de l'API (el camp spec)
    estat_real      <- observar el món (pods existents, nodes, etc.)
    si estat_real != estat_desitjat:
        executar les accions mínimes per acostar-los
    publicar a l'API el que s'ha observat (el camp status)

Conseqüències pràctiques d'aquest disseny, que expliquen molts comportaments que et trobaràs:

  • L'spec l'escrius tu; el status l'escriu el sistema. No editis mai un status a mà.
  • És per nivell, no per esdeveniment. El controlador no reacciona a "s'ha esborrat un pod": compara la foto actual amb la desitjada. Per això el sistema es recupera encara que es perdi un missatge o un controlador es reiniciï.
  • És idempotent. Aplicar el mateix manifest deu vegades produeix el mateix resultat que aplicar-lo una.
  • La correcció manual no dura. Si esborres un pod gestionat per un ReplicaSet, torna en segons. Perquè desaparegui cal canviar l'estat desitjat.
  • Les fallades són "eventualment consistents". Entre que declares una cosa i es compleix passa un temps; per això els objectes tenen condicions i esdeveniments, i per això kubectl get de vegades mostra estats intermedis.

  1. Recorregut complet de kubectl apply

Seguirem una petició real de Rutas Norte. Suposa aquest fitxer mínim al directori k8s/ del repositori (els detalls del format es veuen a la lliçó Objectes, Manifests YAML i el Model Declaratiu):

# k8s/api-reserves.yaml
apiVersion: v1
kind: Pod
metadata:
  name: api-reserves
  namespace: rutas-norte-dev
  labels:
    app: api-reserves
    app.kubernetes.io/part-of: rutas-norte
    entorn: dev
spec:
  containers:
    - name: api
      image: registry.rutasnorte.example/api-reserves:2.4.0
      ports:
        - containerPort: 3000

I l'apliques:

kubectl apply -f k8s/api-reserves.yaml
pod/api-reserves created

Darrere d'aquesta línia de sortida han passat dotze passos.

sequenceDiagram
    participant U as kubectl
    participant A as kube-apiserver
    participant E as etcd
    participant S as kube-scheduler
    participant K as kubelet (node-2)
    participant C as containerd

    U->>A: 1-2. POST /api/v1/namespaces/rutas-norte-dev/pods (TLS + credencials)
    A->>A: 3. Autenticació
    A->>A: 4. Autorització (RBAC)
    A->>A: 5. Admissió (mutació i validació)
    A->>E: 6. Escriure objecte Pod (sense nodeName)
    E-->>A: 7. Confirmació
    A-->>U: 8. 201 Created
    A-->>S: 9. Esdeveniment watch: pod pendent
    S->>A: 10. Filtratge + puntuació -> binding a node-2
    A->>E: Persistir spec.nodeName=node-2
    A-->>K: 11. Esdeveniment watch: tens un pod nou
    K->>C: 12. CRI: descarregar imatge i crear contenidor
    C-->>K: Contenidor en execució
    K->>A: Actualitzar status: Running

Pas a pas, amb detall:

  1. kubectl llegeix el teu kubeconfig per saber a quin clúster ha de parlar, amb quines credencials i en quin namespace.
  2. Converteix el YAML a JSON i l'envia com a POST (o PATCH si l'objecte ja existia) sobre HTTPS a l'endpoint del recurs.
  3. Autenticació. L'apiserver valida el teu certificat de client o token. Si falla: error: You must be logged in to the server (Unauthorized).
  4. Autorització. RBAC comprova si el teu usuari pot fer create pods al namespace rutas-norte-dev. Si falla: Error from server (Forbidden).
  5. Control d'admissió. S'executen els admission controllers en dues tandes: primer els mutants (afegeixen valors per defecte, la ServiceAccount, límits d'un LimitRange…) i després els validadors (ResourceQuota, Pod Security Standards, webhooks propis). Qualsevol pot rebutjar la petició.
  6. Escriptura a etcd. L'objecte es desa. En aquest moment el pod ja existeix com a objecte, encara que no hi hagi cap contenidor en marxa. El seu estat és Pending i el seu spec.nodeName és buit.
  7. etcd confirma l'escriptura per consens Raft.
  8. L'apiserver respon a kubectl amb 201 Created. Aquí acaba la teva ordre: kubectl apply no espera que el contenidor arrenqui.
  9. El scheduler rep la notificació pel seu watch sobre pods sense node assignat.
  10. El scheduler decideix. Filtra els nodes sense recursos suficients o incompatibles, puntua els restants, tria node-2 i escriu el binding a l'API. El pod continua en Pending, però ja té destinació.
  11. El kubelet de node-2 se n'assabenta pel seu propi watch i pren el control.
  12. El kubelet executa: demana al runtime, via CRI, que descarregui registry.rutasnorte.example/api-reserves:2.4.0 (estat ContainerCreating, o ImagePullBackOff si el registre rebutja la descàrrega), crea el sandbox de xarxa demanant una IP al plugin CNI, munta volums i secrets, i arrenca el contenidor. Després informa l'API: status.phase = Running.

A partir d'aquí, el kubelet vigila el contenidor de manera permanent i el bucle de reconciliació continua viu fins que l'objecte s'esborri.

  1. Què passa quan falla cada peça

Aquesta taula és or pur per diagnosticar incidències, i una pregunta recurrent en entrevistes i certificacions.

Component caigut Què DEIXA de funcionar Què CONTINUA funcionant
kube-apiserver Tot kubectl, tots els controladors, tot canvi d'estat Els pods ja en marxa continuen servint trànsit; kube-proxy conserva les seves regles
etcd (sense quòrum) L'API passa a només lectura o falla; cap canvi no es persisteix Igual que a dalt: les aplicacions continuen atenent
kube-scheduler Els pods nous es queden en Pending per sempre Els pods ja assignats arrenquen i funcionen amb normalitat
kube-controller-manager No es recreen rèpliques, no avancen els desplegaments, no s'actualitzen endpoints Els pods existents continuen vius
cloud-controller-manager No es creen balancejadors nous ni es netegen nodes esborrats La resta del clúster funciona
kubelet d'un node Aquell node passa a NotReady; després d'uns 5 min els seus pods es recreen en altres nodes Els contenidors d'aquell node poden continuar corrent una estona, però sense supervisió
kube-proxy d'un node El trànsit cap a Services des d'aquell node deixa d'encaminar-se bé La resta de nodes encamina correctament
Plugin CNI Els pods nous no obtenen IP; es queden en ContainerCreating Els pods existents conserven la seva xarxa

La conclusió operativa és tranquil·litzadora: el pla de control és el cervell, no el cor. Si cau, el clúster deixa de canviar, però no deixa de servir. Això és un disseny deliberat i explica per què una caiguda del pla de control és greu però rarament és una caiguda del servei.

  1. Alta disponibilitat del pla de control

Un clúster de pràctiques té un sol node de control. Un clúster de producció, com el que Rutas Norte voldrà per al seu namespace rutas-norte-pro, necessita tolerar la pèrdua d'una màquina del pla de control.

L'esquema estàndard:

  • 3 nodes de pla de control (nombre senar, pel quòrum d'etcd).
  • kube-apiserver replicat als tres, darrere d'un balancejador o d'un keepalived amb IP virtual. En ser sense estat, escala en actiu-actiu.
  • etcd en 3 membres. Tolera la pèrdua d'1. Amb 5 membres en tolera 2. Amb 2 membres no en tolera cap: no facis servir mai un nombre parell.
  • scheduler i controller-manager en actiu-passiu. S'executen tots tres, però només un actua: trien líder mitjançant un objecte Lease a l'API. És imprescindible que només un reconciliï, o crearien pods per duplicat.
  • etcd apilat o extern: apilat (stacked, etcd a les mateixes màquines de control) és l'habitual i més senzill; extern aïlla la fallada i es fa servir en clústers grans.
flowchart LR
    LB["Balancejador<br/>o IP virtual"]
    subgraph CP1["control-1"]
        A1["apiserver"]
        E1[("etcd")]
        S1["scheduler (líder)"]
    end
    subgraph CP2["control-2"]
        A2["apiserver"]
        E2[("etcd")]
        S2["scheduler (espera)"]
    end
    subgraph CP3["control-3"]
        A3["apiserver"]
        E3[("etcd")]
        S3["scheduler (espera)"]
    end
    LB --> A1
    LB --> A2
    LB --> A3
    E1 <--> E2
    E2 <--> E3
    E1 <--> E3

A més, en un clúster gestionat (EKS, AKS, GKE, mòdul 10-06) el proveïdor opera tot això per tu i ni tan sols veus les màquines del pla de control: pagues una quota i només administres els nodes de treball. Per a la majoria d'empreses, inclosa Rutas Norte, aquesta és l'opció sensata.

Errors Comuns i Consells

  • Creure que el scheduler arrenca contenidors. No: només escriu un nom de node. Qui arrenca és el kubelet. Si un pod està en Pending, el problema és del scheduler (no cap en cap node); si està en ContainerCreating o ImagePullBackOff, el problema és del kubelet o del runtime.
  • Pensar que kubectl apply espera que l'aplicació estigui llesta. Retorna tan bon punt l'objecte es desa a etcd. Per esperar de debò, es fa servir kubectl rollout status o kubectl wait.
  • Modificar recursos a mà en un node. Aturar un contenidor amb crictl o docker no serveix de res: el kubelet el recrea. Sempre s'actua sobre l'API.
  • Oblidar la còpia de seguretat d'etcd. És l'únic component la dada del qual és irreemplaçable. Sense snapshot, un desastre a etcd equival a reconstruir el clúster des dels manifests (raó addicional per tenir-los tots a Git).
  • Posar 2 membres d'etcd "per tenir redundància". Empitjora la disponibilitat: amb 2 membres el quòrum és 2, així que perdre'n un bloqueja el clúster. Sempre senar.
  • Consell de diagnòstic: davant de qualsevol problema, recorre la cadena en ordre — l'objecte existeix a l'API? (kubectl get) → té node assignat? (kubectl get pod -o wide) → què diu el kubelet? (kubectl describe pod, secció Events). Aquest ordre replica exactament el recorregut de la secció 5.

Exercicis

Exercici 1: Localitzar la peça responsable

Per a cada símptoma observat al clúster de Rutas Norte, indica quin component és el principal sospitós i per què:

  1. El pod api-reserves porta 10 minuts en Pending i describe diu 0/3 nodes are available: insufficient memory.
  2. kubectl get pods retorna Unable to connect to the server: dial tcp ... connection refused.
  3. S'esborra a mà un pod de botiga-web gestionat per un ReplicaSet i no es recrea, però la resta del clúster respon bé.
  4. El pod worker-notificacions està ContainerCreating des de fa 5 minuts amb l'esdeveniment failed to pull image ... unauthorized.
  5. Un node apareix com a NotReady i al cap de pocs minuts els seus pods apareixen en altres nodes.

Exercici 2: Reconstruir el recorregut

Ordena aquests vuit passos, que estan desordenats, i assenyala en quin d'ells el pod passa de Pending a ContainerCreating:

  • a) El kubelet demana al runtime que creï el contenidor via CRI.
  • b) L'apiserver escriu l'objecte a etcd.
  • c) RBAC comprova els permisos de l'usuari.
  • d) El scheduler escriu spec.nodeName.
  • e) kubectl envia la petició HTTPS.
  • f) S'executen els admission controllers.
  • g) L'apiserver respon 201 Created.
  • h) El kubelet rep l'esdeveniment del watch.

Exercici 3: Disseny d'alta disponibilitat

Rutas Norte vol un clúster propi per a rutas-norte-pro que toleri la caiguda d'una màquina completa del pla de control. Indica: quants nodes de control faries servir, quants membres d'etcd, com s'accedeix a l'apiserver, en quin mode treballen scheduler i controller-manager, i explica en dues línies què passaria amb la botiga web durant els 3 minuts en què el pla de control estigués completament caigut.

Solucions

Solució 1

  1. kube-scheduler (juntament amb la capacitat dels nodes). El pod es va crear correctament a l'API, però cap node no passa la fase de filtratge per manca de memòria. La solució és reduir els requests del pod o afegir capacitat.
  2. kube-apiserver (o la xarxa cap a ell). connection refused significa que kubectl ni tan sols arriba a autenticar-se: el procés no escolta o l'endpoint del kubeconfig és incorrecte.
  3. kube-controller-manager. El controlador de ReplicaSet és qui recrea les rèpliques; si la resta funciona però no es reconcilia res, el sospitós és el controller-manager (o la seva elecció de líder).
  4. kubelet i runtime de contenidors, amb causa arrel a les credencials del registre. El pod ja té node assignat; la fallada és en descarregar la imatge (falta l'imagePullSecret).
  5. kubelet d'aquell node (o la xarxa del node). En deixar de reportar, el controlador de nodes el marca NotReady i, passat el període de tolerància, desallotja els seus pods perquè es recreïn en un altre lloc. Comportament esperat, no un error.

Solució 2

Ordre correcte: e → c → f → b → g → d → h → a.

  • e) petició HTTPS
  • c) autenticació i autorització RBAC
  • f) admissió (mutació i validació)
  • b) escriptura a etcd → el pod existeix en Pending
  • g) resposta 201 Created a kubectl
  • d) el scheduler assigna node → continua Pending, però ja amb destinació
  • h) el kubelet rep l'esdeveniment
  • a) el kubelet crea el contenidor → aquí el pod passa a ContainerCreating i després a Running

Solució 3

  • 3 nodes de pla de control i 3 membres d'etcd (topologia apilada): amb quòrum de 2, es tolera la pèrdua d'1 màquina.
  • Accés a l'apiserver a través d'un balancejador o IP virtual (keepalived + HAProxy) que reparteixi entre les tres rèpliques; el kubeconfig apunta a aquest punt únic, no a una màquina concreta.
  • kube-scheduler i kube-controller-manager en actiu-passiu, amb elecció de líder mitjançant Lease: els tres processos corren, però només el líder reconcilia, per evitar duplicar accions.
  • Durant 3 minuts sense pla de control, la botiga web continua funcionant amb normalitat: els pods ja corren als nodes i kube-proxy conserva les seves regles de xarxa. El que no passa en aquests 3 minuts és canvi: no es poden desplegar versions, ni escalar, ni recrear pods caiguts, ni executar kubectl.

Conclusió

Un clúster de Kubernetes és un conjunt de processos amb responsabilitats molt estrictes que es comuniquen exclusivament a través del kube-apiserver, amb etcd com a única font de veritat. El pla de control decideix (apiserver, scheduler, controller-manager, cloud-controller-manager) i els nodes executen (kubelet, kube-proxy, runtime via CRI). El pegament conceptual és el bucle de reconciliació: comparar l'estat desitjat que tu declares amb l'estat real observat i actuar fins que coincideixin, de manera contínua i idempotent. Amb aquest mapa mental ja pots raonar sobre incidències en lloc d'endevinar, i saps per què la caiguda del pla de control atura els canvis però no el servei.

Tenim l'arquitectura; ens falta el vocabulari. A les properes lliçons apareixeran constantment termes com pod, ReplicaSet, Service, PVC o namespace, i convé tenir un mapa clar de què és cada cosa i com es relacionen entre si abans de fer-los servir. Això és el que ordena la lliçó següent: Conceptes i Terminologia Clau.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Principals de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes a Kubernetes

Mòdul 5: Emmagatzematge a Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitoratge i Registre

Mòdul 8: Seguretat a Kubernetes

Mòdul 9: Escalat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2026. Tots els drets reservats