Dans ce court TP nous allons redéployer notre application rancher-demo
du TP1 mais cette fois en utilisant kubectl apply -f
et en visualisant le résultat dans Lens
.
kubectl config use-context k3s
ou kubectl config use-context default
Lens
en cliquant à nouveau sur plus et en selectionnant k3s
ou default
rancher-demo
et rancher-demo-service
du TP1TP2_deploy_using_files_and_Lens
sur le bureau de la machine distante et ouvrez le avec VSCode
.Nous allons d’abord déployer notre application comme un simple Pod (non recommandé mais montré ici pour l’exercice).
rancher-demo-pod.yaml
avec à l’intérieur le code d’exemple du cours précédent de la partie Pods.kubectl apply -f <fichier>
rancher-demo
et réappliquez la configuration. Que ce passe-t-il ?=> Kubernetes refuse d’appliquer le nouveau nom de conteneur car un pod est largement immutable. Pour changer d’une quelquonque façon les conteneurs du pod il faut supprimer (kubectl delete -f <fichier>
) et recréer le pod. Mais ce travail de mise à jour devrais être géré par un déploiement pour automatiser et pour garantir la haute disponibilité de notre application rancher-demo
.
rancher-demo-deploy.yaml
avec à l’intérieur le code suivant à compléter:apiVersion: apps/v1
kind: Deployment
metadata:
name: rancher-demo
labels:
app: rancher-demo
spec:
selector:
matchLabels:
app: rancher-demo
strategy:
type: Recreate
replicas: 1
template:
metadata:
labels:
app: rancher-demo
spec:
containers:
- image: <image>
name: <name>
ports:
- containerPort: <port>
name: demo-http
rancher-demo-svc.yaml
avec à l’intérieur le code suivant à compléter:apiVersion: v1
kind: Service
metadata:
name: rancher-demo-service
labels:
app: rancher-demo
spec:
ports:
- port: <port>
selector:
app: <app_selector>
type: NodePort
app: rancher-demo
à remplacer dans le fichier ) et supprimez le déploiement et réappliquez.=> Les services kubernetes redirigent le trafic basés sur les étiquettes(labels) appliquées sur les pods du cluster. Il faut donc de même éviter d’utiliser deux fois le même label pour des parties différentes de l’application.
Le dépôt Git de la correction de ce TP est accessible ici : git clone -b correction_k8s_tp2 https://github.com/Uptime-Formation/corrections_tp.git