Attivazione di funzionalità facoltative nel piano di controllo in-cluster
Questa pagina descrive come abilitare le funzionalità facoltative su un cluster in-cluster piano di controllo. Per informazioni su per il piano di controllo gestito, Configura Cloud Service Mesh gestito.
Quando installi Cloud Service Mesh nel cluster,
le funzionalità abilitate per impostazione predefinita variano in base alla piattaforma.
Puoi sostituire la configurazione predefinita e attivare una funzionalità facoltativa includendo un file overlay quando installi (o esegui l'upgrade) Cloud Service Mesh. Un
di overlay è un file YAML contenente
Risorsa personalizzata (RP) IstioOperator
che utilizzerai per configurare il piano di controllo. Specifica una funzionalità per file di overlay. Puoi applicare altri overlay,
e ogni file overlay sostituisce la configurazione dei livelli precedenti.
Informazioni sui file di overlay
I file di overlay in questa pagina si trovano nel
package anthos-service-mesh
su GitHub. Questi file contengono personalizzazioni comuni alla configurazione predefinita. Potete utilizzare questi file così come sono oppure aggiungere
se necessario.
Quando installi Cloud Service Mesh utilizzando lo script fornito da Google
asmcli
, puoi
specificare uno o più file 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 recupererà il file da GitHub per te. Altrimenti, puoi apportare
modifiche al file dell'overlay, poi usa l'opzione --custom_overlay
per
e la passiamo al asmcli
.
Non includere più RP in un unico file di overlay. | Crea file di overlay separati per ogni RP |
---|---|
Come attivare le funzionalità facoltative
I seguenti esempi sono semplificati in modo da mostrare solo gli overlay personalizzati per
attivare le funzionalità facoltative. Sostituisci OTHER_FLAGS
con i
flag di installazione richiesti.
Il comando asmcli install
offre due modi per attivare una funzionalità facoltativa. Il metodo utilizzato dipende dal fatto che tu debba apportare modifiche al file di overlay.
Utilizza
--option
se non devi apportare modifiche al file di overlay. Con--option
,asmcli
recupera il file dal repository GitHub per te, quindi devi avere una connessione a internet../asmcli install \ OTHER_FLAGS \ --option OPTION_NAME
Sostituisci
OPTION_NAME
con l'opzione che vuoi attivare. Assicurati di omettere l'estensione .yaml e di includere solo il nome dell'overlay comeiap-operator
eattached-cluster
. Per un elenco di opzioni, fai riferimentoanthos-service-mesh
pacchetto.Usa
--custom_overlay
quando devi personalizzare il file dell'overlay../asmcli install \ OTHER_FLAGS \ --custom_overlay PATH_TO_FILE
Sostituisci
PATH_TO_FILE
con il percorso del file di overlay che vuoi utilizzare.
YAML per le funzionalità facoltative
Le sezioni seguenti forniscono il file YAML per abilitare opzioni facoltative e supportate le funzionalità di machine learning.
Modalità STRICT
mTLS
La configurazione global.mtls.enabled
è stata rimossa dal RP IstioOperator
per evitare problemi con gli upgrade e per fornire un'installazione più flessibile.
Per attivare STRICT
mTLS,
configura un
criterio di autenticazione peer.
Immagine proxy senza distro
Come best practice, dovresti limitare i contenuti del runtime di un container solo ai pacchetti necessari. Questo approccio migliora la sicurezza e il rapporto segnale-disturbo degli scanner di vulnerabilità ed esposizioni comuni (CVE). Istio fornisce immagini proxy basate su immagini di base senza distribuzione.
La seguente configurazione abilita le immagini senza distrografia per l'intero Cloud Service Mesh. Affinché una modifica del tipo di immagine venga applicata, è necessario riavviare ogni pod e iniettarlo di nuovo.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
image:
imageType: distroless
L'immagine distroless non contiene binari diversi dal proxy. Di conseguenza, non è possibile exec
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, deve essere utilizzato istioctl proxy-cmd
, che non richiede un'immagine di base di debug.
Utilizzare un overlay personalizzato per il registry personalizzato
Puoi utilizzare un overlay personalizzato per i registry personalizzati, ad esempio se devi installare Cloud Service Mesh da un registry dei container 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 a cui è necessario eseguire il mirroring personalizzato Container Registry:
- Install-cni -
gke.gcr.io/asm/install-cni:1.23.2-asm.2
- Piano dati gestito -
gke.gcr.io/asm/mdp:1.23.2-asm.2
- Pilot -
gke.gcr.io/asm/pilot:1.23.2-asm.2
- Proxyv2 -
gke.gcr.io/asm/proxyv2:1.23.2-asm.2
Aggiungere immagini a un registry privato
Per eseguire il push delle immagini di Cloud Service Mesh in un registry privato, completa i seguenti passaggi:
-
Esegui il pull delle immagini Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.23.2-asm.2 docker pull gke.gcr.io/asm/mdp:1.23.2-asm.2 docker pull gke.gcr.io/asm/pilot:1.23.2-asm.2 docker pull gke.gcr.io/asm/proxyv2:1.23.2-asm.2
-
Crea una variabile per l'URL del tuo registry privato:
Sostituisciexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URL
con l'URL del tuo registry privato. -
Contrassegna le immagini con l'URL del tuo registro privato:
docker tag gke.gcr.io/asm/install-cni:1.23.2-asm.2 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.23.2-asm.2 docker tag gke.gcr.io/asm/mdp:1.23.2-asm.2 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.23.2-asm.2 docker tag gke.gcr.io/asm/pilot:1.23.2-asm.2 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.23.2-asm.2 docker tag gke.gcr.io/asm/proxyv2:1.23.2-asm.2 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.23.2-asm.2
- Esegui il push delle immagini con tag nel tuo registro privato:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.23.2-asm.2 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.23.2-asm.2 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.23.2-asm.2 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.23.2-asm.2
- (Facoltativo) Se utilizzi una
servizio canonico, quindi aggiungi
immagini di servizio canoniche nel tuo registro privato.
- Esegui il pull delle immagini dei servizi canonici 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 registry 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 registry privato:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/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 dei servizi canonici di Cloud Service Mesh:
Se puoi eseguire il pull delle immagini con tag dal tuo registro privato, la procedura è andata a buon fine.
Aumenta la durata dello svuotamento in caso di interruzione
Per impostazione predefinita, Envoy attende cinque secondi (5s
) per il completamento delle connessioni esistenti all'arresto di un pod.
Il pod terminationGracePeriodSeconds
deve essere maggiore di terminationDrainDuration
.
Per ulteriori informazioni, consulta la sezione sulle opzioni del mesh globale.
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
terminationDrainDuration: 30s
Abilita i log di accesso
Per ulteriori informazioni, vedi Abilita il logging 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 li installi con la CA Cloud Service Mesh
Per ulteriori informazioni, vedi Accedere alle tracce.
In uscita tramite gateway in uscita
Ti consigliamo di installare injected (gateway inserito) come descritto in Installa ed esegui l'upgrade dei gateway.
Interfaccia di rete del contenitore Istio
Il modo in cui abiliti l'interfaccia di rete del contenitore Istio (CNI) dipende dall'ambiente in cui è installato Cloud Service Mesh.
Scegli il file overlay corrispondente alla tua piattaforma.
Abilita CNI su GKE
Attiva CNI on-premise
Abilita i log sul traffico per le attività esterne a Google Cloud
Installazione di Cloud Service Mesh con Istio CA al di fuori dei report di Google Cloud a Prometheus per impostazione predefinita. Utilizza questa opzione per attivare la generazione di report sul traffico oppure sia Prometheus che Stackdriver, quindi puoi utilizzare dashboard di Cloud Service Mesh.
Solo Stackdriver
Stackdriver e Prometheus
Attivare un bilanciatore del carico interno
Ti consigliamo di installare un
gateway iniettato come descritto in
Installare e eseguire l'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 esterno nel gateway in entrata
Per informazioni su come abilitare la gestione dei certificati esterni nel traffico in entrata utilizzando Envoy SDS, consulta Gateway sicuri.