Introducció
Kubernetes és una plataforma de codi obert dissenyada per automatitzar el desplegament, l'escalat i la gestió d'aplicacions en contenidors. Originalment desenvolupada per Google, Kubernetes ara és mantinguda per la Cloud Native Computing Foundation (CNCF). Aquesta plataforma permet als desenvolupadors i administradors de sistemes gestionar aplicacions contenidoritzades de manera eficient i escalable.
Objectius d'Aprenentatge
En aquesta secció, aprendràs:
- Què és Kubernetes i per què és important.
- Els beneficis d'utilitzar Kubernetes.
- Una visió general de les seves funcionalitats principals.
Què és Kubernetes?
Kubernetes, sovint abreujat com K8s, és una plataforma de gestió de contenidors que proporciona un entorn per executar aplicacions contenidoritzades de manera consistent i fiable. Kubernetes s'encarrega de la gestió del cicle de vida dels contenidors, incloent-hi el desplegament, l'escalat, la supervisió i la recuperació d'errors.
Característiques Clau de Kubernetes
- Orquestració de Contenidors: Kubernetes automatitza el desplegament, la gestió i l'escalat de les aplicacions contenidoritzades.
- Escalabilitat: Permet escalar les aplicacions de manera horitzontal (afegint més instàncies de contenidors) i vertical (assignant més recursos a les instàncies existents).
- Recuperació Automàtica: Kubernetes pot detectar i substituir contenidors fallits, garantint la disponibilitat contínua de les aplicacions.
- Gestió de Configuració i Secrets: Proporciona mecanismes per gestionar la configuració de les aplicacions i els secrets de manera segura.
- Xarxes i Emmagatzematge: Facilita la configuració de xarxes i l'ús d'emmagatzematge persistent per als contenidors.
Beneficis d'Utilitzar Kubernetes
- Portabilitat: Kubernetes és compatible amb qualsevol infraestructura, ja sigui en el núvol, en un centre de dades local o en un entorn híbrid.
- Eficiència Operacional: Automatitza moltes tasques operacionals, reduint la càrrega de treball dels administradors de sistemes.
- Alta Disponibilitat: Proporciona mecanismes per garantir que les aplicacions estiguin sempre disponibles, fins i tot en cas de fallades.
- Escalabilitat Dinàmica: Permet escalar les aplicacions de manera dinàmica en funció de la demanda, optimitzant l'ús dels recursos.
Exemples Pràctics
Desplegament d'un Contenidor amb Kubernetes
A continuació, es mostra un exemple senzill de com desplegar un contenidor amb Kubernetes utilitzant un fitxer de configuració YAML.
apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80
Explicació del Codi:
apiVersion
: Especifica la versió de l'API de Kubernetes que s'està utilitzant.kind
: Defineix el tipus de recurs que s'està creant, en aquest cas, un Pod.metadata
: Proporciona informació sobre el Pod, com ara el seu nom.spec
: Defineix les especificacions del Pod, incloent-hi els contenidors que conté.containers
: Llista de contenidors dins del Pod. En aquest exemple, es desplega un contenidornginx
utilitzant la imatgenginx:latest
.ports
: Defineix els ports que s'exposen des del contenidor.
Comandes Bàsiques amb kubectl
Per desplegar el Pod definit anteriorment, utilitzarem la comanda kubectl
:
Per verificar que el Pod s'ha desplegat correctament:
Exercici Pràctic
Exercici 1: Desplegar un Pod
- Crea un fitxer YAML anomenat
myapp-pod.yaml
amb el següent contingut:
apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: myapp image: myapp:latest ports: - containerPort: 8080
- Utilitza
kubectl
per desplegar el Pod:
- Verifica que el Pod s'ha desplegat correctament:
Solució
Si has seguit els passos correctament, hauries de veure el Pod myapp-pod
en la llista de Pods desplegats.
Conclusió
En aquesta secció, hem après què és Kubernetes, les seves característiques clau i els beneficis d'utilitzar-lo. També hem vist un exemple pràctic de com desplegar un contenidor utilitzant Kubernetes i hem practicat amb un exercici. En la següent secció, explorarem l'arquitectura de Kubernetes per entendre millor com funciona aquesta plataforma.
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
- CLI de Kubernetes (kubectl)
Mòdul 2: Components Bàsics de Kubernetes
Mòdul 3: Gestió de Configuració i Secrets
Mòdul 4: Xarxes en Kubernetes
Mòdul 5: Emmagatzematge en Kubernetes
Mòdul 6: Conceptes Avançats de Kubernetes
Mòdul 7: Monitorització i Registre
- Monitorització amb Prometheus
- Registre amb Elasticsearch, Fluentd i Kibana (EFK)
- Controls de Salut i Probes
- Servidor de Mètriques
Mòdul 8: Seguretat en Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Polítiques de Seguretat de Pods
- Seguretat de Xarxa
- Seguretat d'Imatges
Mòdul 9: Escalabilitat i Rendiment
- Autoscalat Horitzontal de Pods
- Autoscalat Vertical de Pods
- Autoscalat de Clúster
- Optimització del Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- CI/CD amb Kubernetes
- Execució d'Aplicacions Stateful
- Gestió Multi-Clúster