Configurazione di Knative serving

Scopri come configurare e configurare l'installazione di Knative serving.

Prima di iniziare

Devi avere installato Knative serving sul tuo cluster GKE. Consulta la guida all'installazione per informazioni dettagliate sui prerequisiti del cluster GKE e su come installare Knative serving.

Configurazione dell'autenticazione con Workload Identity Federation for GKE

Puoi utilizzare la federazione delle identità per i carichi di lavoro per GKE per autenticare i servizi di pubblicazione Knative ai servizi e alle API di Google Cloud . Devi configurare la federazione delle identità per i carichi di lavoro per GKE prima di eseguire il deployment dei servizi nel cluster, altrimenti è necessario eseguire la migrazione di ogni servizio esistente nel cluster prima di abilitare la federazione delle identità per i carichi di lavoro per GKE. Scopri di più sull'utilizzo di Workload Identity Federation per GKE.

Attivazione delle metriche con Workload Identity Federation for GKE

Per attivare le metriche, come il conteggio delle richieste di report o la latenza delle richieste in Google Cloud Observability, devi impostare manualmente le autorizzazioni di scrittura per Cloud Monitoring. Per maggiori dettagli, consulta Abilitazione delle metriche con Workload Identity Federation per GKE.

Configurazione di HTTPS e domini personalizzati

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

Configurazione di Cloud Service Mesh

Per configurare le opzioni del piano di controllo in-cluster per il servizio Knative, consulta le opzioni del piano di controllo in-cluster, tra cui come configurare una rete interna privata.

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 in esecuzione al di fuori del cluster di servizi Knative. Questa configurazione consente alle altre risorse della rete di comunicare con il servizio utilizzando un indirizzo IP privato interno (RFC 1918) a cui non può accedere il pubblico.

Per creare la tua rete interna, configuri Cloud Service Mesh in modo da utilizzare il bilanciamento del carico TCP/UDP interno anziché un bilanciatore del carico di rete pubblico ed esterno. Puoi quindi eseguire il deployment dei servizi di pubblicazione Knative su un indirizzo IP interno all'interno della tua rete VPC.

Prima di iniziare

Per configurare il bilanciatore del carico interno:

  1. Attiva la funzionalità del bilanciatore del carico interno in Cloud Service Mesh.

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

    Segui i passaggi descritti in Abilitazione di funzionalità facoltative nel piano di controllo in-cluster e assicurati di includere l'opzione di script --option internal-load-balancer.

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

  2. Esegui il seguente comando per monitorare gli aggiornamenti del cluster GKE:

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

    Sostituisci INGRESS_NAMESPACE con lo spazio dei nomi del servizio di ingresso Cloud Service Mesh. Specifica istio-system se hai installato Cloud Service Mesh utilizzando la configurazione predefinita.

    1. Prendi nota dell'annotazione cloud.google.com/load-balancer-type: Internal.
    2. Cerca il valore IP nel bilanciatore del carico in entrata da modificare in un indirizzo IP privato.
    3. Premi Ctrl+C per interrompere gli aggiornamenti quando visualizzi 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 sull'apertura delle porte sul cluster privato nella documentazione di Cloud Service Mesh.

Per verificare la connettività interna dopo le modifiche:

  1. Esegui il deployment di un servizio denominato sample in Knative serving 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. Memorizza 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 di ingresso Cloud Service Mesh. Specifica istio-system se hai installato Cloud Service Mesh utilizzando la 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, testa 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 pubblicazione Knative in un cluster Google Kubernetes Engine al di fuori del tuo progetto attuale. Per saperne di più sulla multitenancy di GKE, consulta Multitenancy dei cluster.

Per scoprire come configurare la multitenancy per Knative serving, consulta Multitenancy tra progetti.

Passaggi successivi