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:
YAML per a Namespaces
També podem definir namespaces utilitzant fitxers YAML. Aquí teniu un exemple:
Per aplicar aquest fitxer, utilitzem la comanda:
Ú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:
Canviar el Namespace per Defecte
Podem canviar el namespace per defecte en el context actual utilitzant la comanda següent:
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:
Exercicis Pràctics
Exercici 1: Crear i Utilitzar un Namespace
- Crear un Namespace: Crea un namespace anomenat
development
. - Crear un Pod: Crea un Pod anomenat
dev-pod
dins del namespacedevelopment
utilitzant la imatgenginx
. - Llistar Pods: Llista tots els Pods dins del namespace
development
.
Solució
-
Crear el namespace:
kubectl create namespace development
-
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
-
Llistar els Pods:
kubectl get pods -n development
Exercici 2: Canviar el Namespace per Defecte
- Canviar el Namespace: Canvia el namespace per defecte del context actual a
development
. - Crear un Pod: Crea un Pod anomenat
default-pod
sense especificar el namespace en el fitxer YAML.
Solució
-
Canviar el namespace per defecte:
kubectl config set-context --current --namespace=development
-
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
- 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