Guia d'Introducció a Kubernetes: Com gestionar eficientment aplicacions contenidoritzades
Guia d'Introducció a Kubernetes: Com gestionar eficientment aplicacions contenidoritzades
Kubernetes s'ha convertit en la plataforma d'orquestració de contenidors més popular actualment, oferint una solució per a la implementació, escalat i gestió automatitzada d'aplicacions contenidoritzades. Aquest article proporcionarà una guia pràctica d'introducció per a principiants i desenvolupadors intermedis, ajudant-vos a dominar ràpidament els conceptes bàsics i les operacions pràctiques de Kubernetes.
Què és Kubernetes?
Kubernetes (normalment abreujat com a K8s) és una plataforma de codi obert per a l'automatització de la implementació, escalat i gestió d'aplicacions contenidoritzades. Va ser desenvolupat per Google i donat a la Cloud Native Computing Foundation (CNCF). L'objectiu principal de Kubernetes és simplificar la gestió del cicle de vida de les aplicacions i assegurar la alta disponibilitat i la gestió automatitzada del sistema.
Components Bàsics de Kubernetes
1. Pod
Pod és la unitat de desplegament més petita en Kubernetes, que pot contenir un o més contenidors. Cada Pod comparteix xarxa i emmagatzematge, i és adequat per executar serveis estretament relacionats.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment s'utilitza per gestionar el cicle de vida dels Pods, assegurant que un nombre especificat de Pods estiguin en estat d'execució, i permet el control de versions i actualitzacions.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx
3. Service
Service proporciona un punt d'accés estable, permetent que altres Pods o usuaris externs accedeixin als Pods en execució.
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Avantatges de Kubernetes
- Gestió automatitzada: Kubernetes pot desplegar, escalar i gestionar aplicacions contenidoritzades automàticament, reduint les operacions manuals i disminuint la probabilitat d'errors.
- Alta disponibilitat: A través de ReplicaSets, Kubernetes assegura que hi hagi prou instàncies de Pod en execució; si alguna instància falla, el sistema la reiniciarà o substituirà automàticament.
- Equilibri de càrrega: Kubernetes té funcionalitats d'equilibri de càrrega integrades, que poden distribuir el trànsit entre serveis, assegurant una utilització eficient dels recursos.
Com començar ràpidament amb Kubernetes
1. Preparació de l'entorn
Primer, necessitareu configurar l'entorn de Kubernetes. Això es pot fer de diverses maneres, com ara utilitzant Minikube per a proves locals, o configurant un clúster en proveïdors de serveis en núvol (com Google Kubernetes Engine, AWS EKS, Azure AKS).
Instal·lar Kubernetes amb Minikube
- Instal·lar Minikube i kubectl
# Instal·lar Minikube (per a mètodes d'instal·lació específics, consulteu la documentació oficial de Minikube)
brew install minikube
# Instal·lar kubectl
brew install kubectl
- Iniciar Minikube
minikube start
2. Desplegar la primera aplicació
Prenent Nginx com a exemple, podem desplegar Nginx definint un Deployment i un Service.
# Crear el fitxer deployment.yaml
cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
EOF
# Aplicar el deployment
kubectl apply -f deployment.yaml
# Crear el fitxer service.yaml
cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
EOF
# Aplicar el service
kubectl apply -f service.yaml
3. Accedir a l'aplicació
Cada vegada que creeu un Service de tipus NodePort, Kubernetes li assignarà un port. Podeu obtenir l'adreça d'accés amb la següent comanda:
minikube service nginx-service --url
Utilitzeu un navegador per accedir a l'URL imprès, i podreu veure la pàgina de benvinguda de Nginx.
Errors comuns i depuració
En utilitzar Kubernetes, és possible que us trobeu amb alguns problemes comuns, com ara l'estat del Pod que és CrashLoopBackOff. Això no és un error, sinó un mecanisme de seguretat; Kubernetes no reiniciarà infinitament el Pod després d'un error, sinó que augmentarà el retard entre cada reinici per evitar el caos en el sistema.
Podeu veure els registres del Pod amb la següent comanda per ajudar a la depuració:
kubectl logs
Conclusió
Kubernetes és una eina poderosa per a la gestió de contenidors. A través de la comprensió dels seus conceptes bàsics i comandes comunes, podreu gestionar i desplegar aplicacions natives del núvol de manera més eficient. Amb la popularització del núvol i la tecnologia de contenidors, aprendre Kubernetes obrirà noves oportunitats per al vostre desenvolupament professional. Esperem que aquesta guia us ajudi i serveixi de referència en el vostre viatge d'aprenentatge de Kubernetes.





