Activer l'injection du proxy Istio dans l'environnement natif Oracle Cloud
Introduction
Istio est un maillage de service qui fournit une couche d'infrastructure distincte pour gérer la communication entre services. La communication réseau est abstraite des services eux-mêmes et est gérée par les proxies. Istio utilise une conception en marge, ce qui signifie que les proxies de communication s'exécutent dans leurs propres conteneurs en regard de chaque conteneur de service. Pour mettre en oeuvre l'injection de la marge automatique, l'espace de noms à utiliser par une application doit être étiqueté avec istio-injection=enabled
.
Objectifs
Ce tutoriel vous explique comment activer l'injection secondaire par proxy automatique et ainsi tirer parti des fonctionnalités d'Istio dans l'environnement natif Oracle Cloud.
Dans ce tutoriel, vous déployez une application sans l'injection automatique de la marge proxy activée. Vous activez ensuite l'injection de la marge proxy automatique et déployez à nouveau l'application. Vous pouvez ensuite constater que les pods du maillage de service exécutent un proxy de séparation Istio.
Prérequis
Environnement natif Oracle Cloud version 1.4 déployé, cluster Kubernetes inclus. Reportez-vous aux tutoriels à l'adresse suivante :
Déployer un environnement natif Oracle Cloud hautement disponible
Déployer l'environnement natif Oracle Cloud
Vous devez également déployer un maillage de service à l'aide du module Istio. Pour plus d'informations sur le déploiement du module Istio, reportez-vous à la documentation relative à l'environnement natif Oracle Cloud.
Vérifier que Istio est installé et en cours d'exécution
Sur un noeud de plan de contrôle, utilisez la commande suivante pour afficher les déploiements dans l'espace de noms istio-system
.
kubectl get deployment -n istio-system
La sortie doit ressembler à ce qui suit :
NAME READY UP-TO-DATE AVAILABLE AGE
grafana 2/2 2 2 2m44s
istio-egressgateway 2/2 2 2 2m48s
istio-ingressgateway 2/2 2 2 2m48s
istiod 2/2 2 2 3m2s
prometheus-server 2/2 2 2 2m44s
Créer un déploiement NGINX simple
Utilisez la commande suivante pour créer un déploiement nommé hello-world
qui exécute l'image nginx
.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Affichage des pods Kubernetes dans l'espace de noms par défaut
Utilisez la commande suivante pour répertorier les pods.
kubectl get pods
La sortie doit ressembler à ce qui suit :
NAME READY STATUS RESTARTS AGE
hello-world-... 1/1 Running 0 18s
Notez que la colonne READY est 1/1, ce qui indique que l'injection de la marge du proxy automatique Istio n'est pas activée.
Supprimer le déploiement NGINX
Utilisez la commande suivante pour supprimer le déploiement hello-world
.
kubectl delete deployments hello-world
Activer l'injection de texte secondaire par proxy automatique
Pour mettre en oeuvre l'injection de la marge automatique, l'espace de noms à utiliser par une application doit être étiqueté avec istio-injection=enabled
. L'exemple suivant étiquette l'espace de noms par défaut.
kubectl label namespace default istio-injection=enabled
La commande kubectl get namespace
confirme que l'espace de noms par défaut est correctement étiqueté.
kubectl get namespace -L istio-injection
La sortie doit ressembler à ce qui suit :
NAME STATUS AGE ISTIO-INJECTION
default Active 23m enabled
externalip-validation-system Active 22m
istio-system Active 19m
kube-node-lease Active 23m
kube-public Active 23m
kube-system Active 23m
kubernetes-dashboard Active 22m
L'espace de noms par défaut comprend désormais le libellé ISTIO_INJECTION.
Créer un déploiement NGINX simple
Utilisez la commande suivante pour créer un déploiement nommé hello-world
qui exécute l'image nginx
.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Affichage des pods Kubernetes dans l'espace de noms par défaut
Utilisez la commande kubectl get pods
pour répertorier les pods.
kubectl get pods
La sortie doit ressembler à ce qui suit :
NAME READY STATUS RESTARTS AGE
hello-world-... 2/2 Running 0 20s
Notez que la colonne READY est 2/2, ce qui indique que l'injection de la marge par proxy automatique Istio est activée et que les pods du maillage exécutent un proxy istio sidecar.
Désactiver l'injection de la marge du proxy automatique
Supprimez le libellé istio-injection=enabled
de l'espace de noms par défaut à l'aide de kubectl label
, comme indiqué.
kubectl label namespace default istio-injection-
La commande kubectl get namespace
confirme que l'étiquette est supprimée de l'espace de noms par défaut.
kubectl get namespace -L istio-injection
La sortie doit ressembler à ce qui suit :
NAME STATUS AGE ISTIO-INJECTION
default Active 39m
externalip-validation-system Active 38m
istio-system Active 36m
kube-node-lease Active 39m
kube-public Active 39m
kube-system Active 39m
kubernetes-dashboard Active 38m
Enfin, supprimez le déploiement NGINX.
kubectl delete deployments hello-world
Pour plus d'informations
- Documentation sur l'environnement natif Oracle Cloud
- Documentation en amont à l'adresse https://istio.io/
- Cours sur l'environnement natif Oracle Cloud
- Cursus Oracle Linux
- Abonnement de formation Oracle Linux
Ressources de formation supplémentaires
Explorez d'autres exercices dans docs.oracle.com/learn ou accédez à des contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur de formation Oracle.
Pour consulter la documentation produit, accédez à Oracle Help Center.
Enable Istio Proxy Sidecar Injection in Oracle Cloud Native Environment
F49716-02
November 2021
Copyright © 2021, Oracle and/or its affiliates.