Configurazione della pubblicazione con Knative

Scopri come impostare e configurare l'installazione della pubblicazione di Knative.

Prima di iniziare

Devi aver installato Knative Serving sul tuo cluster GKE. Consulta la guida all'installazione per i dettagli sui prerequisiti dei cluster GKE e su come installare Knative.

Configurazione dell'autenticazione con Workload Identity

Puoi utilizzare Workload Identity per autenticare i tuoi servizi di pubblicazione Knative nelle API e nei servizi Google Cloud. Devi configurare Workload Identity prima di eseguire il deployment dei servizi nel tuo cluster, altrimenti dovrai eseguire la migrazione di ogni servizio esistente nel tuo cluster prima di abilitare Workload Identity. Scopri di più sull'utilizzo di Workload Identity.

Attivazione delle metriche con Workload Identity

Per abilitare le metriche, come il conteggio delle richieste di reporting o la latenza delle richieste per l'osservabilità di Google Cloud, devi impostare manualmente le autorizzazioni di scrittura per Cloud Monitoring. Per maggiori dettagli, consulta Abilitazione delle metriche con Workload Identity.

Configurazione di HTTPS e di domini personalizzati

Per attivare HTTPS e impostare un dominio personalizzato, consulta le seguenti pagine:

Configurazione di Anthos Service Mesh

Per configurare le opzioni di Anthos Service Mesh per la gestione di Knative, consulta le opzioni del piano di controllo nel cluster, che spiegano anche come configurare una rete interna privata.

Configurazione di una rete interna privata

Il deployment di 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 al di fuori del cluster di gestione Knative. Questa configurazione consente ad altre risorse della rete di comunicare con il servizio utilizzando un indirizzo IP interno privato (RFC 1918) non accessibile al pubblico.

Per creare la tua rete interna, configura Anthos Service Mesh in modo che utilizzi il bilanciamento del carico TCP/UDP interno anziché un bilanciatore del carico di rete esterno pubblico. Puoi quindi eseguire il deployment dei servizi di gestione Knative su un indirizzo IP interno all'interno della tua rete VPC.

Prima di iniziare

Per configurare il bilanciatore del carico interno:

  1. Abilita la funzionalità di bilanciamento del carico interno in Anthos Service Mesh.

    Il bilanciatore del carico interno è una funzionalità facoltativa che puoi configurare durante l'installazione di Anthos Service Mesh o durante l'aggiornamento dell'installazione esistente.

    Segui la procedura descritta in Abilitare le funzionalità facoltative sul piano di controllo nel cluster e assicurati di includere l'opzione dello script --option internal-load-balancer.

    Quando specifichi l'opzione --option internal-load-balancer, lo script recupera automaticamente la risorsa personalizzata Abilita un bilanciatore del carico interno da GitHub. Se devi modificare la risorsa personalizzata, segui le istruzioni per utilizzare invece l'opzione --custom_overlay.

  2. Esegui questo comando per controllare gli aggiornamenti al tuo cluster GKE:

    kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch
    

    Sostituisci INGRESS_NAMESPACE con lo spazio dei nomi del servizio in entrata Anthos Service Mesh. Specifica istio-system se hai installato Anthos Service Mesh utilizzando la sua configurazione predefinita.

    1. Prendi nota dell'annotazione cloud.google.com/load-balancer-type: Internal.
    2. Cerca il valore di 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.
  3. Per i cluster privati su Google Cloud, devi aprire le porte. Per maggiori dettagli, consulta la sezione relativa all'apertura delle porte sul cluster privato nella documentazione di Anthos Service Mesh.

Per verificare la connettività interna dopo le modifiche:

  1. Esegui il deployment di un servizio chiamato sample nella gestione di Knative nello spazio dei nomi default:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  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 Istio Ingress in una variabile di ambiente denominata EXTERNAL_IP e in un file denominato external-ip.txt:

    export EXTERNAL_IP=$(kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway \
        -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
    

    Sostituisci INGRESS_NAMESPACE con lo spazio dei nomi del servizio in entrata Anthos Service Mesh. Specifica istio-system se hai installato Anthos Service Mesh utilizzando la sua configurazione predefinita.

  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. Nella sessione SSH, verifica il servizio di esempio:

    curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
    

    L'output è il seguente:

    Hello World!
    
  7. Esci dalla sessione SSH:

    exit
    

Configurazione di un ambiente multi-tenant

Nei casi d'uso multi-tenant, dovrai gestire ed eseguire il deployment dei servizi di servizio Knative in un cluster Google Kubernetes Engine esterno al tuo progetto attuale. Per ulteriori informazioni sulla multitenancy di GKE, consulta Multitenancy del cluster.

Per scoprire come configurare l'architettura multi-tenancy per la pubblicazione con Knative, consulta Multitenancy tra progetti.

Passaggi successivi