Introducció
Les polítiques de xarxa en Kubernetes permeten controlar el tràfic de xarxa entre els pods dins d'un clúster. Aquestes polítiques defineixen quins pods poden comunicar-se entre ells i quins no, proporcionant una capa addicional de seguretat i control.
Conceptes Clau
Abans de començar a treballar amb les polítiques de xarxa, és important entendre alguns conceptes clau:
- Pod Selector: Selecciona els pods als quals s'aplicarà la política.
- Ingress: Defineix les regles per al tràfic entrant als pods seleccionats.
- Egress: Defineix les regles per al tràfic sortint dels pods seleccionats.
- Namespace: Les polítiques de xarxa són específiques del namespace.
Creació d'una Política de Xarxa
Exemple de YAML per a una Política de Xarxa
A continuació es mostra un exemple de YAML per a una política de xarxa que permet el tràfic ingressant només des de pods amb una etiqueta específica:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-specific-ingress namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: role: frontend
Explicació del YAML
- apiVersion: La versió de l'API de Kubernetes que s'utilitza.
- kind: El tipus de recurs, en aquest cas
NetworkPolicy
. - metadata: Informació sobre la política, incloent el nom i el namespace.
- spec: La especificació de la política.
- podSelector: Selecciona els pods als quals s'aplicarà la política. En aquest cas, els pods amb l'etiqueta
role: db
. - policyTypes: Defineix el tipus de política, en aquest cas
Ingress
. - ingress: Defineix les regles per al tràfic ingressant. En aquest exemple, només es permet el tràfic des de pods amb l'etiqueta
role: frontend
.
- podSelector: Selecciona els pods als quals s'aplicarà la política. En aquest cas, els pods amb l'etiqueta
Exercici Pràctic
Objectiu
Crear una política de xarxa que permeti el tràfic ingressant només des de pods en el mateix namespace amb l'etiqueta app: myapp
.
Passos
- Crear un fitxer YAML per a la política de xarxa:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-myapp-ingress namespace: default spec: podSelector: matchLabels: app: myapp policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: myapp
- Aplicar la política de xarxa:
- Verificar que la política s'ha aplicat correctament:
Solució
El fitxer YAML proporcionat anteriorment és la solució per a l'exercici. Assegura't que el fitxer s'ha aplicat correctament i que la política de xarxa està en funcionament.
Errors Comuns i Consells
- Error: No es permet el tràfic esperat: Assegura't que les etiquetes dels pods coincideixen exactament amb les definides en la política de xarxa.
- Error: La política no s'aplica: Verifica que el namespace és correcte i que la política s'ha aplicat al namespace adequat.
- Consell: Utilitza
kubectl describe networkpolicy <policy-name>
per obtenir més informació sobre la política i depurar problemes.
Resum
En aquesta secció, hem après què són les polítiques de xarxa en Kubernetes i com es poden utilitzar per controlar el tràfic de xarxa entre els pods. Hem vist un exemple pràctic de com crear i aplicar una política de xarxa, així com alguns errors comuns i consells per evitar-los. Amb aquest coneixement, estàs preparat per començar a implementar polítiques de xarxa en els teus clústers de Kubernetes per millorar la seguretat i el control del tràfic de xarxa.
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