Skip to content

Latest commit

 

History

History
113 lines (86 loc) · 3.16 KB

File metadata and controls

113 lines (86 loc) · 3.16 KB

Deployer et inspecter un svc ClusterIP puis LoadBalancer et NodePort

Ce TP se déroule sur un cluster DigitalOcean.(lien sponsorisé : 200€ sur 60j)

Sommaire

But du TP

  • Manipuler les déploiements et les services.
  • Constater que les Pods obtiennent des @IP dynamiquement
  • Constater que les svc ont des IP stables

Effectuer un premier déploiement

kubectl create deployment hello-world --image=stefanprodan/podinfo:6.11.2

Podinfo écoute par défaut sur TCP/9898. Inspectez-le (retrouvez l'IP du Pod)

kubectl get pod -o wide

Scaler le déploiement

Changer le nombre de replicas

kubectl scale deployment hello-world --replicas=5

Exposer avec un LoadBalancer

Exposer le deploiement avec un Load Balancer (notez le NAT de port)

kubectl expose deployment hello-world --type=LoadBalancer --port=80 --target-port=9898

Initialement pending, déterminer au bout de quelques minutes l'IP publique du Load Balancer

kubectl get svc

Visiter le site web avec votre navigateur

Depuis le terminal CodeSpaces (ou une station Linux), verifier que le load-balancer dispatche bien les requêtes, par exemple en lançant plusieurs curl :

for i in {1..100}; do 
    curl -s http://<IP_PUBLIC> | jq '.hostname'  ; done | sort  | uniq -c

Constater les Endpoints attachés au svc :

kubectl describe svc/hello-world

Effectuer un rollout

Changer la version de l'image deployée

kubectl set image deployment/hello-world podinfo=stefanprodan/podinfo:5.2.0

Observer le déploiement des pods dans cette version :

kubectl rollout status deployment/hello-world
kubectl get pod -o wide

Vérifier que les Endpoints (et leur IPs) ont changé :

kubectl describe svc/hello-world

L'IP publique est bien restée inchangée, ainsi celle du ClusterIP.

Exposition en NodePort

Changeons le type de déploiement pour passer de LoadBalancer à Nodeport

kubectl patch svc/hello-world -p '{"spec": {"type": "NodePort"}}'
kubectl get svc

Notez la publication sur un port dynamique > 30.000.

Naviguez sur ce port sur chacun des noeuds et constatez... (Si vous ne vous souvenez pas de la façon de récupérer l'adresse IP d'un node, revenez au TP01).

Depuis Gitpod (ou une station Linux), verifier que le NodePort dispatche bien les requêtes, par exemple en lançant plusieurs curl :

for i in {1..100}; do 
    curl -s http://<NODE_IP_PUBLIC>:<NODEPORT> | jq '.hostname' ; 
done

Cleanup

kubectl delete svc/hello-world
kubectl delete deployment/hello-world

Revenir au sommaire | TP suivant