Utiliser Istio en tant que module complémentaire de cluster
Découvrez comment installer, configurer et utiliser Istio en tant que module complémentaire de grappe afin de simplifier la gestion du trafic, la sécurité, les connexions et l'observabilité dans les grappes que vous avez créées avec Kubernetes Engine (OKE).
L'utilisation d'Istio en tant que module complémentaire de cluster (le " module complémentaire Istio ") plutôt qu'en tant que programme autonome simplifie la configuration et la maintenance continue. Vous pouvez plus simplement :
- Activer ou désactiver Istio.
- Option d'inclusion et désactivation des mises à jour de version automatiques par Oracle.
- Sélectionnez les versions du module complémentaire Istio.
- Gérer les personnalisations propres à un module complémentaire à l'aide des arguments de configuration de paire clé-valeur approuvés.
Lorsque vous déployez Istio en tant que module complémentaire de grappe à l'aide de Kubernetes Engine, vous pouvez éventuellement créer une passerelle entrante Istio pour acheminer les demandes HTTP et HTTPS entrantes. Vous pouvez également utiliser d'autres entrées prises en charge pour acheminer le trafic vers le service approprié exécuté sur la grappe. Notez que l'accessibilité de la passerelle entrante Istio dépend du type de sous-réseau de l'équilibreur de charge (public ou privé) spécifié pour la grappe.
Dans le cas du module complémentaire Istio, vous utilisez des arguments de configuration de paire clé-valeur approuvés pour effectuer des personnalisations propres au module complémentaire pour les paramètres de configuration à l'échelle du maillage (voir Arguments de configuration du module complémentaire Istio). Pour d'autres tâches de configuration, telles que la gestion des ressources de maillage, vous utilisez istioctl (l'outil de ligne de commande Istio) ou d'autres outils pris en charge par Istio. Si vous configurez le module complémentaire Istio à l'aide des arguments approuvés et que vous voulez conserver les personnalisations lorsque la version du module complémentaire est mise à jour automatiquement par Oracle, réglez l'argument de configuration customizeConfigMap
à true
. Si vous ne réglez pas l'argument de configuration customizeConfigMap
à true
, les personnalisations sont abandonnées lorsqu'Oracle met à jour le module complémentaire. Toutes les personnalisations que vous effectuez à l'aide d'istioctl (ou d'un autre outil pris en charge par Istio) sont toujours abandonnées lorsqu'Oracle met à jour le module complémentaire.
Si vous utilisez des graphiques Helm et Helm pour configurer et déployer des applications Kubernetes, notez que Helm ne peut mettre à jour ou supprimer que les ressources qu'il a créées. Par conséquent, pour permettre à Helm de gérer le module complémentaire Istio :
- Utilisez des graphiques Helm pour générer les configurations istio et istio-sidecar-injector.
- Réglez l'argument de configuration
customizeConfigMap
àtrue
lors du déploiement du module complémentaire Istio.
Si vous décidez qu'Oracle mette à jour automatiquement le module complémentaire Istio, Oracle effectuera une mise à niveau sur place lorsque de nouvelles versions d'Istio seront disponibles. Lors de la mise à niveau, Oracle met automatiquement à jour le plan de contrôle Istio (istiod) et la passerelle d'entrée vers la version la plus récente. Notez qu'Oracle ne met pas à jour automatiquement les side-car de plan de données Istio, de sorte que ces side-car restent à l'ancienne version. Il vous incombe de mettre à jour manuellement le plan de données Istio en redémarrant tous les pods à l'aide de sidecars Istio à l'aide de la commande kubectl rollout restart deployment
. Même si le plan de contrôle Istio est rétrocompatible avec les anciennes versions de side-car, si votre priorité est de vous assurer qu'il n'y a aucun temps d'arrêt, nous vous recommandons de mettre à niveau Istio vous-même manuellement plutôt que de faire mettre automatiquement à jour le module complémentaire Istio par Oracle. Voir Mises à niveau sur place dans la documentation Istio.
Ces sections décrivent comment utiliser le module complémentaire Istio pour gérer la communication et le réseautage entre les services :
- Déploiement du module complémentaire Istio
- Mise à jour du module complémentaire Istio
- Désactivation (et suppression) du module complémentaire Istio
Notez que les produits de maillage de services (tels que Istio et Linkerd) sont pris en charge lors de l'utilisation du plugiciel CNI de réseau de pods natifs du VCN OCI pour le réseau de pods. Notez qu'à l'exception du module complémentaire Istio, la prise en charge est actuellement limitée à Oracle Linux 7 (la prise en charge d'Oracle Linux 8 est planifiée). Le module complémentaire Istio est pris en charge à la fois avec Oracle Linux 7 et Oracle Linux 8. Les noeuds de travail doivent exécuter Kubernetes 1.26 (ou version ultérieure).
Notez également que vous ne pouvez pas utiliser le module complémentaire Istio avec des grappes pour lesquelles Istio est déjà installé en tant que programme autonome (ni avec des grappes pour lesquelles Oracle Cloud Infrastructure Service Mesh est déjà installé, qui est maintenant en fin de vie).
Vous pouvez utiliser Istio avec des groupes de noeuds gérés, mais pas avec des groupes de noeuds virtuels.
Déploiement du module complémentaire Istio
Les instructions des étapes ci-dessous décrivent comment déployer le maillage de services Istio en tant que module complémentaire de grappe (le " module complémentaire Istio ") pour simplifier la gestion du trafic, la sécurité, les connexions et l'observabilité dans les grappes que vous avez créées avec le moteur Kubernetes :
- Étape 1 : Créer le fichier de configuration du module complémentaire Istio
- Étape 2 : Déployez le module complémentaire Istio sur le cluster et vérifiez que le déploiement a réussi
- Étape 3 : Activer l'injection de side-car Envoy
- Étape 4 : Déployer une application et observer les conteneurs sidecar Envoy
Pour un exemple concret, voir Exemple : Déploiement d'Istio en tant que module complémentaire de grappe.
Étape 1 : Créer le fichier de configuration du module complémentaire Istio
Ces instructions décrivent comment créer un fichier de configuration de module complémentaire Istio pour vous permettre de déployer le module complémentaire Istio à l'aide de l'interface de ligne de commande. Le fichier de configuration contient des arguments de configuration de paire clé/valeur approuvés. Vous devez créer un fichier de configuration lorsque vous déployez le module complémentaire à l'aide de l'interface de ligne de commande (ou de l'API). Vous pouvez également utiliser la console pour déployer le module complémentaire Istio, auquel cas vous spécifiez des arguments de configuration dans l'interface utilisateur. Pour plus d'informations sur le déploiement du module complémentaire Istio à l'aide de la console, voir Installation d'un module complémentaire de grappe.
-
Dans un éditeur approprié, créez un fichier JSON avec le nom de votre choix (ces instructions supposent que le fichier est appelé
enableistio.json
) contenant les éléments suivants :{ "addonName": "Istio", "configurations": [ ] }
Ce contenu est suffisant pour activer le module complémentaire Istio.
- (Facultatif) Dans le fichier
enableistio.json
, spécifiez si la passerelle entrante Istio doit être installée, comme suit :- Pour installer la passerelle entrante Istio, mettez à jour le fichier
enableistio.json
comme suit :{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" } ] }
- Si vous ne voulez pas installer la passerelle entrante Istio, mettez à jour le fichier
enableistio.json
comme suit :{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "false" } ] }
Notez que si vous n'incluez pas
enableIngressGateway
dans le fichier de configuration, le comportement par défaut n'est pas d'installer la passerelle entrante Istio (équivalent au réglage deenableIngressGateway
àfalse
) - Pour installer la passerelle entrante Istio, mettez à jour le fichier
-
(Facultatif) Dans le fichier
enableistio.json
que vous avez créé, spécifiez d'autres arguments de configuration pour personnaliser le module complémentaire Istio. Pour plus d'informations sur les arguments de configuration que vous pouvez définir, voir Arguments de configuration du module complémentaire Istio. - (Facultatif) Si vous voulez conserver les personnalisations que vous effectuez au module complémentaire Istio si la version du module complémentaire est mise à jour automatiquement par Oracle, réglez l'argument
customizeConfigMap
àtrue
. Par exemple :- Pour installer la passerelle entrante Istio et conserver les personnalisations, mettez à jour le fichier
enableistio.json
comme suit :{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" }, { "key": "customizeConfigMap", "value": "true" } ] }
- Si vous ne voulez pas installer la passerelle entrante Istio mais que vous voulez conserver les personnalisations, mettez à jour le fichier
enableistio.json
comme suit :{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "false" }, { "key": "customizeConfigMap", "value": "true" } ] }
Notez que si vous n'incluez pas
customizeConfigMap
dans le fichier de configuration, le comportement par défaut est d'abandonner les personnalisations si la version du module complémentaire est mise à jour automatiquement par Oracle (équivalent au réglage decustomizeConfigMap
àfalse
)
- Pour installer la passerelle entrante Istio et conserver les personnalisations, mettez à jour le fichier
- Enregistrez et fermez le fichier
enableistio.json
.
Étape 2 : Déployez le module complémentaire Istio sur le cluster et vérifiez que le déploiement a réussi
Ces instructions décrivent comment déployer le module complémentaire Istio à l'aide de l'interface de ligne de commande et d'un fichier de configuration. Vous pouvez également déployer le module complémentaire à l'aide de la console et de l'API. Pour plus d'informations, voir Installation d'un module complémentaire de grappe.
-
Si vous ne l'avez pas encore fait, suivez les étapes pour configurer le fichier de configuration kubeconfig de la grappe et (s'il y a lieu) définissez la variable d'environnement KUBECONFIG pour qu'elle pointe vers le fichier. Notez que vous devez configurer votre propre fichier kubeconfig. Vous ne pouvez pas accéder à une grappe à l'aide d'un fichier kubeconfig configuré par un autre utilisateur. Voir Configuration de l'accès aux grappes.
- Vérifiez que le module complémentaire Istio n'a pas déjà été installé sur le cluster en entrant :
oci ce cluster list-addons --cluster-id <cluster-ocid>
où
<cluster-ocid>
est l'OCID de la grappe sur laquelle vous voulez déployer le module complémentaire Istio. -
Déployez le module complémentaire Istio sur le cluster en entrant :
oci ce cluster install-addon --addon-name Istio --cluster-id <cluster-ocid> --from-json file://./<path-to-config-file>
où :
--cluster-id <cluster-ocid>
est l'OCID de la grappe dans laquelle vous voulez déployer le module complémentaire Istio.--from-json file://<path-to-config-file>
indique l'emplacement du fichier de configuration du module complémentaire Istio que vous avez créé précédemment. Par exemple,--from-json file://./enableistio.json
Par exemple :
oci ce cluster install-addon --addon-name Istio --from-json file://./enableistio.json --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr
Une demande de travail est créée pour déployer le module complémentaire Istio.
-
Confirmez le déploiement réussi du module complémentaire Istio (et de la passerelle entrante Istio, si vous l'avez spécifié dans le fichier de configuration du module complémentaire Istio), comme suit :
- Vérifiez que le module complémentaire Istio a été installé sur le cluster en entrant :
oci ce cluster list-addons --cluster-id <cluster-ocid>
En supposant un déploiement réussi, la sortie affiche le module complémentaire Istio avec un état de cycle de vie ACTIVE. Par exemple :
{ "data": [ { "addon-error": null, "current-installed-version": "v1.19.0", "lifecycle-state": "ACTIVE", "name": "Istio", "time-created": "2023-11-06T11:21:11+00:00", "version": null } ] }
- Vérifiez que le pod istiod (plan de contrôle Istio), ainsi que le pod istio-ingressgateway si vous l'avez spécifié dans le fichier de configuration, s'exécutent dans l'espace de noms istio-système en entrant :
kubectl get pods -n istio-system
En supposant un déploiement réussi, la sortie affiche les pods dont le statut est En cours d'exécution. Par exemple :
NAME READY STATUS RESTARTS AGE istio-ingressgateway-df7d86548-n2vxr 1/1 Running 0 102s istiod-65d95bd5f9-vb2qk 1/1 Running 0 101s
- Si vous avez spécifié la passerelle entrante Istio dans le fichier de configuration, vérifiez que le service istio-ingressgateway a été déployé avec succès en entrant :
kubectl get svc istio-ingressgateway -n istio-system
En supposant un déploiement réussi, la sortie affiche le service istio-ingressgateway en tant que service de type LoadBalancer et (si le sous-réseau d'équilibreur de charge de la grappe est public) avec une adresse IP accessible publiquement. Par exemple :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.96.31.174 <EXTERNAL-IP> 15021:30089/TCP,80:31662/TCP,443:32217/TCP 2m50s
- Vérifiez que le module complémentaire Istio a été installé sur le cluster en entrant :
Étape 3 : Activer l'injection de side-car Envoy
Pour permettre à Istio d'injecter le side-car Envoy dans chaque service afin d'assurer la communication, la configuration et la sécurité :
- Créez l'espace de noms dans lequel déployer les applications (si l'espace de noms n'existe pas déjà) en entrant :
kubectl create namespace <namespace-name>
- Définissez l'espace de noms dans lequel déployer les applications comme espace de noms par défaut en entrant :
kubectl config set-context --current --namespace=<namespace-name>
- Vérifiez que l'espace de noms dans lequel déployer des applications est l'espace de noms par défaut en entrant :
kubectl config view --minify | grep namespace
- Ajoutez l'étiquette
istio-injection=enabled
à l'espace de noms pour installer automatiquement le side-car Envoy dans les nouveaux pods d'application déployés dans l'espace de noms en entrant :kubectl label namespace <namespace-name> istio-injection=enabled
- Vérifiez que l'espace de noms est correctement étiqueté en entrant :
kubectl get namespace -L istio-injection
Étape 4 : Déployer une application et observer les conteneurs sidecar Envoy
Pour confirmer qu'Istio est utilisé pour assurer la communication, la configuration et la sécurité d'une application :
- Déployer l'application. Par exemple, en entrant :
kubectl apply -f <manifest-name>
- Vérifiez que les services de l'application ont été créés en entrant :
kubectl get services
- Vérifiez que les pods de l'application ont le statut Running en entrant :
kubectl get pods
La sortie montre que chaque pod d'application comporte deux conteneurs. Pour chaque pod, un conteneur est le conteneur d'application, et l'autre conteneur est le side-car Envoy injecté par Istio.
- Vérifiez que l'un des pods de l'application comporte deux conteneurs (dont l'un est le conteneur de l'application, et l'autre est le side-car Envoy injecté par Istio) en entrant :
kubectl get pods <application-pod-name> -o jsonpath='{.spec.containers[*].name}'
Notez que les applications ne sont pas accessibles par défaut depuis l'extérieur de la grappe après l'activation de la passerelle entrante. Pour un exemple expliquant comment rendre une application accessible, voir Exemple : Déploiement d'Istio en tant que module complémentaire de grappe.
Exemple : Déploiement d'Istio en tant que module complémentaire de grappe
Dans cet exemple, vous installez le module complémentaire Istio et la passerelle entrante Istio sur une grappe que vous avez créée avec Kubernetes Engine. Après avoir installé le module complémentaire Istio et la passerelle entrante, vous déployez l'exemple d'application Bookinfo d'Istio et rendez l'application accessible depuis l'extérieur du cluster :
- Pour plus de commodité, réglez une variable d'environnement nommée CLUSTER_ID à la valeur de l'OCID de la grappe en entrant :
export CLUSTER_ID=<cluster-ocid>
- Créez un fichier JSON nommé
enableistio-ig.json
qui contient les éléments suivants :{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" } ] }
Ce fichier de configuration installe le module complémentaire Istio et la passerelle entrante Istio.
- Installez le module complémentaire Istio et la passerelle entrante Istio sur la grappe en entrant :
oci ce cluster install-addon --addon-name Istio --cluster-id $CLUSTER_ID --from-json file://./enableistio-ig.json
Une demande de travail est créée pour installer le module complémentaire Istio.
- Vérifiez l'installation réussie du module complémentaire Istion et de la passerelle entrante Istio :
- Vérifiez que le module complémentaire Istio a été installé avec succès en entrant :
oci ce cluster list-addons --cluster-id $CLUSTER_ID
En supposant un déploiement réussi, la sortie affiche le module complémentaire Istio avec un état de cycle de vie ACTIVE. Par exemple, les sorties suivantes affichent le module complémentaire Istio, ainsi que plusieurs modules complémentaires de cluster essentiels :
{ "data": [ { "addon-error": null, "current-installed-version": "v1.10.1-multiarch-7", "lifecycle-state": "ACTIVE", "name": "CoreDNS", "time-created": "2023-11-06T10:35:26+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v1.19.0", "lifecycle-state": "ACTIVE", "name": "Istio", "time-created": "2023-11-06T11:21:11+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v1.27.2-oke.0.2.20-multiarch-98", "lifecycle-state": "ACTIVE", "name": "KubeProxy", "time-created": "2023-11-06T10:35:26+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v2.0.1", "lifecycle-state": "ACTIVE", "name": "OciVcnIpNative", "time-created": "2023-11-06T10:35:26+00:00", "version": null } ] }
- Vérifiez que le pod du plan de contrôle Istio (istiod) et le pod istio-ingressgateway s'exécutent tous les deux dans l'espace de noms istio-système en entrant :
kubectl get pods -n istio-system
En supposant un déploiement réussi, la sortie affiche les deux pods dont le statut est En cours d'exécution. Par exemple :
NAME READY STATUS RESTARTS AGE istio-ingressgateway-df7d86548-n2vxr 1/1 Running 0 102s istiod-65d95bd5f9-vb2qk 1/1 Running 0 101s
- Vérifiez que le service istio-ingressgateway a été déployé avec succès en entrant :
kubectl get svc istio-ingressgateway -n istio-system
En supposant un déploiement réussi, la sortie affiche le service istio-ingressgateway en tant que service de type LoadBalancer et (si le sous-réseau d'équilibreur de charge de la grappe est public) avec une adresse IP accessible publiquement. Par exemple :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.96.31.174 <EXTERNAL-IP> 15021:30089/TCP,80:31662/TCP,443:32217/TCP 2m50s
- Vérifiez que le module complémentaire Istio a été installé avec succès en entrant :
- Créez un espace de noms dans lequel déployer l'exemple d'application Bookinfo :
- Créez l'espace de noms
bookinfo
en entrant :kubectl create namespace bookinfo
- Définissez l'espace de noms
bookinfo
comme espace de noms par défaut en entrant :kubectl config set-context --current --namespace=bookinfo
- Vérifiez que bookinfo est l'espace de noms par défaut en entrant :
kubectl config view --minify | grep namespace
- Créez l'espace de noms
- Ajoutez l'étiquette
istio-injection=enabled
à l'espace de noms bookinfo pour installer automatiquement le side-car Envoy dans tous les nouveaux pods d'application déployés dans l'espace de noms :- Ajoutez l'étiquette à l'espace de noms bookinfo en entrant :
kubectl label namespace bookinfo istio-injection=enabled
- Vérifiez que l'espace de noms bookinfo est étiqueté correctement en entrant :
kubectl get namespace -L istio-injection
- Ajoutez l'étiquette à l'espace de noms bookinfo en entrant :
- Déployez l'exemple d'application Bookinfo en entrant :
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/platform/kube/bookinfo.yaml
En supposant un déploiement réussi, la sortie affiche plusieurs déploiements et services créés sur le cluster, comme suit :
service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created
- Vérifiez le déploiement réussi de l'exemple d'application Bookinfo :
- Vérifiez que les services ont été créés avec succès en entrant :
kubectl get services
En supposant un déploiement réussi, la sortie affiche les services créés sur le cluster, comme suit :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.96.72.219 <none> 9080/TCP 54s productpage ClusterIP 10.96.65.83 <none> 9080/TCP 54s ratings ClusterIP 10.96.101.51 <none> 9080/TCP 54s reviews ClusterIP 10.96.14.9 <none> 9080/TCP 54s
- Vérifiez que tous les pods ont le statut Running en entrant :
kubectl get pods
En supposant un déploiement réussi, la sortie affiche les pods en cours d'exécution, comme suit :
NAME READY STATUS RESTARTS AGE details-v1-5f4d584748-hcm9t 2/2 Running 0 81s productpage-v1-564d4686f-48lpw 2/2 Running 0 80s ratings-v1-686ccfb5d8-bpl8t 2/2 Running 0 81s reviews-v1-86896b7648-6c8d4 2/2 Running 0 81s reviews-v2-b7dcd98fb-fsv7c 2/2 Running 0 81s reviews-v3-5c5cc7b6d-qgrv2 2/2 Running 0 81s
La sortie montre que chaque pod d'application comporte deux conteneurs. Pour chaque pod, un conteneur est le conteneur d'application, et l'autre conteneur est le side-car Envoy injecté par Istio.
- Vérifiez que le pod
ratings
comporte deux conteneurs (l'un d'entre eux est le conteneur d'application et l'autre est le side-car Envoy injecté par Istio). Par exemple, en entrant :kubectl get pods ratings-v1-686ccfb5d8-bpl8t -o jsonpath='{.spec.containers[*].name}'
La sortie montre deux conteneurs, le conteneur d'application (ratings) et le conteneur de side-car Envoy injecté par Istio (istio-proxy) :
ratings istio-proxy
- Vérifiez que l'application est en cours d'exécution en envoyant une commande curl à partir d'un pod :
kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>" <title>Simple Bookstore App</title>
Notez que l'exemple d'application Bookinfo n'est pas encore accessible depuis l'extérieur de la grappe, même après l'activation de la passerelle entrante. Notez également que l'accessibilité de la passerelle entrante Istio dépend du type de sous-réseau de l'équilibreur de charge (public ou privé) spécifié pour la grappe.
- Vérifiez que les services ont été créés avec succès en entrant :
-
Rendre l'exemple d'application Bookinfo accessible depuis l'extérieur du cluster :
- Mappez le trafic entrant de l'exemple de déploiement à la passerelle entrante Istio en entrant :
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/networking/bookinfo-gateway.yaml
La sortie montre que la passerelle Kubernetes et les ressources VirtualService ont été créées :
gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created
- Mappez le trafic entrant de l'exemple de déploiement à la passerelle entrante Istio en entrant :
- Vérifiez que l'exemple d'application Bookinfo est accessible et qu'elle utilise la passerelle entrante Istio :
- Définissez les variables d'environnement pour l'hôte entrant et le port entrant en entrant :
export INGRESS_NAME=istio-ingressgateway
export INGRESS_NS=istio-system
export INGRESS_HOST=$(kubectl -n "$INGRESS_NS" get service "$INGRESS_NAME" -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export INGRESS_PORT=$(kubectl -n "$INGRESS_NS" get service "$INGRESS_NAME" -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
- Confirmez que l'exemple d'application Bookinfo est accessible et utilisez la passerelle entrante Istio en entrant :
curl -s "http://${INGRESS_HOST}:${INGRESS_PORT}/productpage" | grep -o "<title>.*</title>"
En supposant un déploiement réussi, la sortie affiche les services créés sur le cluster, comme suit :
<title>Simple Bookstore App</title>
- Consultez la page Web Bookinfo dans un navigateur en ouvrant l'URL suivante :
http://${INGRESS_HOST}:${INGRESS_PORT}/productpage
- Dans le navigateur, actualisez la page Web Bookinfo plusieurs fois pour voir différentes versions des critiques affichées sur la page.
- Définissez les variables d'environnement pour l'hôte entrant et le port entrant en entrant :
- (Facultatif) Après avoir terminé l'exemple, vous pouvez maintenant supprimer les ressources que vous avez créées :
- Supprimez l'exemple d'application Bookinfo en entrant :
kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/platform/kube/bookinfo.yaml
-
Désactivez (et éventuellement supprimez) le module complémentaire Istio à l'aide de la commande oci ce cluster disable-addon, en entrant :
oci ce cluster disable-addon --addon-name Istio --cluster-id $CLUSTER_ID --is-remove-existing-add-on <true|false>
où
--is-remove-existing-add-on <true|false>
spécifie soit de supprimer complètement le module complémentaire Istio (lorsqu'il est réglé àtrue
), soit de ne pas supprimer le module complémentaire, mais simplement de le désactiver et de ne pas l'utiliser (lorsqu'il est réglé àfalse
). Si vous désactivez le module complémentaire, Oracle ne le met plus à jour automatiquement lorsque de nouvelles versions deviennent disponibles.Par exemple :
oci ce cluster disable-addon --addon-name Istio --cluster-id $CLUSTER_ID --is-remove-existing-add-on true
Une demande de travail est créée pour désactiver (et éventuellement supprimer) le module complémentaire Istio.
- Supprimez Istio CustomResourceDefinitions (CRD), qui ne sont pas supprimés par défaut, en entrant :
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')
- Supprimez les ressources de maillage Istio (telles que la passerelle Kubernetes et les ressources VirtualService), qui ne sont pas gérées par le module complémentaire Istio, en entrant :
kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/networking/bookinfo-gateway.yaml
- Supprimez l'exemple d'application Bookinfo en entrant :
Mise à jour du module complémentaire Istio
Ces instructions décrivent comment mettre à jour le module complémentaire Istio à l'aide de l'interface de ligne de commande et d'un fichier de configuration. Vous pouvez également mettre à jour le module complémentaire à l'aide de la console et de l'API. Pour plus d'informations, voir Mise à jour d'un module complémentaire de grappe.
-
Ouvrez le fichier de configuration du module complémentaire Istio dans un éditeur approprié.
-
Ajoutez, supprimez ou modifiez les arguments de configuration dans le fichier de configuration, au besoin. Pour plus d'informations sur les arguments que vous pouvez définir, voir Arguments de configuration du module complémentaire Istio.
- Si vous avez spécifié qu'Oracle doit mettre à jour automatiquement la version du module complémentaire Istio et que vous voulez conserver les modifications de configuration, réglez l'argument de configuration
customizeConfigMap
àtrue
(s'il n'est pas déjà défini). - Mettez à jour le module complémentaire Istio à l'aide de la commande oci ce cluster update-addon, en entrant :
oci ce cluster update-addon --addon-name Istio --from-json file://<path-to-config-file> --cluster-id <cluster-ocid>
où :
--cluster-id <cluster-ocid>
est l'OCID de la grappe dans laquelle vous voulez mettre à jour le module complémentaire Istio.--from-json file://<path-to-config-file>
indique l'emplacement du fichier de configuration du module complémentaire Istio à utiliser lors de la mise à jour du module complémentaire. Par exemple,--from-json file://./istio-add-on.json
Par exemple :
oci ce cluster update-addon --addon-name Istio --from-json file://./istio-add-on.json --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr
Une demande de travail est créée pour mettre à jour le module complémentaire Istio.
- (Facultatif) Consultez le statut des pods istiod et istio-ingressgateway pour observer la progression, en entrant :
kubectl get pods -n istio-system
Désactivation (et suppression) du module complémentaire Istio
Ces instructions décrivent comment désactiver et supprimer le module complémentaire Istio à l'aide de l'interface de ligne de commande et d'un fichier de configuration. Vous pouvez également mettre à jour le module complémentaire à l'aide de la console et de l'API. Pour plus d'informations, voir Désactivation (et suppression) d'un module complémentaire de grappe.
-
Désactivez (et éventuellement supprimez) le module complémentaire Istio à l'aide de la commande oci ce cluster disable-addon, en entrant :
oci ce cluster disable-addon --addon-name Istio --cluster-id <cluster-ocid> --is-remove-existing-add-on <true|false>
où :
--cluster-id <cluster-ocid>
est l'OCID de la grappe dans laquelle vous voulez désactiver (et éventuellement supprimer) le module complémentaire Istio.--is-remove-existing-add-on <true|false>
spécifie soit de supprimer complètement le module complémentaire Istio (lorsqu'il est réglé àtrue
), soit de ne pas supprimer le module complémentaire, mais simplement de le désactiver et de ne pas l'utiliser (lorsqu'il est réglé àfalse
). Si vous désactivez le module complémentaire Istio, Oracle ne met plus à jour automatiquement la version du module complémentaire lorsque de nouvelles versions deviennent disponibles.
Par exemple :
oci ce cluster disable-addon --addon-name Istio --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr --is-remove-existing-add-on true
Une demande de travail est créée pour désactiver (et éventuellement supprimer) le module complémentaire Istio.
- (Facultatif) Consultez le statut des pods istiod et istio-ingressgateway pour observer la progression, en entrant :
kubectl get pods -n istio-system
- (Facultatif) Supprimez Istio CustomResourceDefinitions (CRD), qui ne sont pas supprimés par défaut, en entrant :
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')
- (Facultatif) Supprimez les ressources de maillage Istio (telles que la passerelle Kubernetes et les ressources VirtualService), qui ne sont pas gérées par le module complémentaire Istio, à l'aide de la commande
kubectl delete
.