Questa guida mostra come configurare un cluster Google Kubernetes Engine (GKE) e abilitare Cloud Run for Anthos. Puoi utilizzare la console Google Cloud o Google Cloud CLI per abilitare Cloud Run for Anthos su cluster GKE standard e privati.
Abilitare Cloud Run for Anthos installa Istio e Knative Serving nel cluster per connettere e gestire i tuoi carichi di lavoro stateless. Per ulteriori informazioni, consulta la panoramica dell'architettura di Cloud Run for Anthos.
Prima di iniziare
- Cloud Run for Anthos è un componente aggiuntivo per Google Kubernetes Engine. Una prova gratuita è disponibile fino al 30 settembre 2021.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Configurazione dell'ambiente a riga di comando
Anche se puoi scegliere di utilizzare la console Google Cloud o l'interfaccia alla gcloud CLI per gestire Cloud Run for Anthos, alcune attività richiedono l'interfaccia a riga di comando gcloud CLI.
Per configurare gli strumenti a riga di comando gcloud
e kubectl
per Cloud Run for Anthos:
Configura l'impostazione predefinita del progetto per gcloud CLI su quello appena creato o su un progetto esistente che vuoi utilizzare:
gcloud config set project PROJECT-ID
Sostituisci PROJECT-ID con l'ID del progetto che hai creato.
Imposta
zone
sulla zona desiderata per il tuo cluster. Puoi utilizzare qualsiasi zona in cui è supportato GKE. Ecco alcuni esempi:gcloud config set compute/zone ZONE
Sostituisci ZONE con la tua zona.
Abilita le API seguenti per il progetto, necessarie per creare un cluster, creare un container e pubblicare un container nel registro di Google Kubernetes Engine:
gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com
Installa lo strumento a riga di comando
kubectl
:gcloud components install kubectl
Aggiornamento dei componenti dell'interfaccia a riga di comando gcloud installati:
gcloud components update
Abilitazione di Cloud Run for Anthos
Cloud Run for Anthos viene eseguito in un cluster GKE. Puoi abilitare Cloud Run for Anthos in un cluster esistente oppure creare un nuovo cluster con Cloud Run for Anthos abilitato.
Scegli come configurare Cloud Run for Anthos:
Cloud Run for Anthos può essere abilitato anche su cluster GKE privati. Per informazioni su come creare un cluster GKE privato, consulta Creazione di un cluster privato nella documentazione di GKE.
Creazione di un nuovo cluster GKE con Cloud Run for Anthos abilitato
Queste istruzioni creano un cluster con le seguenti configurazioni:
- Cloud Run for Anthos abilitato
- Versione Kubernetes: versioni GKE disponibili
- 4 nodi con 4 vCPU
- Spazio dei nomi predefinito:
default
Queste sono le configurazioni di cluster consigliate per testare Cloud Run for Anthos. Per i carichi di lavoro di produzione, devi configurare il cluster GKE in modo da soddisfare le tue esigenze specifiche. Per informazioni sui diversi tipi di cluster GKE e sulle relative opzioni di configurazione, consulta Tipi di cluster nella documentazione di GKE.
Per creare un cluster e abilitare Cloud Run for Anthos:
Crea un cluster:
gcloud container clusters create CLUSTER-NAME \ --zone=ZONE \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=e2-standard-4 \ --num-nodes=4 \ --cluster-version=GKE-VERSION \ --enable-stackdriver-kubernetes
CLUSTER-NAME è il nome che vuoi per il tuo cluster.
ZONE è la zona di Compute Engine desiderata per il cluster.
GKE-VERSION è la versione GKE desiderata. Vedi le versioni disponibili.
La scalabilità automatica dei cluster non è abilitata per impostazione predefinita, anche se Cloud Run for Anthos scala automaticamente il numero di istanze all'interno del cluster in base alla capacità disponibile.
Attendi il completamento della creazione del cluster.
Abilitazione di Cloud Run for Anthos in un cluster esistente
Il cluster GKE deve avere la seguente configurazione minima:
- 4 nodi con 4 vCPU. Se devi modificare il tipo di macchina del cluster, vedi Migrazione dei carichi di lavoro in tipi di macchine diversi.
- Ambiti:
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
Puoi utilizzare gcloud CLI o la console Google Cloud per abilitare Cloud Run for Anthos in un cluster:
Console
Per abilitare Cloud Run for Anthos in un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud:
Fai clic sul nome del cluster su cui vuoi abilitare Cloud Run for Anthos.
Fai clic su Modifica.
Fai clic su Abilita Cloud Run for Anthos.
Fai clic su Salva. Al termine dell'aggiornamento, il cluster supporterà Cloud Run for Anthos.
Riga di comando
Per abilitare Cloud Run for Anthos in un cluster esistente:
Abilita il cluster utilizzando il seguente comando:
gcloud container clusters update \ CLUSTER_NAME \ --update-addons=CloudRun=ENABLED,HttpLoadBalancing=ENABLED \ --zone=ZONE
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del cluster.
- ZONE: la zona del cluster. Ad esempio,
us-central1-a
.
Attendi il completamento dell'attivazione. Se l'operazione riesce, la riga di comando restituisce un messaggio simile al seguente:
Updating your-cluster-name...done.
Configurazione delle impostazioni predefinite per gcloud CLI
Dopo aver creato il cluster, puoi impostare i valori predefiniti da utilizzare per Google Cloud CLI. Quando utilizzi la riga di comando, vengono rimosse le richieste successive per tutti i valori predefiniti che hai impostato, ad esempio il nome o la località del cluster.
Puoi configurare le impostazioni predefinite per:
- Nome del cluster
- Località del cluster
- Credenziali
- Spazio dei nomi
- Piattaforma
Per impostare le impostazioni predefinite:
Imposta il cluster predefinito e la località del cluster, quindi ottieni le credenziali eseguendo questi comandi:
gcloud config set run/platform gke gcloud config set run/cluster CLUSTER gcloud config set run/cluster_location ZONE gcloud container clusters get-credentials CLUSTER
Sostituisci:
- CLUSTER con il nome del cluster.
- ZONE con la posizione del cluster.
Per impostazione predefinita, il cluster viene creato con uno spazio dei nomi denominato
default
. Per informazioni sugli spazi dei nomi e sul motivo per cui potresti creare e utilizzare uno spazio dei nomi diverso dadefault
, consulta lo spazio dei nomi.Per creare un nuovo spazio dei nomi, esegui:
kubectl create namespace NAMESPACE
Sostituisci NAMESPACE con il nome dello spazio dei nomi che vuoi creare.
Se hai creato un nuovo spazio dei nomi nel passaggio precedente, puoi impostare lo spazio dei nomi come spazio dei nomi predefinito utilizzato ogni volta che richiami Google Cloud CLI. In caso contrario, viene utilizzato lo spazio dei nomi
default
. Per impostare il nuovo spazio dei nomi, esegui il comando seguente:gcloud config set run/namespace NAMESPACE
Sostituisci NAMESPACE con il nome dello spazio dei nomi che vuoi che lo strumento dell'interfaccia a riga della gcloud CLI utilizzi per impostazione predefinita.
Abilitazione delle metriche su un cluster con Workload Identity
Quando abiliti Workload Identity, Cloud Run for Anthos non segnala determinate metriche, come il conteggio delle richieste di revisione o la latenza delle richieste alla suite operativa di Google Cloud, ma continua a generare metriche sulla CPU e sulla memoria.
Per abilitare tutte le metriche, devi impostare manualmente le autorizzazioni per scrivere metriche in Cloud Monitoring concedendo il ruolo Writer metriche di Monitoring all'account di servizio Google (GSA) associato al servizio Cloud Run for Anthos.
Concedi le autorizzazioni del ruolo Writer metriche di monitoraggio alla piattaforma Google Cloud del tuo servizio:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter
Sostituisci:
- PROJECT_ID con l'ID progetto per un progetto cluster che ospita il tuo KSA.
- GSA_PROJECT con l'ID progetto di una piattaforma esterna che non si trova nel cluster. Puoi utilizzare qualsiasi organizzazione Google Cloud nella tua organizzazione.
Per ulteriori informazioni, vedi Concessione, modifica e revoca dell'accesso alle risorse.
Per configurare i servizi forniti dalle API Google Cloud come API Compute, API Storage e database o API di machine learning dal tuo cluster GKE, consulta Utilizzo di Workload Identity.
Sviluppo in una configurazione multi-tenant
Nei casi d'uso multi-tenant, dovrai gestire ed eseguire il deployment dei servizi Cloud Run for Anthos in un cluster Google Kubernetes Engine esterno al progetto attuale. Per ulteriori informazioni sulla multitenancy di GKE, consulta Multitenancy del cluster.
Per scoprire come configurare la multitenancy per Cloud Run for Anthos, consulta Multitenancy tra progetti.
Configurazione di una rete interna privata
Il deployment dei servizi su una rete interna è utile per le aziende che forniscono app interne al proprio personale e per i servizi utilizzati dai client che vengono eseguiti all'esterno del cluster Cloud Run for Anthos. Questa configurazione consente ad altre risorse sulla rete di comunicare con il servizio utilizzando un indirizzo IP privato (RFC 1918) interno non accessibile al pubblico.
Per creare la tua rete interna, configura il gateway Ingress di Istio per l'uso del bilanciamento del carico TCP/UDP interno anziché di un bilanciatore del carico di rete esterno pubblico. Puoi quindi eseguire il deployment dei servizi Cloud Run for Anthos su un indirizzo IP interno nella rete VPC.
Prima di iniziare
- Devi avere autorizzazioni
admin
sul cluster. - Sono supportati solo Google Cloud CLI 310.0 o versioni successive. Per ulteriori dettagli, consulta Configurazione di gcloud.
Per configurare il bilanciatore del carico interno:
Aggiorna il gateway Ingress Ingress per utilizzare il bilanciamento del carico TCP/UDP interno creando un nuovo cluster o aggiornando un cluster esistente:
Crea un nuovo cluster con un bilanciatore del carico interno:
gcloud container clusters create CLUSTER_NAME \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-2 \ --num-nodes=3 \ --enable-stackdriver-kubernetes \ --cloud-run-config=load-balancer-type=INTERNAL
Aggiorna un cluster esistente per utilizzare un bilanciatore del carico interno:
gcloud container clusters update CLUSTER_NAME --update-addons=CloudRun=ENABLED \ --cloud-run-config=load-balancer-type=INTERNAL
Potrebbero essere necessari alcuni minuti prima che la modifica abbia effetto.
Esegui questo comando per osservare gli aggiornamenti nel cluster GKE:
kubectl -n gke-system get svc istio-ingress --watch
- Osserva l'annotazione "cloud.google.com/load-balancer-type: Internal".
- Cerca il valore
IP
nel bilanciatore del carico Ingress per passare a un indirizzo IP privato. - Premi
Ctrl+C
per interrompere gli aggiornamenti quando vedi un indirizzo IP privato nel campoIP
.
Per verificare la connettività interna dopo le modifiche:
Esegui il deployment di un servizio chiamato
sample
in Cloud Run for Anthos nello spazio dei nomidefault
:gcloud run deploy sample \ --image gcr.io/knative-samples/helloworld \ --namespace default
Crea una macchina virtuale (VM) Compute Engine nella stessa zona del cluster GKE:
VM=cloudrun-gke-ilb-tutorial-vm gcloud compute instances create $VM
Archivia l'indirizzo IP privato del gateway Ingress Ingress in una variabile di ambiente denominata
EXTERNAL_IP
e in un file denominatoexternal-ip.txt
:export EXTERNAL_IP=$(kubectl -n gke-system get svc istio-ingress \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
Copia il file contenente l'indirizzo IP nella VM:
gcloud compute scp external-ip.txt $VM:~
Connettiti alla VM tramite SSH:
gcloud compute ssh $VM
Durante la sessione SSH, verifica il servizio di esempio:
curl -s -w'\n' -H Host:sample.default.example.com $(cat external-ip.txt)
L'output è il seguente:
Hello World!
Esci dalla sessione SSH:
exit
Utilizzo di un'installazione Istio separata
Le seguenti istruzioni mostrano come connettere Anthos Service Mesh, il componente aggiuntivo Istio on GKE o un'installazione personalizzata Istio con Cloud Run for Anthos oltre ai componenti Istio già installati per impostazione predefinita in Cloud Run for Anthos.
I componenti Istio inclusi nell'installazione predefinita di Cloud Run for Anthos non supportano attualmente l'iniezione sidecar automatica; tuttavia, puoi utilizzare un'installazione Istio aggiuntiva per abilitare l'iniezione sidecar Istio nello spazio dei nomi in cui vengono eseguiti i servizi.
Per utilizzare un'installazione aggiuntiva di Istio, devi verificare che il gateway Ingress Ingress sia denominato istio-ingressgateway
nello spazio dei nomi istio-system
.
Cloud Run for Anthos può supportare e gestire il traffico esterno dai gateway Ingress Ingress installati in:
- Lo spazio dei nomi
istio-system
, con il dominio locale del clusteristio-ingressgateway.istio-system.svc.cluster.local
configurato per impostazione predefinita quando si utilizza un'installazione aggiuntiva di Istio. - Lo spazio dei nomi
gke-system
, con il dominio locale del clusteristio-ingress.gke-system.svc.cluster.local
configurato con l'installazione predefinita di Cloud Run for Anthos.
Importante: se configuri e utilizzi il criterio AuthorizationPolicy
di Istio, devi risolvere una vulnerabilità nota con la corrispondenza di tipo percorso per controllo dell'accesso dell'accesso. Per ulteriori dettagli su come evitare l'esposizione alla vulnerabilità, consulta le best practice per la sicurezza.
Per verificare gli utilizzi aggiuntivi di Cloud Ingress Gateway Istio per Anthos:
Apri l'oggetto ConfigMap di
config-istio
:kubectl get configmap config-istio --namespace knative-serving -oyaml
Verifica che il gateway Ingress Ingress aggiuntivo sia denominato
istio-ingressgateway
e si trovi nello spazio dei nomiistio-system
.
Attivazione di domini personalizzati e HTTPS
Se vuoi usare domini HTTPS e personalizzati applicabili al cluster, consulta Abilitare i certificati TLS automatici e HTTPS e mappare i domini personalizzati.
Disattivazione di Cloud Run for Anthos
Per disabilitare Cloud Run for Anthos nel tuo cluster:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud:
Fai clic sul cluster per il quale vuoi disabilitare Cloud Run for Anthos .
Fai clic su Modifica.
Dal menu Cloud Run for Anthos, seleziona Disattiva.
Fai clic su Salva.
Passaggi successivi
- Panoramica dell'architettura di Cloud Run for Anthos
- Abilitazione dei certificati TLS automatici e HTTPS
- Deployment da un container
- Creazione di container
- Risoluzione dei problemi