Le but de cet exercice est de manipuler les namespaces et de comprendre comment les utiliser pour isoler les ressources

1. Création

Créez les 2 namespaces development et production

2. Liste des namespaces

Listez les namespaces présents

3. Création de Deployments

Créer le Deployment www-0 basé sur nginx:1.24-alpine dans le namespace par défaut

Créer le Deployment www-1 basé sur nginx:1.24-alpine dans le namespace development

Créer le Deployment www-2 basé sur nginx:1.24-alpine dans le namespace production

4. Répartition des ressources

Listez les Deployments et Pods présents sur le système (l’option --all-namespaces ou -A permet de prendre en compte l’ensemble des namespaces)

5. Suppression

Supprimez les namespaces development et production ainsi que le deployment www-0 créé dans le namespace default.

Listez une nouvelle fois les Deployments et Pods présents sur le système. Que constatez-vous ?

Note: comme nous le verrons par la suite, il est possible de définir des règles permettant de donner accès à des actions précises dans un namespace. Cette approche permet d’utiliser les namespaces pour isoler les ressources du cluster entre plusieurs équipes (dev, qa, prod) et/ou plusieurs clients.


Solution

1. Création

Les commandes suivantes permettent de créer les namespaces development et production.

kubectl create namespace development
kubectl create namespace production

2. Liste des namespaces

kubectl get namespace

3. Création de Deployments

kubectl create deploy www-0 --image nginx:1.24-alpine

La commande suivante permet de créer le Deployment www-1 dans le namespace development

kubectl create deploy www-1 --image nginx:1.24-alpine --namespace development

De même pour la création du Deployment www-2:

kubectl create deploy www-2 --image nginx:1.24-alpine --namespace production

4. Répartition des ressources

La commande suivante permet de lister l’ensemble des Deployments et Pods dans tous les namespaces:

kubectl get deploy,po --all-namespaces

5. Suppression

kubectl delete ns development production

Si nous listons les Deployments et Pods, nous pouvons voir que seuls les resources créées dans le namespace default sont présentes. Les ressources des namespaces development et production ont été supprimées avec la suppression de ces 2 namespaces.

La commande suivante permet de supprimer le deployment www-0 existant dans le namespace default:

kubectl delete deploy www-0