Introducció

Els namespaces en Kubernetes són una manera de dividir un clúster de Kubernetes en múltiples entorns virtuals. Això permet gestionar i organitzar recursos de manera més eficient, especialment en entorns grans o amb múltiples equips de desenvolupament.

Conceptes Clau

  • Aïllament Lògic: Els namespaces proporcionen un aïllament lògic dins d'un clúster, permetent que diferents projectes o equips treballin de manera independent.
  • Gestió de Recursos: Faciliten la gestió de recursos, com ara quotes de CPU i memòria, per a diferents aplicacions o equips.
  • Seguretat: Permeten aplicar polítiques de seguretat específiques a diferents parts del clúster.

Creació de Namespaces

Comandes Bàsiques

Per crear un namespace, utilitzem la comanda kubectl create namespace. A continuació es mostra un exemple:

kubectl create namespace my-namespace

YAML per a Namespaces

També podem definir namespaces utilitzant fitxers YAML. Aquí teniu un exemple:

apiVersion: v1
kind: Namespace
metadata:
  name: my-namespace

Per aplicar aquest fitxer, utilitzem la comanda:

kubectl apply -f namespace.yaml

Ús de Namespaces

Especificar un Namespace

Quan treballem amb recursos dins d'un namespace específic, hem d'especificar el namespace en les nostres comandes kubectl. Per exemple:

kubectl get pods -n my-namespace

Canviar el Namespace per Defecte

Podem canviar el namespace per defecte en el context actual utilitzant la comanda següent:

kubectl config set-context --current --namespace=my-namespace

Exemples Pràctics

Crear un Pod en un Namespace

Podem crear un Pod dins d'un namespace específic utilitzant un fitxer YAML com el següent:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  namespace: my-namespace
spec:
  containers:
  - name: my-container
    image: nginx

Per aplicar aquest fitxer, utilitzem la comanda:

kubectl apply -f pod.yaml

Exercicis Pràctics

Exercici 1: Crear i Utilitzar un Namespace

  1. Crear un Namespace: Crea un namespace anomenat development.
  2. Crear un Pod: Crea un Pod anomenat dev-pod dins del namespace development utilitzant la imatge nginx.
  3. Llistar Pods: Llista tots els Pods dins del namespace development.

Solució

  1. Crear el namespace:

    kubectl create namespace development
    
  2. Crear el Pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: dev-pod
      namespace: development
    spec:
      containers:
      - name: nginx
        image: nginx
    

    Aplicar el fitxer:

    kubectl apply -f dev-pod.yaml
    
  3. Llistar els Pods:

    kubectl get pods -n development
    

Exercici 2: Canviar el Namespace per Defecte

  1. Canviar el Namespace: Canvia el namespace per defecte del context actual a development.
  2. Crear un Pod: Crea un Pod anomenat default-pod sense especificar el namespace en el fitxer YAML.

Solució

  1. Canviar el namespace per defecte:

    kubectl config set-context --current --namespace=development
    
  2. Crear el Pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: default-pod
    spec:
      containers:
      - name: nginx
        image: nginx
    

    Aplicar el fitxer:

    kubectl apply -f default-pod.yaml
    

Resum

Els namespaces són una eina poderosa per a l'organització i la gestió de recursos dins d'un clúster de Kubernetes. Proporcionen aïllament lògic, faciliten la gestió de recursos i milloren la seguretat. Amb les comandes i exemples proporcionats, ara hauríeu de ser capaços de crear i gestionar namespaces de manera efectiva.

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