En aquest tema, explorarem com funciona la xarxa dins d'un clúster de Kubernetes. La xarxa és un component fonamental per a la comunicació entre els diferents elements del clúster, com ara els pods, els serveis i els nodes. A continuació, desglossarem els conceptes clau, proporcionarem exemples pràctics i oferirem exercicis per reforçar l'aprenentatge.

Objectius d'Aprenentatge

  • Comprendre la xarxa de clúster en Kubernetes.
  • Conèixer els diferents models de xarxa utilitzats en Kubernetes.
  • Configurar i gestionar la xarxa dins d'un clúster de Kubernetes.

Conceptes Clau

  1. Xarxa de Pod

Cada pod en Kubernetes té la seva pròpia adreça IP única. Això permet que els pods es comuniquin entre ells directament, sense necessitat de traducció d'adreces de xarxa (NAT).

  1. Xarxa de Node

Els nodes del clúster també tenen adreces IP úniques. Els pods dins d'un node poden comunicar-se amb altres pods en diferents nodes a través de la xarxa del clúster.

  1. CNI (Container Network Interface)

Kubernetes utilitza plugins de CNI per gestionar la xarxa del clúster. Alguns dels plugins més populars són:

  • Flannel
  • Calico
  • Weave
  • Cilium

  1. Serveis de Kubernetes

Els serveis proporcionen una manera d'exposar una aplicació que s'executa en un conjunt de pods com una adreça IP única. Els serveis poden ser de diferents tipus, com ara ClusterIP, NodePort i LoadBalancer.

Exemples Pràctics

Configuració de Flannel com a Plugin de Xarxa

  1. Desplegar Flannel

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  2. Verificar la Configuració

    kubectl get pods -n kube-system
    

Creació d'un Servei ClusterIP

  1. Definir un Servei en un Fitxer YAML

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: MyApp
      ports:
        - protocol: TCP
          port: 80
          targetPort: 9376
    
  2. Aplicar la Configuració

    kubectl apply -f my-service.yaml
    
  3. Verificar el Servei

    kubectl get services
    

Exercicis Pràctics

Exercici 1: Desplegar un Plugin de Xarxa

  1. Tria un plugin de xarxa (Flannel, Calico, Weave, etc.).
  2. Desplega el plugin al teu clúster de Kubernetes.
  3. Verifica que el plugin s'ha desplegat correctament.

Exercici 2: Crear i Exposar un Servei

  1. Crea un pod que executi una aplicació simple (per exemple, un servidor web Nginx).
  2. Defineix un servei ClusterIP per exposar l'aplicació.
  3. Verifica que pots accedir a l'aplicació a través del servei.

Solucions

Solució a l'Exercici 1

  1. Desplegar Calico

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  2. Verificar la Configuració

    kubectl get pods -n kube-system
    

Solució a l'Exercici 2

  1. Crear un Pod amb Nginx

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
    
    kubectl apply -f nginx-pod.yaml
    
  2. Crear un Servei ClusterIP

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
    
    kubectl apply -f nginx-service.yaml
    
  3. Verificar el Servei

    kubectl get services
    

Errors Comuns i Consells

Errors Comuns

  • No desplegar correctament el plugin de xarxa: Assegura't de seguir les instruccions específiques del plugin.
  • No definir correctament els selectors en els serveis: Els selectors han de coincidir amb les etiquetes dels pods.

Consells

  • Utilitza eines de depuració: Eines com kubectl describe i kubectl logs poden ajudar a identificar problemes.
  • Consulta la documentació oficial: La documentació de Kubernetes i dels plugins de xarxa és una font valuosa d'informació.

Conclusió

En aquesta secció, hem après sobre la xarxa de clúster en Kubernetes, incloent-hi els conceptes clau, la configuració de plugins de xarxa i la creació de serveis. Aquests coneixements són fonamentals per gestionar la comunicació dins d'un clúster de Kubernetes. En el proper tema, explorarem els diferents tipus de serveis en Kubernetes.

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