Installa Cloud Service Mesh nel cluster su GKE
Questa pagina spiega come installare Cloud Service Mesh non gestito e nel cluster su GKE:
- Esegui
asmcli
per eseguire una nuova installazione di Cloud Service Mesh 1.22.4-asm.0. - (Facoltativo) Esegui il deployment di un gateway in entrata.
- Esegui il deployment o riesegui il deployment dei carichi di lavoro per inserire proxy sidecar.
Tieni presente che, per i carichi di lavoro Kubernetes Google Cloud, il provisioning di un piano di controllo gestito
Per istruzioni su come preparare un'installazione offline di Cloud Service Mesh:
vedi
Prepara un'installazione offline di Cloud Service Mesh
Durante l'esecuzione, dovrai specificare le opzioni --offline
e --output_dir
asmcli install
.
Limitazioni
Nota. Vi sono delle limitazioni:
Tutti i cluster Cloud Service Mesh per un mesh devono essere registrati nella stessa rete per utilizzare Cloud Service Mesh. Gli altri cluster nel progetto di un cluster Cloud Service Mesh non devono essere registrati in un parco risorse diverso.
Per i cluster GKE Autopilot è supportato solo Cloud Service Mesh gestito. Supporto di Cloud Service Mesh per GKE Autopilot è disponibile solo con le versioni 1.21.3+.
Lo strumento
asmcli
deve avere accesso a Google Kubernetes Engine (GKE) endpoint. Puoi configurare l'accesso tramite un server "jump", ad esempio una VM Compute Engine all'interno del Virtual Private Cloud (VPC) che fornisce accesso specifico.
Prima di iniziare
Prima di iniziare, assicurati di:
- Esamina i prerequisiti.
- Rivedi le informazioni in Pianifica l'installazione.
- Installa gli strumenti necessari.
- Scarica
asmcli
. - Concedi le autorizzazioni di amministratore del cluster.
- Convalida progetto e cluster.
Ruoli necessari per installare Cloud Service Mesh nel cluster
La tabella seguente descrive i ruoli necessari per l'installazione nel cluster Cloud Service Mesh.
Nome del ruolo | ID ruolo | Posizione concessione | Descrizione |
---|---|---|---|
Amministratore GKE Hub | roles/gkehub.admin | Progetto parco risorse | Accesso completo a GKE Hub e alle risorse correlate. |
Kubernetes Engine Admin | roles/container.admin | Progetto cluster. Tieni presente che questo ruolo deve essere concesso sia nel parco risorse progetto di cluster per le associazioni tra progetti. | Fornisce l'accesso alla gestione completa dei cluster di container e dei relativi oggetti API di Kubernetes. |
Mesh Config Admin | roles/meshconfig.admin | Progetto cluster e parco risorse | Fornisce le autorizzazioni necessarie per inizializzare i componenti gestiti di Cloud Service Mesh, ad esempio l'autorizzazione di backend e piano di controllo gestito che consente ai carichi di lavoro di comunicare con Stackdriver con autorizzazione individuale (per i piani di controllo gestiti e in-cluster). |
Amministratore IAM progetto | roles/resourcemanager.projectIamAdmin | Progetto cluster | Fornisce le autorizzazioni per amministrare i criteri IAM su in modo programmatico a gestire i progetti. |
Amministratore account di servizio | roles/iam.serviceAccountAdmin | Progetto parco risorse | Autentica come account di servizio. |
Amministratore Service Management | roles/servicemanagement.admin | Progetto parco risorse | Controllo completo delle risorse Google Service Management. |
Amministratore Service Usage | roles/serviceusage.serviceUsageAdmin | Progetto parco risorse | Possibilità di abilitare, disabilitare e ispezionare gli stati dei servizi, ispezionare operazioni e il consumo di quota e fatturazione per un consumer progetto.(Nota 1) |
Amministratore servizio CA beta | roles/privateca.admin | Progetto parco risorse | Accesso completo a tutte le risorse del servizio CA. (Nota 2) |
Note:
- Amministratore Service Usage: questo ruolo è necessario
come prerequisito per abilitare l'API
mesh.googleapis.com
quando il provisioning iniziale di Cloud Service Mesh gestito. - Amministratore servizio CA - Questo ruolo è necessario solo se si stanno integrando con CA Service.
Installa Cloud Service Mesh
Di seguito viene descritto come installare Cloud Service Mesh:
Esegui
asmcli install
per installare il piano di controllo nel cluster su una singola in un cluster Kubernetes. Per esempi di riga di comando, consulta le sezioni seguenti. Gli esempi contengono sia argomenti obbligatori sia argomenti facoltativi che potresti trovare utile. Ti consigliamo di specificare sempre l'argomentooutput_dir
in modo che che puoi individuare gateway e strumenti di esempio comeistioctl
. Consulta la barra di navigazione a destra per un elenco degli esempi.I cluster GKE privati richiedono un'ulteriore passaggio di configurazione del firewall consenti il traffico verso
istiod
.Facoltativamente, installa un gateway in entrata. Per impostazione predefinita,
asmcli
non installaistio-ingressgateway
. Ti consigliamo di eseguire il deployment e gestire il piano di controllo e i gateway separatamente. Se hai bisognoistio-ingressgateway
per impostazione predefinita installata con il piano di controllo nel cluster, includi l'argomento--option legacy-default-ingressgateway
.Per completare la configurazione di Cloud Service Mesh, devi abilitare la funzionalità l'iniezione di file collaterali eseguire il deployment o rieseguire il deployment dei carichi di lavoro.
Se installi Cloud Service Mesh su più di un cluster, esegui
asmcli install
su ogni cluster. Quando eseguiasmcli install
, assicurati di utilizzare lo stessoFLEET_PROJECT_ID
per ogni in un cluster Kubernetes. Dopo aver installato Cloud Service Mesh, consulta le istruzioni per configurare un mesh multi-cluster su GKE.Se i cluster si trovano su reti diverse (così come si trovano modalità isola devi passare un nome di rete univoco a
asmcli
utilizzando Flag--network_id
.
Installa le funzionalità predefinite e Mesh CA
Questa sezione mostra come eseguire asmcli
per installare Cloud Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e attivare l'autorità di certificazione Cloud Service Mesh come autorità di certificazione.
Esegui questo comando per installare il piano di controllo con impostazione e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nel campo segnaposto.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca
--project_id
,--cluster_name
e--cluster_location
Specifica l'ID progetto che il cluster si trova il nome del cluster e la zona o la regione del cluster.--fleet_id
L'ID del progetto progetto host del parco risorse. Se non includi questa opzione,asmcli
utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.--output_dir
Includi questa opzione per specificare una directory doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile$PWD
non funziona qui.-
--enable_all
Consente allo script di:- Concedi le autorizzazioni IAM richieste.
- Abilita le API di Google richieste.
- Imposta un'etichetta sul cluster che identifichi il mesh.
- Registra il cluster nel parco risorse, se non è già registrato.
--ca mesh_ca
Utilizza l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione.asmcli
configura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity
Installa le funzionalità predefinite e il servizio dell'autorità di certificazione (CA)
Questa sezione mostra come eseguire asmcli
per installare Cloud Service Mesh con l'impostazione predefinita
funzionalità supportate per la tua piattaforma
abilitare CA Service come autorità di certificazione.
Oltre all'autorità di certificazione Cloud Service Mesh, puoi configurare Cloud Service Mesh per utilizzare Certificate Authority Service. Questo offre l'opportunità di eseguire l'integrazione con CA Service, consigliata per i seguenti casi d'uso:
- Se sono necessarie autorità di certificazione diverse per firmare i certificati dei carichi di lavoro su cluster diversi.
- Se devi eseguire il backup delle chiavi di firma in un HSM gestito.
- Se operi in un settore altamente regolamentato e sei soggetto a conformità.
- Se vuoi collegare la tua CA Cloud Service Mesh a una radice aziendale personalizzata per firmare i certificati dei carichi di lavoro.
Il costo dell'autorità di certificazione Cloud Service Mesh è incluso nella Prezzi di Cloud Service Mesh. La CA Service non è incluso nel prezzo base di Cloud Service Mesh ed è con un addebito separato. Inoltre, CA Service include SLA esplicito, al contrario dell'autorità di certificazione Cloud Service Mesh.
Configura CA Service
- Crea il pool di CA
nel livello
DevOps
e nella stessa regione del cluster a cui serve per evitare problemi di latenza eccessiva o potenziali interruzioni tra regioni. Per ulteriori informazioni, vedi Livelli ottimizzati per il carico di lavoro. - Crea la CA avere almeno un'autorità di certificazione attiva nel pool di CA in stesso progetto del cluster GKE. Utilizza le CA subordinate per firmare i certificati dei carichi di lavoro di Cloud Service Mesh. Prendi nota del pool di CA corrispondente alla CA subordinata.
Se intendi utilizzare solo certificati di servizio per i carichi di lavoro di Cloud Service Mesh, imposta i seguenti criteri di emissione per il pool di CA:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
Per aggiornare il criterio di emissione del pool di CA, utilizza il seguente comando:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Per informazioni sull'impostazione di un criterio su un pool, consulta Utilizzo di un criterio di emissione dei certificati.
Se utilizzi un modello di certificato, configuralo ora. Per saperne di più, consulta la guida di CA Service per i certificati Workload Identity. Assicurati che il modello di certificato venga creato nella stessa regione del pool di CA. Se sono presenti più regioni per i pool di CA, crea un certificato modello per regione.
Configura Cloud Service Mesh per utilizzare il servizio CA
Esegui i comandi seguenti su Google Distributed Cloud (solo software) per VMware Google Distributed Cloud (solo software) per bare metal per installare il piano di controllo con funzionalità predefinite e Certificate Authority Service. Inserisci i valori negli appositi segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
Corsa di
asmcli install
:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id
L'ID del progetto host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni relative dei filekubeconfig
che utilizzano "~" non funzioneranno.--output_dir
Includi questa opzione per specificare una directory doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile$PWD
non funziona qui.--platform multicloud
specifica che la piattaforma è qualcosa diverso da Google Cloud, ad esempio on-premise o multi-cloud.-
--enable_all
Consente allo script di:- Concedi le autorizzazioni IAM richieste.
- Abilita le API di Google richieste.
- Imposta un'etichetta sul cluster che identifichi il mesh.
- Registra il cluster nel parco risorse, se non è già registrato.
--ca gcp_cas
Utilizza Certificate Authority Service come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività.asmcli
configura Certificate Authority Service da utilizzare flotta Workload Identity--ca_pool
L'identificatore completo del Pool di CA di Certificate Authority Service. Se utilizzi un modello di certificato, aggiungi l'ID del modello separato da:
. Ad esempio:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche i primi tre passaggi Abilitare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono abilitati e non ricevi log e metriche personalizzate, la dashboard di Cloud Service Mesh non mostrerà SLO, log di errore o metriche relative a CPU e memoria.
Installa le funzionalità predefinite con Istio CA
In questa sezione viene spiegato come:
- Genera certificati e chiavi per la CA Istio utilizzata da Cloud Service Mesh per firmare i tuoi carichi di lavoro.
- Esegui
asmcli
per installare Cloud Service Mesh con funzionalità predefinite e abilitarlo CA Istio.
Per impostazione predefinita, gli ambienti che installano Cloud Service Mesh con Istio CA registrano le metriche in Prometheus. Se vuoi utilizzare le dashboard di Cloud Service Mesh, devi abilitare di Stackdriver. Per maggiori informazioni, vedi Installazione con funzionalità facoltative.
Per la massima sicurezza, consigliamo vivamente di mantenere una CA radice offline e utilizzando le CA subordinate per emettere certificati per ciascun cluster. Per ulteriori informazioni informazioni, consulta l'articolo Collegare i certificati CA. In questa configurazione, tutti i carichi di lavoro nel mesh di servizi utilizzano la stessa radice dell'autorità di certificazione (CA). Ogni CA Cloud Service Mesh utilizza una CA intermedia chiave di firma e certificato, firmati dalla CA radice. In presenza di più CA all'interno di un mesh, questo stabilisce una gerarchia di attendibilità tra le CA. Puoi ripeti questi passaggi per eseguire il provisioning di certificati e chiavi per le autorità di certificazione.
Il file Makefile per generare i certificati si trova nella sottodirectory istio-1.22.4-asm.0
della directory --output_dir
specificata nel comando asmcli validate
. Se non hai eseguito asmcli validate
,
o se la directory scaricata non è disponibile localmente, puoi recuperare il file
il download del file di installazione di Cloud Service Mesh
ed estrarre i contenuti.
Passa alla directory
istio-1.22.4-asm.0
.Crea una directory per i certificati e le chiavi:
mkdir -p certs && \ pushd certs
Genera un certificato radice e una chiave:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
In questo modo vengono generati i seguenti file:
- root-cert.pem: il certificato radice
- root-key.pem: la chiave radice
- root-ca.conf: la configurazione di Opensl per generare il certificato radice
- root-cert.csr: la richiesta di firma del certificato per il certificato radice.
Genera un certificato e una chiave intermedi:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Questa operazione genera i seguenti file in una directory denominata
cluster1
:- ca-cert.pem: i certificati intermedi
- ca-key.pem: la chiave intermedia
- cert-chain.pem: la catena di certificati utilizzata da
istiod
- root-cert.pem: il certificato radice
Se esegui questi passaggi utilizzando un computer offline, copia a un computer con accesso ai cluster.
Torna alla directory precedente:
popd
Esegui questo comando per installare il piano di controllo con impostazione e Istio CA. Inserisci i valori negli appositi segnaposto.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca citadel \
--ca_cert CA_CERT_FILE_PATH \
--ca_key CA_KEY_FILE_PATH \
--root_cert ROOT_CERT_FILE_PATH \
--cert_chain CERT_CHAIN_FILE_PATH
--project_id
,--cluster_name
e--cluster_location
Specifica l'ID progetto che il cluster si trova il nome del cluster e la zona o la regione del cluster.--fleet_id
L'ID del progetto progetto host del parco risorse. Se non includi questa opzione,asmcli
utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.--output_dir
Includi questa opzione per specificare una directory doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile$PWD
non funziona qui.-
--enable_all
Consente allo script di:- Concedi le autorizzazioni IAM richieste.
- Abilita le API di Google richieste.
- Imposta un'etichetta sul cluster che identifichi il mesh.
- Registra il cluster nel parco risorse, se non è già registrato.
-ca citadel
Utilizza Istio CA come autorità di certificazione.--ca_cert
Il certificato intermedio--ca_key
La chiave per il certificato intermedio--root_cert
Il certificato radice--cert_chain
La catena di certificati
Installa con Istio CA con Google Cloud Observability abilitato
Per utilizzare le dashboard di Cloud Service Mesh, devi abilitare Stackdriver.
Esegui questo comando per installare il piano di controllo con impostazione e Istio CA. Inserisci i valori negli appositi segnaposto.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca citadel \
--ca_cert CA_CERT_FILE_PATH \
--ca_key CA_KEY_FILE_PATH \
--root_cert ROOT_CERT_FILE_PATH \
--cert_chain CERT_CHAIN_FILE_PATH
--project_id
,--cluster_name
e--cluster_location
Specifica l'ID progetto che il cluster si trova il nome del cluster e la zona o la regione del cluster.--fleet_id
L'ID del progetto progetto host del parco risorse. Se non includi questa opzione,asmcli
utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.--output_dir
Includi questa opzione per specificare una directory doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile$PWD
non funziona qui.-
--enable_all
Consente allo script di:- Concedi le autorizzazioni IAM richieste.
- Abilita le API di Google richieste.
- Imposta un'etichetta sul cluster che identifichi il mesh.
- Registra il cluster nel parco risorse, se non è già registrato.
-ca citadel
Utilizza Istio CA come autorità di certificazione.--ca_cert
Il certificato intermedio--ca_key
La chiave per il certificato intermedio--root_cert
Il certificato radice--cert_chain
La catena di certificati--option stackdriver
Abilita l'opzione Stackdriver. Tieni presente che puoi anche abilitare sia Stackdriver che Prometheus utilizzando--option prometheus-and-stackdriver
.
Installazione con funzionalità facoltative
Un file overlay è un file YAML contenente una risorsa personalizzata IstioOperator
(RP) che passi a asmcli
per configurare il piano di controllo. Puoi
la configurazione predefinita del piano di controllo
abilita una caratteristica facoltativa passando
del file YAML in asmcli
. Puoi sovrapporre altri overlay e ogni overlay
sostituisce la configurazione sui livelli precedenti. Come best practice,
ti consigliamo di salvare i file degli overlay nel tuo sistema di controllo della versione.
Esistono due opzioni per attivare le funzionalità facoltative:
--option
e
--custom_overlay
.
Usa --option
per se non devi modificare l'overlay
. Con questo metodo, asmcli
recupera il file dal
Repository GitHub
per te.
Utilizza --custom_overlay
quando devi personalizzare il file dell'overlay.
Per ulteriori informazioni, vedi Abilitazione di funzionalità facoltative sul piano di controllo nel cluster.
Esegui questo comando per installare il piano di controllo con un'istanza
funzionalità. Per aggiungere più file, specifica --custom_overlay
e il relativo nome,
ad esempio: --custom_overlay overlay_file1.yaml
--custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
Inserisci i valori negli appositi segnaposto.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca \
--custom_overlay OVERLAY_FILE
--project_id
,--cluster_name
e--cluster_location
Specifica l'ID progetto che il cluster si trova il nome del cluster e la zona o la regione del cluster.--fleet_id
L'ID del progetto host del parco risorse. Se non includi questa opzione,asmcli
utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.--output_dir
Includi questa opzione per specificare una directory doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile$PWD
non funziona qui.-
--enable_all
Consente allo script di:- Concedi le autorizzazioni IAM richieste.
- Abilita le API di Google richieste.
- Imposta un'etichetta sul cluster che identifichi il mesh.
- Registra il cluster nel parco risorse, se non è già registrato.
--ca mesh_ca
Utilizza l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. Tieni presente cheasmcli
configura la CA di Cloud Service Mesh per utilizzare l'identità per i carichi di lavoro del parco risorse--custom_overlay
Specifica il nome del file dell'overlay.
Installa gateway
Cloud Service Mesh ti offre la possibilità di eseguire il deployment e gestire i gateway come parte mesh di servizi. Un gateway descrive un bilanciatore del carico che opera all'esterno della rete mesh e riceve connessioni HTTP/TCP in entrata o in uscita. I gateway sono Envoy che forniscono un controllo granulare sul traffico in entrata e escono dalla rete.
Crea uno spazio dei nomi per il gateway in entrata, se non ne hai già uno. I gateway sono carichi di lavoro dell'utente e, come best practice, non dovrebbero essere di cui è stato eseguito il deployment nello spazio dei nomi del piano di controllo. Sostituisci
GATEWAY_NAMESPACE
con il nome del tuo spazio dei nomi.kubectl create namespace GATEWAY_NAMESPACE
Output previsto:
namespace/GATEWAY_NAMESPACE created
Abilita l'inserimento automatico nel gateway. I passaggi richiesti variano a seconda che vuoi utilizzare etichette di inserimento predefinite (ad es.
istio-injection=enabled
) o etichetta di revisione sul gateway nello spazio dei nomi. Il tag di revisione e l'etichetta di revisione predefiniti vengono utilizzati webhook di inserimento del sidecar per associare i proxy inseriti a un determinato la revisione del piano di controllo.Etichette di inserimento predefinite
Applica le etichette di inserimento predefinite allo spazio dei nomi.
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
Etichetta di revisione
Utilizza il seguente comando per individuare l'etichetta di revisione su
istiod
:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
Il comando restituisce l'etichetta di revisione corrispondente alla versione di Cloud Service Mesh, ad esempio:
asm-1224-0
Applica l'etichetta di revisione allo spazio dei nomi. Nel seguente comando,
REVISION
è il valore dell'etichetta della revisioneistiod
che hai annotato nel passaggio precedente.kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwrite
Output previsto:
namespace/GATEWAY_NAMESPACE labeled
Puoi ignorare il messaggio
"istio.io/rev" not found
nel come output. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichettaistio.io/rev
, prevista nelle nuove installazioni di Cloud Service Mesh o nuovi deployment. Perché l'inserimento automatico non riesce se uno spazio dei nomi contiene siaistio.io/rev
cheistio-injection
tutti i comandikubectl label
in Cloud Service Mesh documentazione specificano in modo esplicito entrambe le etichette.Se lo spazio dei nomi del gateway non è etichettato, i pod
istio-ingressgateway
non andranno a buon fine con un erroreImagePullBackOff
quando il gateway tenta di estrarre l'immagineauto
. Questa immagine deve essere sostituita dal webhook.Scarica il file di configurazione .yaml del gateway in entrata di esempio dal Repository
anthos-service-mesh-packages
.Applica la configurazione .yaml del gateway in entrata di esempio così com'è o modificala come necessaria.
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgateway
Output previsto:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
Scopri di più sulle best practice per i gateway.
Eseguire il deployment e rieseguire il deployment dei carichi di lavoro
Cloud Service Mesh utilizza i proxy sidecar per migliorare la sicurezza, l'affidabilità e l'osservabilità della rete. Con Cloud Service Mesh, queste funzioni vengono astratte dal del container principale dell'applicazione e implementato in un proxy out-of-process comune come container separato all'interno dello stesso pod.
L'installazione non sarà completa finché non attivi il proxy sidecar automatico tramite l'iniezione automatica e riavvia i pod per tutti i carichi di lavoro erano in esecuzione sul tuo cluster prima dell'installazione di Cloud Service Mesh.
Per abilitare l'inserimento automatico, etichetta gli spazi dei nomi con il
etichette di inserimento predefinite
se è stato configurato il tag predefinito oppure se esiste un'etichetta di revisione
impostato il giorno istiod
quando hai installato Cloud Service Mesh. La revisione predefinita
il tag e l'etichetta di revisione vengono utilizzati dal webhook di iniettore collaterale per associare
file collaterali inseriti con una revisione istiod
. Dopo aver aggiunto l'etichetta, tutti i pod esistenti nello spazio dei nomi devono essere riavviati per l'iniezione dei sidecar.
Prima di eseguire il deployment di nuovi carichi di lavoro in un nuovo spazio dei nomi, assicurati di configurare iniezione automatica per consentire a Cloud Service Mesh di monitorare e proteggere il traffico.
I passaggi necessari per abilitare l'inserimento automatico dipendono dall'utilizzo o meno le etichette di inserimento predefinite o l'etichetta di revisione:
Predefinita (opzione consigliata)
Se hai utilizzato una revisione predefinita dei tag per abilitare l'inserimento automatico nella gateway VPN ad alta disponibilità, verifica che il tag predefinito esista nella directory specificato in
--output_dir
e che indirizzi alla nuova istanza installata revisione.DIR_PATH/istioctl tag list
Esegui questo comando.
NAMESPACE
è il nome del in cui vuoi abilitare l'inserimento automatico.kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
Le etichette di inserimento predefinite inseriscono la revisione a cui fa riferimento il tag predefinito.
Etichetta di revisione
Usa questo comando per individuare l'etichetta di revisione su
istiod
:kubectl -n istio-system get pods -l app=istiod --show-labels
L'output è simile al seguente:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1224-0-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1224-0,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1224-0-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1224-0,istio=istiod,pod-template-hash=5788d57586
Nell'output, sotto la colonna
LABELS
, prendi nota del valore del parametroistiod
etichetta di revisione, che segue il prefissoistio.io/rev=
. In questo esempio, Il valore èasm-1224-0
.Applica l'etichetta di revisione e rimuovi l'etichetta
istio-injection
, se presente esiste già. Nel seguente comando,NAMESPACE
è il nome dello spazio dei nomi in cui vuoi attivare l'iniezione automatica eREVISION
è l'etichetta di revisione che hai annotato nel passaggio precedente.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Puoi ignorare il messaggio
"istio-injection not found"
nel come output. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichettaistio-injection
, prevista nelle nuove di Cloud Service Mesh o di nuovi deployment. Poiché l'inserimento automatico il comportamento non è definito quando uno spazio dei nomi ha siaistio-injection
e l'etichetta di revisione, tutti i comandikubectl label
nella La documentazione di Cloud Service Mesh assicura esplicitamente che ne sia impostata una sola.
Se sul cluster erano in esecuzione carichi di lavoro prima dell'installazione Cloud Service Mesh, riavvia i pod per attivare il reinjection.
La modalità di riavvio dei pod dipende dall'applicazione e dall'ambiente in cui si trova il cluster. Ad esempio, nel tuo ambiente di gestione temporanea, eliminare tutti i pod, determinandone il riavvio. Ma nella tua produzione potrebbe essere presente un processo che implementa deployment blu/verde in modo da poter riavviare in sicurezza i pod per evitare interruzioni del traffico.
Puoi utilizzare
kubectl
per eseguire un riavvio in sequenza:kubectl rollout restart deployment -n NAMESPACE
Passaggi successivi
Se la tua rete mesh è costituita interamente da cluster GKE, consulta Configura un mesh multi-cluster su GKE.
Esegui il deployment dell'applicazione di esempio Online Boutique.