TP1 Déploiement d'un Pod unique
Tips
Utiliser les alias et variables du shell
# File: .bash_aliases
alias k='kubectl'
# Afficher les contextes
alias kcon='kubectl config get-contexts'
# Changer de contexte
alias kx='kubectl config use-context'
# Changer le namespace courant
alias kn='kubectl config set-context --current --namespace'
# Lister les ressources
alias kg='kubectl get'
# Lister les ressources
alias kdesc='kubectl describe'
# Appliquer un manifeste
alias ka='kubectl apply -f'
# Créer les ressources
alias kc='kubectl create'
# Supprimer les ressources
alias kdel='kubectl delete'
# Générer en sortie YAML
export yaml='--dry-run=client -o yaml'
# Expliquer une ressource
alias kexp='kubectl explain — recursive'
# Forcer une terminaison immédiate
export now='--grace-period 0 --force'
# Obtenir les événements
alias kev='kubectl get events --sort-by .lastTimestamp'
# Appliquer un manifeste
alias kl='kubectl logs'
Puis
source .bash_aliases
TP 1
Déployer un Pod Kubernetes avec une image Ubuntu
Ce TP a pour objectif de créer, déployer et vérifier un Pod dans un cluster Kubernetes tout en utilisant des commandes kubectl.
Étapes
- Action : Installer K3S si ce n'est pas encore fait via la ligne de commande sur k3s.io
Observation : K3S doit s'installer sur votre lab virtuel.
Indice
Utiliser la commande curl [URL installateur k3s] | sh -
pour lancer l'installation.
- Action : Afficher son kubeconfig.
Observation : Le kubeconfig doit indiquer les paramètres du cluster en cours.
Indice
Utiliser la commande kubectl config ???
pour afficher la configuration.
- Action : Créer son namespace
Observation : Le namespace apparaît dans la liste.
Contraintes :- nom du namespace :
mynamespace
- nom du namespace :
Indice
Utiliser la commande kubectl create namespace ???
pour créer le namespace.
- Action : Lancer l'image Ubuntu
ubuntu:latest
pour un podubuntu
.
Observation : Le pod sera créé dynamiquement.
Contraintes :- namespace
mynamespace
- image :
ubuntu:latest
- nom du pod :
ubuntu
- nom du conteneur : sera hérité du nom du pod par défaut
- commande :
tail -f /dev/null
- namespace
Indice
Utiliser la commande kubectl run ???
pour lancer l'image Docker.
- Action : Utiliser
get
etdescribe
pour inspecter le Pod.
Observation :get
fournit un résumé du Pod, tandis quedescribe
donne des détails complets. Est-ce que le pod est resté actif ? Pourquoi ?
Indice
Utiliser les commandes kubectl get ???
et kubectl describe ???
.
- Action : Afficher le manifeste du Pod.
Observation : Le fichier YAML généré représente l'état actuel du Pod dans Kubernetes.
Indice
Utiliser la commande kubectl get ??? -o yaml
pour afficher le manifeste en format YAML.
- Action : Supprimer le Pod et attendre la finalisation de la suppression.
Observation : Le Pod sera supprimé, et la commande attendra que l'opération soit terminée.
Indice
Utiliser la commande kubectl delete ???
.
Avancé
- Exécuter la commande
kubectl get all
pour lister toutes les ressources dans le namespace actuel. - Exécuter la commande
kubectl get events --sort-by .lastTimestamp
pour lister toutes les ressources dans le namespace actuel. - Relancer tourner le pod sans
tail -f /dev/null
. Qu'est-ce que ça fait ? - Utiliser la commande
kubectl get pods -o json
pour afficher la sortie en format JSON. - Utiliser
kubectl get pod ubuntu -o jsonpath='{.status.phase}'
pour filtrer des informations spécifiques en JSON. - Utiliser
kubectl top pod ubuntu
pour afficher les statistiques d'utilisation CPU/mémoire du Pod.
Solution
Afficher
- Afficher son kubeconfig :
kubectl config view
- Créer son namespace :
kubectl create namespace mynamespace
- Lancer l'image Ubuntu :
kubectl run ubuntu --image=ubuntu --namespace mynamespace -- tail -f /dev/null
- Utiliser get et describe :
kubectl get pod ubuntu --namespace mynamespace
kubectl describe pod ubuntu --namespace mynamespace
- Afficher le manifeste en YAML :
kubectl get pod ubuntu -o yaml --namespace mynamespace
- Supprimer et attendre la suppression du Pod :
kubectl delete pod ubuntu --namespace mynamespace