Notre premier Pod !
Les Pods et la plupart des objets Kubernetes sont par crées dans un Namespace. Un Namespace est une sorte d'espace indépendant où notre Pod sera créé dans le cluster Kubernetes pour éviter les conflits avec d'autres objets :
kubectl create namespace <your_ns>
Ensuite, créez un Pod dans notre namespace (l'option -n spécifie le namespace à utiliser) :
kubectl -n <your_ns> run mypod --image us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.21 --port 8080
C'est l'équivalent de docker run pour Kubernetes.
Pour accéder à votre Pod de l'extérieur, utilisez:
kubectl -n <your_ns> port-forward pod/mypod --address 0.0.0.0 8081:8080
port-forwardcréé un tunnel réseau directement depuis la machine depuis laquellekubectlest lancé vers le container dans le cluster Kubernetes. Un équivalent dedocker run -p 8081:80 [...]. ---addresspermet de binder l'écoute du port sur toutes les adresses (localhost) est utilisé par defaut pour permettre une connection à distance sur votre machine de TP
Votre Pod est maintenant accessible sur le port 8081. Essayez d'y accéder localement ou via un navigateur :
curl YOU.training.crafteo.io:8081
En réalité, kubectl run est rarement utilisé, sauf pour le debug. La plupart du temps, on utilise des manifests ou configurations YAML pour décrire les objets Kubernetes.
Créer un Pod en utilisant un manifest YAML avec
kubectl -n <your_ns> apply -f intro/pod.yml
Maintenant, utiliser les commandes kubectl pour :
- Lister tous les Pods
- Faire un port-forward du pod créé via
intro/pod.yml - Supprimer les deux Pods avec
kubectl delete
Par défaut, kubectl récupère les Pods (et autres objets) dans le namespace default. Vous pouvez changer ce comportement avec :
kubectl config set-context --current --namespace pierre