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.

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

  1. 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
  1. Aplicar la política de xarxa:
kubectl apply -f allow-myapp-ingress.yaml
  1. Verificar que la política s'ha aplicat correctament:
kubectl get networkpolicy -n default

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

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

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat 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 2024. Tots els drets reservats