Lab 05 : Peering entre OKS et un réseau de VM
Objectifs du Lab
Section intitulée « Objectifs du Lab »- Configurer un peering entre un cluster OKS et un réseau de VM (autre NET/VPC)
- Mettre à jour les routes et Security Groups pour autoriser le trafic privé
- Tester la connectivité privée entre un pod OKS et une VM
Le peering permet aux deux réseaux de communiquer via leurs adresses IP privées. C’est la base pour des architectures hybrides où des services OKS interagissent avec des ressources dans d’autres VPC.
Pré-requis
Section intitulée « Pré-requis »- Un cluster Kubernetes opérationnel fourni par OKS
- Une VM dans un réseau privé (autre NET/VPC), dans la même région
- Accès à la CLI
kubectl,oks-clietosc-cli - Plages CIDR qui ne se chevauchent pas entre les deux réseaux
- Droits nécessaires pour accepter le peering côté réseau de la VM (et/ou profil OSC adapté)
Récupérer le fichier kubeconfig
Section intitulée « Récupérer le fichier kubeconfig »oks-cli cluster kubeconfig --cluster-name my-cluster --project-name my-project > kubeconfig.yamlexport KUBECONFIG=./kubeconfig.yamlTester le cluster
Section intitulée « Tester le cluster »kubectl get nodesCréer la demande de peering depuis OKS
Section intitulée « Créer la demande de peering depuis OKS »Crée un fichier peering-request.yaml :
apiVersion: oks.dev/v1betakind: NetPeeringRequestmetadata: name: peering-requestspec: accepterNetId: vpc-xxxxxxxx # ID du VPC de la VM accepterOwnerId: "123456789012" # Account ID du réseau cibleApplique la ressource :
kubectl apply -f peering-request.yamlVérifier l’état du peering
Section intitulée « Vérifier l’état du peering »Après l’application, vérifie que la demande a bien été prise en compte et qu’elle a généré un NetPeeringId :
kubectl get nprExemple de sortie :
NAME SOURCE NET ID ACCEPTER NET ID NET PEERING ID STATE NAME STATE MESSAGEpeering-request vpc-oks123456 vpc-a9321987 pcx-0123abcd pending-acceptance Pending acceptance by 123904561278Note le
NET PEERING ID(ex:pcx-0123abcd) pour l’étape d’acceptation.
Accepter le peering côté réseau de la VM
Section intitulée « Accepter le peering côté réseau de la VM »Utilise osc-cli (ou Cockpit) pour accepter la demande :
osc-cli api AcceptNetPeering \ --profile "<profile_name>" \ --NetPeeringId "pcx-0123abcd"Ajouter la route côté VPC de la VM
Section intitulée « Ajouter la route côté VPC de la VM »Ajoute une route vers le CIDR du projet OKS via la connexion de peering :
osc-cli api CreateRoute \ --profile "<profile_name>" \ --RouteTableId "rtb-xxxxxxxx" \ # table de routage associée au subnet de la VM --DestinationIpRange "10.50.0.0/16" \ # remplace par le CIDR exact de ton projet OKS --NetPeeringId "pcx-0123abcd"
> Dans la plupart des cas, le routage côté OKS est géré automatiquement. Si nécessaire, contacte le support OKS pour une configuration avancée.Autoriser le trafic dans les Security Groups
Section intitulée « Autoriser le trafic dans les Security Groups »Modifie le Security Group de la VM pour autoriser le trafic entrant depuis le CIDR OKS (ex: 10.50.0.0/16) sur les ports nécessaires :
- ICMP (tests de ping)
- SSH/HTTP/HTTPS selon les besoins
Tester la connectivité
Section intitulée « Tester la connectivité »Lance un pod temporaire depuis le cluster OKS :
kubectl run -it peeringtest-pod --image=alpine --restart=Never -- shDepuis le pod, teste la connectivité vers l’IP privée de la VM :
ping <IP_PRIVEE_VM>✅ Attendu : si la configuration est correcte (peering actif, routes à jour, Security Groups ouverts), la réponse au ping s’affiche.
Tu peux aussi tester une application (HTTP) si elle est exposée sur la VM :
apk add --no-cache curlcurl -m 5 http://<IP_PRIVEE_VM>:80Exemple de résultat attendu :
PING 10.0.1.49 (10.0.1.49): 56 data bytes64 bytes from 10.0.1.49: seq=110 ttl=60 time=1.39 ms64 bytes from 10.0.1.49: seq=111 ttl=60 time=1.29 ms...Nettoyage
Section intitulée « Nettoyage »Supprime la ressource côté OKS :
kubectl delete -f peering-request.yamlSupprime la route et le peering côté VPC de la VM (adapte les IDs) :
osc-cli api DeleteRoute \ --profile "<profile_name>" \ --RouteTableId "rtb-xxxxxxxx" \ --DestinationIpRange "10.50.0.0/16"
osc-cli api DeleteNetPeering \ --profile "<profile_name>" \ --NetPeeringId "pcx-0123abcd"Conclusion
Section intitulée « Conclusion »- Le peering permet la communication privée entre OKS et un VPC de VM
- Les routes et Security Groups sont indispensables pour autoriser le trafic
- Les tests depuis un pod OKS valident la connectivité bout-en-bout