Abilitare le funzionalità facoltative su un control plane in-cluster
Questa pagina descrive come abilitare le funzionalità facoltative su Cloud Service Mesh con un control plane in-cluster.
Quando installi Cloud Service Mesh in-cluster, le
funzionalità abilitate per impostazione predefinita variano a seconda della piattaforma.
Puoi sostituire la configurazione predefinita e abilitare una funzionalità facoltativa includendo un file di overlay durante l'installazione (o l'upgrade) di Cloud Service Mesh. Un
file di overlay è un file YAML contenente una risorsa personalizzata (CR)
IstioOperator che utilizzi per configurare il control plane. Specifica una funzionalità per ogni file di overlay. Puoi aggiungere altri overlay e ogni file di overlay sostituisce la configurazione dei livelli precedenti.
Informazioni sui file di overlay
I file di overlay in questa pagina si trovano nel
anthos-service-mesh
pacchetto in GitHub. Questi file contengono personalizzazioni comuni della configurazione predefinita. Puoi utilizzare questi file così come sono o apportare modifiche aggiuntive in base alle esigenze.
Quando installi Cloud Service Mesh utilizzando lo script asmcli, puoi specificare uno o più file di overlay con le opzioni --option o --custom_overlay. Se non devi apportare modifiche ai file nel repository anthos-service-mesh, puoi utilizzare --option e lo script recupera il file da GitHub. In caso contrario, puoi apportare modifiche al file di overlay e quindi utilizzare l'opzione --custom_overlay per passarlo a asmcli.
| Non includere più CR in un unico file di overlay | Crea file di overlay separati per ogni CR |
|---|---|
![]() |
![]() |
Come abilitare le funzionalità facoltative
Gli esempi seguenti sono semplificati per mostrare solo l'utilizzo degli overlay personalizzati per abilitare le funzionalità facoltative. Sostituisci OTHER_FLAGS con i
flag di installazione richiesti.
Il comando asmcli install offre due modi per abilitare una funzionalità facoltativa. Il metodo che utilizzi dipende dal fatto che tu debba apportare modifiche al file di overlay.
Utilizza
--optionquando non devi apportare modifiche al file di overlay. Con--option,asmclirecupera il file dal repository GitHub, quindi devi disporre di una connessione a internet../asmcli install \ OTHER_FLAGS \ --option OPTION_NAMESostituisci
OPTION_NAMEcon l'opzione che vuoi abilitare. Assicurati di omettere l'estensione .yaml e di includere solo il nome del file di overlay, ad esempioiap-operatoreattached-cluster. Per un elenco di opzioni, consulta ilanthos-service-meshpacchetto.Utilizza
--custom_overlayquando devi personalizzare il file di overlay../asmcli install \ OTHER_FLAGS \ --custom_overlay PATH_TO_FILESostituisci
PATH_TO_FILEcon il percorso del file di overlay che vuoi utilizzare.
YAML per le funzionalità facoltative
Le sezioni seguenti forniscono il codice YAML per abilitare le funzionalità facoltative e supportate.
Modalità STRICT mTLS
La configurazione global.mtls.enabled è stata rimossa dalla CR IstioOperator per evitare problemi con gli upgrade e per fornire un'installazione più flessibile.
Per abilitare STRICT mTLS,
configura invece un
criterio di autenticazione peer.
Immagine proxy senza distribuzione
Istio fornisce immagini proxy basate su immagini di base senza distribuzione.
La seguente configurazione abilita le immagini senza distribuzione per l'intero Cloud Service Mesh. Una modifica del tipo di immagine richiede il riavvio e la reiniezione di ogni pod per avere effetto.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
image:
imageType: distroless
L'immagine senza distribuzione non contiene file binari diversi dal proxy. Pertanto, non è possibile eseguire exec di una shell o utilizzare curl, ping o altre utilità di debug all'interno del container.
Se esegui un comando curl, viene visualizzato il seguente errore:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: unable to start container process: exec: "curl": executable file not found in $PATH: unknown
Se esegui un comando shell, viene visualizzato il seguente errore:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "sh": executable file not found in $PATH: unknown
Se hai bisogno di accedere a questi strumenti per pod specifici, puoi sostituire imageType utilizzando la seguente annotazione del pod.
sidecar.istio.io/proxyImageType: debug
Dopo aver modificato il tipo di immagine di un deployment tramite l'annotazione, il deployment deve essere riavviato.
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
Per la maggior parte dei tipi di debug del proxy, istioctl proxy-cmd deve essere utilizzato, che non richiede un'immagine di base di debug.
Utilizzare un overlay personalizzato per il registro personalizzato
Puoi utilizzare un overlay personalizzato per i registri personalizzati, ad esempio se devi installare Cloud Service Mesh da un container registry personalizzato. Ad esempio:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
hub: {private_registry_url}
Di seguito è riportato un elenco di immagini per Cloud Service Mesh che devi eseguire il mirroring nel container registry personalizzato:
- Install-cni -
gke.gcr.io/asm/install-cni:1.29.5-asm.12 - Managed Data Plane -
gke.gcr.io/asm/mdp:1.29.5-asm.12 - Pilot -
gke.gcr.io/asm/pilot:1.29.5-asm.12 - Proxyv2 -
gke.gcr.io/asm/proxyv2:1.29.5-asm.12
Aggiungere immagini a un registro privato
Per eseguire il push delle immagini di Cloud Service Mesh in un registro privato, completa i seguenti passaggi.
-
Esegui il pull delle immagini di Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker pull gke.gcr.io/asm/pilot:1.29.5-asm.12 docker pull gke.gcr.io/asm/proxyv2:1.29.5-asm.12
-
Crea una variabile per l'URL del tuo registro privato:
Sostituisciexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URLcon l'URL del tuo registro privato. -
Tagga le immagini con l'URL del tuo registro privato:
docker tag gke.gcr.io/asm/install-cni:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker tag gke.gcr.io/asm/mdp:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.29.5-asm.12 docker tag gke.gcr.io/asm/proxyv2:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.29.5-asm.12 - Esegui il push delle immagini taggate nel tuo registro privato:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.29.5-asm.12 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.29.5-asm.12 - (Facoltativo) Se utilizzi un
servizio canonico, aggiungi le
immagini del servizio canonico al tuo registro privato.
- Esegui il pull delle immagini del servizio canonico di Cloud Service Mesh:
docker pull gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker pull gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 - Tagga le immagini con l'URL del tuo registro privato:
docker tag gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 \ ${PRIVATE_REGISTRY_URL}/gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker tag gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 - Esegui il push delle immagini taggate nel tuo registro privato:
docker push ${PRIVATE_REGISTRY_URL}/gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16
- Esegui il pull delle immagini del servizio canonico di Cloud Service Mesh:
Se puoi eseguire il pull delle immagini taggate dal tuo registro privato, la procedura è andata a buon fine.
Aumentare la durata del drain di terminazione
Per impostazione predefinita, Envoy attenderà cinque secondi (5s) il completamento delle connessioni esistenti quando un pod termina.
Il valore di terminationGracePeriodSeconds del pod deve essere maggiore del valore di terminationDrainDuration.
Per ulteriori informazioni, consulta Opzioni del mesh globale.
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
terminationDrainDuration: 30s
Abilitare i log di accesso
Per ulteriori informazioni, consulta Abilitare la registrazione degli accessi di Envoy.
Cloud Trace
Cloud Trace è disponibile con le installazioni di Cloud Service Mesh sulle seguenti piattaforme:
- GKE su Google Cloud
- Cluster GKE Enterprise on-premise se esegui l'installazione con l'autorità di certificazione di Cloud Service Mesh
Per ulteriori informazioni, consulta Accesso alle tracce.
Traffico in uscita tramite gateway in uscita
Ti consigliamo di installare un gateway iniettato come descritto in Installazione e upgrade dei gateway. L'iniezione, o iniezione automatica, si riferisce all'utilizzo di webhook di ammissione mutanti per modificare le specifiche dei pod al momento della creazione. Utilizzi l'iniezione per aggiungere la configurazione del sidecar proxy Envoy per i servizi del mesh o per configurare il proxy Envoy dei gateway.
Interfaccia di rete container di Istio
La modalità di abilitazione dell'interfaccia di rete container (CNI) di Istio dipende dall'ambiente in cui è installato Cloud Service Mesh.
Scegli il file di overlay che corrisponde alla tua piattaforma.
Abilitare CNI su GKE
Abilitare CNI on-premise
Abilitare i log sul traffico perGoogle Cloud
Per impostazione predefinita, l'installazione di Cloud Service Mesh con l'autorità di certificazione di Istio al di fuori di Google Cloud segnala le metriche a Prometheus. Utilizza questa opzione per abilitare la generazione di report dei log sul traffico o sia di Prometheus che di Stackdriver, in modo da poter utilizzare le dashboard di Cloud Service Mesh.
Solo Stackdriver
Stackdriver e Prometheus
Abilitare un bilanciatore del carico interno
Ti consigliamo di installare un
gateway iniettato come descritto in
Installazione e upgrade dei gateway per configurare un bilanciatore del carico interno su GKE. Quando configuri il servizio gateway,
includi l'annotazione: networking.gke.io/load-balancer-type: "Internal"
Gestione dei certificati esterni sul gateway in entrata
Per informazioni sull'abilitazione della gestione dei certificati esterni sul gateway in entrata utilizzando Envoy SDS, consulta Proteggere i gateway.

