Mapping di domini personalizzati

Configura i domini personalizzati da utilizzare per accedere ai servizi Knative serving. Puoi mappare uno o più domini personalizzati a un singolo servizio oppure mappare al tuo cluster un singolo dominio utilizzato da tutti i servizi. La mappatura dei domini personalizzata può essere il dominio di base, come your-domain.com, o un sottodominio, ad esempio your-subdomain.your-domain.com.

Per impostazione predefinita, i servizi di cui esegui il deployment nei cluster Knative serving sono impostati sul dominio di base nip.io. In questo modo, puoi testare immediatamente i tuoi servizi in corrispondenza di un URL come:

http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io

Scopri di più sui domini di test.

Prima di iniziare

Mappatura di un dominio personalizzato

Puoi utilizzare la console Google Cloud o gli strumenti a riga di comando per mappare il tuo dominio personalizzato.

In genere, per configurare un dominio personalizzato:

  1. (Facoltativo) Prenota l'indirizzo IP del bilanciatore del carico.
  2. Mappa i servizi o il cluster sul dominio personalizzato in Knative serving.
  3. Aggiorna i record DNS nel tuo registrar di domini.

Prenota l'indirizzo IP del bilanciatore del carico

Quando Knative serving è installato, il controller Istio in entrata crea un bilanciatore del carico con un indirizzo IP disponibile.

A seconda del cluster GKE, potrebbe essere necessario prenotare l'indirizzo IP del bilanciatore del carico per il controller in entrata Istio:

Al di fuori di Google Cloud
Consulta la documentazione per l'ambiente in cui esegui il cluster GKE per determinare come vengono gestiti gli indirizzi IP e se l'indirizzo IP del bilanciatore del carico è statico. Vedi anche le pagine di configurazione per il tuo cluster GKE. Ad esempio, a seconda di come hai configurato il bilanciamento del carico per GKE su VMware, potresti aver già prenotato questi indirizzi IP.
Su Google Cloud

Devi prenotare l'indirizzo IP esterno del bilanciatore del carico per assicurarti che rimanga invariato nel caso in cui il tuo servizio in entrata venga eliminato. A seconda della configurazione del cluster, l'indirizzo IP è disponibile esternamente o solo interno, ad esempio dei cluster privati.

Bilanciatori del carico interni su Google Cloud
Consulta la pagina seguente per i dettagli su come prenotare l'indirizzo IP del bilanciatore del carico interno: Prenotazione di un indirizzo IP interno statico
Bilanciatori del carico esterni su Google Cloud
Per prenotare l'indirizzo IP del bilanciatore del carico esterno:
  1. Ottieni l'indirizzo IP del bilanciatore del carico:

    Console

    Per recuperare l'indirizzo IP esterno del bilanciatore del carico dalla console Google Cloud:
    1. Vai alla pagina GKE nella console Google Cloud:
      Vai a GKE
    2. Fai clic su Servizi e in entrata.
    3. Identifica il servizio che è il traffico Istio in entrata del tuo cluster. Il Tipo del servizio sarà Bilanciatore del carico esterno, mentre il Nome sarà istio-ingressgateway.
    4. Una volta trovato il servizio in entrata Istio del cluster, copia il relativo endpoint. Sarà l'indirizzo IP senza il numero di porta. Ad esempio, potresti vedere 00.000.000.000:11 elencato come endpoint, ma devi solo copiare 00.000.000.000.

    kubectl

    Per ottenere l'IP esterno per il bilanciatore del carico, esegui questo comando:

    kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE
    

    Sostituisci ASM-INGRESS-NAMESPACE con lo spazio dei nomi in cui si trova il traffico Anthos Service Mesh. Specifica istio-system se hai installato Anthos Service Mesh utilizzando la configurazione predefinita.

    L'output risultante è simile al seguente:

    NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
    istio-ingressgateway   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP
    

    dove il valore EXTERNAL-IP è il tuo indirizzo IP esterno del Load Balancer.

  2. Prenota l'indirizzo IP come IP statico:

    gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION

    Sostituisci:

    • ADDRESS-NAME con il nome che vuoi assegnare al tuo IP statico.
    • EXTERNAL-IP con l'indirizzo IP esterno del bilanciatore del carico che hai ottenuto nel passaggio precedente.
    • REGION con la regione in cui si trova il cluster.

Dopo aver ottenuto l'indirizzo IP del bilanciatore del carico, puoi utilizzarlo per mappare il tuo dominio personalizzato:

Servizi di mappatura

Scegli uno dei seguenti metodi per mappare il dominio personalizzato a un servizio Knative serving. Ogni singolo servizio può essere mappato a più domini.

Console

  1. Apri la pagina delle mappature dei domini nella console Google Cloud:

    Vai a Mappature di domini

    Tieni presente che se la finestra di visualizzazione è troppo piccola, il pulsante Mappatura dei domini personalizzati non verrà visualizzato e devi fare clic sull'icona con i tre puntini verticali nell'angolo a destra della pagina.

  2. Fai clic su Aggiungi mappatura e seleziona Aggiungi mappatura del dominio del servizio per mappare un dominio a un singolo servizio. Puoi mappare più domini a ogni servizio.

  3. Dall'elenco a discesa nel modulo Aggiungi mappatura, seleziona il servizio a cui vuoi mappare il dominio personalizzato:

  4. Inserisci il nome del dominio, Ad esempio, your-domain.com o subdomain.your-domain.com. Requisiti per il dominio:

    • La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che si trova dopo il nome di dominio. Ad esempio, users è il percorso di base di your-domain.com/users. Knative serving ti consente solo di mappare un dominio a /, non a un percorso di base specifico. Pertanto, qualsiasi routing dei percorsi deve essere gestito utilizzando un router all'interno del container del servizio o tramite Firebase Hosting.
    • Non puoi mappare il tuo dominio a un sottodominio che corrisponde all'URL dei tuoi servizi. Gli URL di un servizio sono definiti come http://{service}.{namespace}.{your-domain.com}, pertanto se hai un servizio in test.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominio test.default.your-domain.com.

  5. Fai clic su Continua.

  6. Aggiorna i tuoi record DNS sul sito web del registrar del dominio utilizzando i record DNS visualizzati nell'ultimo passaggio. Puoi visualizzare i record in qualsiasi momento facendo clic su DNS Record (Record DNS) nel menu azione "..." per una mappatura di dominio.

  7. Fai clic su Fine.

gcloud

  1. Mappa il servizio al dominio personalizzato:

    gcloud run domain-mappings create --service SERVICE --domain DOMAIN

    Sostituisci:

    • SERVICE con il nome del tuo servizio.
    • DOMAIN con il tuo dominio personalizzato. Ad esempio, your-domain.com o subdomain.your-domain.com. Requisiti per il dominio:
      • La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che si trova dopo il nome di dominio. Ad esempio, users è il percorso di base di your-domain.com/users. Knative serving ti consente solo di mappare un dominio a /, non a un percorso di base specifico. Pertanto, qualsiasi routing dei percorsi deve essere gestito utilizzando un router all'interno del container del servizio o tramite Firebase Hosting.
      • Non puoi mappare il tuo dominio a un sottodominio che corrisponde all'URL dei tuoi servizi. Gli URL di un servizio sono definiti come http://{service}.{namespace}.{your-domain.com}, pertanto se hai un servizio in test.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominio test.default.your-domain.com.

Ora che il dominio personalizzato è mappato a Knative serving, devi aggiungere i record DNS nel tuo registrar di domini.

Mappatura dei cluster

Scegli uno dei seguenti metodi per mappare il dominio personalizzato al cluster:

Console

  1. Apri la pagina delle mappature dei domini nella console Google Cloud:

    Vai a Mappature di domini

    Tieni presente che se la finestra di visualizzazione è troppo piccola, il pulsante Mappatura dei domini personalizzati non verrà visualizzato e devi fare clic sull'icona con i tre puntini verticali nell'angolo a destra della pagina.

  2. Fai clic su Aggiungi mappatura e seleziona Aggiungi dominio predefinito per mappare un dominio a tutti i servizi nel cluster. Per impostazione predefinita, i nuovi servizi di cui esegui il deployment usano il dominio mappato.

  3. Fai clic sulla casella di controllo per applicare la nuova mappatura del dominio a tutti i servizi esistenti nel cluster.

  4. Dall'elenco a discesa nel modulo Aggiungi mappatura, seleziona il cluster a cui vuoi mappare il dominio personalizzato:

  5. Inserisci il nome del dominio, Ad esempio, your-domain.com o subdomain.your-domain.com. Requisiti per il dominio:

    • La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che si trova dopo il nome di dominio. Ad esempio, users è il percorso di base di your-domain.com/users. Knative serving ti consente solo di mappare un dominio a /, non a un percorso di base specifico. Pertanto, qualsiasi routing dei percorsi deve essere gestito utilizzando un router all'interno del container del servizio o tramite Firebase Hosting.
    • Non puoi mappare il tuo dominio a un sottodominio che corrisponde all'URL dei tuoi servizi. Gli URL di un servizio sono definiti come http://{service}.{namespace}.{your-domain.com}, pertanto se hai un servizio in test.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominio test.default.your-domain.com.

  6. Fai clic su Continua.

  7. Aggiorna i tuoi record DNS sul sito web del registrar del dominio utilizzando i record DNS visualizzati nell'ultimo passaggio. Puoi visualizzare i record in qualsiasi momento facendo clic su DNS Record (Record DNS) nel menu azione "..." per una mappatura di dominio.

  8. Fai clic su Fine.

kubectl

  1. Esegui questo comando per rimuovere il dominio di base esistente dal ConfigMap config-domain e sostituirlo con il tuo dominio personalizzato:

    kubectl patch configmap config-domain --namespace knative-serving --patch \
    '{"data": {"nip.io": null, "DOMAIN": ""}}'

    Sostituisci DOMAIN con il tuo dominio personalizzato. Ad esempio, your-domain.com o subdomain.your-domain.com. Requisiti per il dominio:

    • La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che si trova dopo il nome di dominio. Ad esempio, users è il percorso di base di your-domain.com/users. Knative serving ti consente solo di mappare un dominio a /, non a un percorso di base specifico. Pertanto, qualsiasi routing dei percorsi deve essere gestito utilizzando un router all'interno del container del servizio o tramite Firebase Hosting.
    • Non puoi mappare il tuo dominio a un sottodominio che corrisponde all'URL dei tuoi servizi. Gli URL di un servizio sono definiti come http://{service}.{namespace}.{your-domain.com}, pertanto se hai un servizio in test.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominio test.default.your-domain.com.

Ora che il dominio personalizzato è mappato a Knative serving, devi aggiungere i record DNS nel tuo registrar di domini.

Aggiungi i record DNS nel tuo registrar di domini

Dopo aver mappato il servizio a un dominio personalizzato in Knative serving, devi aggiornare i record DNS presso il tuo registrar di domini. Per comodità, Knative serving genera e visualizza i record DNS che devi inserire. Affinché la mappatura venga applicata, devi aggiungere questi record che rimandano al servizio Knative serving presso il tuo registrar di domini.

Se utilizzi Cloud DNS come provider DNS, consulta Aggiunta di un record.

  1. Recupera le informazioni del record DNS per le mappature dei tuoi domini utilizzando:

    Console

    1. Vai alla pagina delle mappature dei domini di Knative serving:

      Vai a Mappature di domini

    2. Fai clic sull'icona con i tre puntini verticali a destra del servizio, poi fai clic su RECORD DNS per visualizzare tutti i record DNS:

    gcloud

    gcloud run domain-mappings describe --domain DOMAIN

    Sostituisci DOMAIN con il tuo dominio personalizzato. Ad esempio, your-domain.com o subdomain.your-domain.com.

    Devi restituire tutti i record sotto l'intestazione resourceRecords.

  2. Accedi al tuo account presso il registrar del dominio e apri la pagina di configurazione DNS.

  3. Individua la sezione dei record dell'host nella pagina di configurazione del tuo dominio, quindi aggiungi ciascuno dei record di risorse che hai ricevuto quando hai mappato il tuo dominio al servizio Knative serving.

  4. Quando aggiungi ciascuno dei record DNS precedenti all'account del provider DNS:

    • Seleziona il tipo restituito nel record DNS nel passaggio precedente: A, AAAA, oppure CNAME.
    • Utilizza il nome www per mappare www.your-domain.com.
    • Utilizza il nome @ per mappare your-domain.com.
    • Utilizza il carattere jolly * per mappare *.your-domain.com.
  5. Salva le modifiche nella pagina di configurazione DNS dell'account del tuo dominio. Nella maggior parte dei casi, l'applicazione delle modifiche richiede solo pochi minuti, ma in alcuni casi possono essere necessarie diverse ore, a seconda del registrar e della durata (TTL) di eventuali record DNS precedenti per il tuo dominio. Puoi utilizzare uno strumento dig, come questa versione dig online, per confermare che i record DNS sono stati aggiornati correttamente.

  6. Per ottenere risultati ottimali, accedi al tuo servizio al nuovo URL, ad esempio https://www.your-domain.com. Tieni presente che l'emissione del certificato SSL/TLS gestito può richiedere diversi minuti.

Aggiunta di proprietari del dominio verificati ad altri utenti o account di servizio

Quando un utente verifica un dominio, questo viene verificato solo per l'account dell'utente. Ciò significa che solo quell'utente può aggiungere altre mappature di domini che utilizzano quel dominio. Pertanto, per consentire ad altri utenti di aggiungere mappature che utilizzano quel dominio, devi aggiungerli come proprietari verificati.

Se devi aggiungere proprietari verificati del tuo dominio ad altri utenti o account di servizio, puoi aggiungere l'autorizzazione tramite la pagina Search Console:

  1. Vai a questo indirizzo nel tuo browser web:

    https://search.google.com/search-console/welcome

  2. In Proprietà, fai clic sul dominio per cui vuoi aggiungere un account utente o di servizio.

  3. Scorri verso il basso fino all'elenco Proprietari verificati, fai clic su Aggiungi un proprietario, quindi inserisci l'indirizzo email o l'ID di un Account Google.

    Per visualizzare un elenco dei tuoi account di servizio, apri la pagina Account di servizio nella console Google Cloud:

    Vai alla pagina Account di servizio

Registrazione di un dominio con Cloud Domains all'interno della console Knative serving

Per registrare un dominio con Cloud Domains dalla console Knative serving:

  1. Vai alla pagina delle mappature dei domini di Knative serving:

    Vai a Mappature di domini

  2. Fai clic su Registra dominio.

  3. Completa il processo di registrazione seguendo le istruzioni per la registrazione di un dominio.

  4. Completa i passaggi precedenti in questa pagina per mappare il tuo dominio a Knative serving e poi aggiungi i record DNS presso il tuo registrar di domini.

Risoluzione dei problemi

Visualizza i problemi comuni in Risoluzione dei problemi relativi a domini personalizzati e TLS gestito.