Qu'est-ce qu'un Namespace ?
Les Namespaces permettent d'isoler les ressources dans un cluster. Ils sont utiles pour :
- Separer les environnements (dev, staging, prod)
- Isoler les equipes ou projets
- Appliquer des quotas et des politiques
Namespaces par defaut
- default : Namespace par defaut
- kube-system : Composants systeme Kubernetes
- kube-public : Ressources publiques
- kube-node-lease : Heartbeats des nœuds
Creer un Namespace
kubectl create namespace dev
kubectl create namespace prod
Namespace YAML
apiVersion: v1
kind: Namespace
metadata:
name: staging
Utiliser un Namespace
kubectl get pods -n dev
kubectl apply -f deployment.yaml -n prod
kubectl config set-context --current --namespace=dev
Deployer dans un Namespace
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
namespace: dev
spec:
...
Bonne pratique : Ne deployez jamais en production dans le namespace default. Creez toujours des namespaces dedies.