Configurazione di Cloud Run for Anthos

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

  1. Cloud Run for Anthos è un componente aggiuntivo per Google Kubernetes Engine. Una prova gratuita è disponibile fino al 30 settembre 2021.
  2. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  3. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  4. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

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:

  1. Installa e inizializza Google Cloud CLI.

  2. 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.

  3. 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.

  4. 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
  5. Installa lo strumento a riga di comando kubectl:

    gcloud components install kubectl
  6. 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:

  1. 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

    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.

  2. 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:

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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud:

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster su cui vuoi abilitare Cloud Run for Anthos.

  3. Fai clic su Modifica.

  4. Fai clic su Abilita Cloud Run for Anthos.

  5. 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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 da default, 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.

  3. 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:

  1. 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.

  2. Esegui questo comando per osservare gli aggiornamenti nel cluster GKE:

    kubectl -n gke-system get svc istio-ingress --watch
    
    1. Osserva l'annotazione "cloud.google.com/load-balancer-type: Internal".
    2. Cerca il valore IP nel bilanciatore del carico Ingress per passare a un indirizzo IP privato.
    3. Premi Ctrl+C per interrompere gli aggiornamenti quando vedi un indirizzo IP privato nel campo IP.

Per verificare la connettività interna dopo le modifiche:

  1. Esegui il deployment di un servizio chiamato sample in Cloud Run for Anthos nello spazio dei nomi default:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    
  2. Crea una macchina virtuale (VM) Compute Engine nella stessa zona del cluster GKE:

    VM=cloudrun-gke-ilb-tutorial-vm
    
    gcloud compute instances create $VM
    
  3. Archivia l'indirizzo IP privato del gateway Ingress Ingress in una variabile di ambiente denominata EXTERNAL_IP e in un file denominato external-ip.txt:

    export EXTERNAL_IP=$(kubectl -n gke-system get svc istio-ingress \
        -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
    
  4. Copia il file contenente l'indirizzo IP nella VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Connettiti alla VM tramite SSH:

    gcloud compute ssh $VM
    
  6. 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!
    
  7. 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 cluster istio-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 cluster istio-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:

  1. Apri l'oggetto ConfigMap di config-istio:

    kubectl get configmap config-istio --namespace knative-serving -oyaml
    
  2. Verifica che il gateway Ingress Ingress aggiuntivo sia denominato istio-ingressgateway e si trovi nello spazio dei nomi istio-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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud:

    Vai a Google Kubernetes Engine

  2. Fai clic sul cluster per il quale vuoi disabilitare Cloud Run for Anthos .

  3. Fai clic su Modifica.

  4. Dal menu Cloud Run for Anthos, seleziona Disattiva.

  5. Fai clic su Salva.

Passaggi successivi