Abilita inserimento Sidecar proxy istio in Oracle Cloud Native Environment
Introduzione
Istio è una rete di servizi che fornisce un livello di infrastruttura separato per gestire la comunicazione tra i servizi. La comunicazione di rete è astratta dai servizi stessi ed è gestita dai proxy. Istio utilizza un design sidecar, il che significa che i proxy di comunicazione vengono eseguiti nei propri contenitori accanto a ogni contenitore di servizi. Per rendere effettiva l'iniezione sidecar automatica, lo spazio di nomi utilizzato da un'applicazione deve essere etichettato con istio-injection=enabled.
Obiettivi
Questa esercitazione descrive come abilitare l'iniezione automatica di sidecar proxy e, quindi, sfruttare le funzioni di Istio in Oracle Cloud Native Environment.
In questa esercitazione viene distribuita un'applicazione senza l'iniezione automatica di sidecar proxy abilitata. Quindi abilitare l'iniezione automatica sidecar proxy e distribuire di nuovo l'applicazione. È quindi possibile verificare che i pod presenti nella rete del servizio eseguano un proxy sidecar Istio.
Prerequisiti
Oracle Cloud Native Environment Release 1.4 distribuito, incluso un cluster Kubernetes. Vedere le esercitazioni all'indirizzo:
Distribuisci un ambiente nativo Oracle Cloud ad alta disponibilità
Distribuisci ambiente nativo Oracle Cloud
È inoltre necessario distribuire una rete di servizi utilizzando il modulo Istio. Per ulteriori informazioni sulla distribuzione del modulo Istio, consulta la documentazione di Oracle Cloud Native Environment.
Verificare che Istio sia installato e in esecuzione
In un nodo del piano di controllo utilizzare il comando riportato di seguito per mostrare le distribuzioni nello spazio di nomi istio-system.
kubectl get deployment -n istio-system
L'output deve essere simile al seguente:
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
Crea una distribuzione NGINX semplice
Utilizzare il comando seguente per creare una nuova distribuzione denominata hello-world che esegua l'immagine nginx.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Visualizza i pod Kubernetes nello spazio di nomi predefinito
Usare il comando seguente per elencare i pod.
kubectl get pods
L'output deve essere simile al seguente:
NAME READY STATUS RESTARTS AGE
hello-world-... 1/1 Running 0 18s
Si noti che la colonna READY è 1/1 che indica che l'iniezione automatica sidecar proxy Istio non è abilitata.
Elimina la distribuzione NGINX
Utilizzare il comando seguente per eliminare la distribuzione hello-world.
kubectl delete deployments hello-world
Abilita iniezione sidecar proxy automatica
Per rendere effettiva l'iniezione sidecar automatica, lo spazio di nomi utilizzato da un'applicazione deve essere etichettato con istio-injection=enabled. L'esempio seguente assegna etichette allo spazio dei nomi predefinito.
kubectl label namespace default istio-injection=enabled
Il comando kubectl get namespace conferma che l'etichetta dello spazio di nomi predefinito è corretta.
kubectl get namespace -L istio-injection
L'output deve essere simile al seguente:
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
È ora possibile visualizzare lo spazio di nomi predefinito include l'etichetta ISTIO_INJECTION.
Crea una distribuzione NGINX semplice
Utilizzare il comando seguente per creare una nuova distribuzione denominata hello-world che esegua l'immagine nginx.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Visualizza i pod Kubernetes nello spazio di nomi predefinito
Utilizzare il comando kubectl get pods per elencare i pod.
kubectl get pods
L'output deve essere simile al seguente:
NAME READY STATUS RESTARTS AGE
hello-world-... 2/2 Running 0 20s
Si noti che la colonna READY è 2/2, indicando che l'iniezione automatica sidecar proxy istio è abilitata e che i pod nella mesh eseguono un proxy sidecar Istio.
Disabilita iniezione sidecar proxy automatica
Rimuovere l'etichetta istio-injection=enabled dallo spazio di nomi predefinito utilizzando kubectl label come mostrato.
kubectl label namespace default istio-injection-
Il comando kubectl get namespace conferma che l'etichetta viene rimossa dallo spazio di nomi predefinito.
kubectl get namespace -L istio-injection
L'output deve essere simile al seguente:
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
Eliminare infine la distribuzione NGINX.
kubectl delete deployments hello-world
Per ulteriori informazioni
- Documentazione su Oracle Cloud Native Environment
- Documentazione a monte disponibile all'indirizzo https://istio.io/
- Formazione su Oracle Cloud Native Environment
- Curriculum Oracle Linux
- Sottoscrizione al corso di formazione su Oracle Linux
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di apprendimento gratuito sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare il sito Oracle Help Center.
Enable Istio Proxy Sidecar Injection in Oracle Cloud Native Environment
F49720-02
November 2021
Copyright © 2021, Oracle and/or its affiliates.