Configura i domini personalizzati da utilizzare per accedere ai servizi Knative serving. Puoi mappare uno o più domini personalizzati a un singolo servizio oppure puoi mappare un singolo dominio al cluster in modo che tutti i servizi lo utilizzino. La mappatura del dominio personalizzato
può essere il dominio di base, ad esempio 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 servizi a un URL come:
http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
Scopri di più sui domini di test.
Prima di iniziare
Devi avere o acquistare il dominio che vuoi mappare ai tuoi servizi. Puoi utilizzare qualsiasi registrar di nomi di dominio, ma se utilizzi Cloud Domains, il dominio viene verificato automaticamente per Knative serving, quindi non dovrai eseguire la procedura di verifica del dominio.
Se vuoi registrare un dominio con Cloud Domains, consulta Registrare un dominio con Cloud Domains nella console Knative serving.
Devi disporre almeno del ruolo Identity and Access Management _Kubernetes Engine Developer_ o di autorizzazioni equivalenti.
Per abilitare HTTPS con le mappature di domini personalizzati, devi configurare i certificati TLS gestiti o i tuoi certificati.
Per mappare un dominio personalizzato al cluster o ai servizi in una rete privata interna, devi disabilitare i certificati TLS gestiti.
Mappare un dominio personalizzato
Puoi utilizzare la Google Cloud consoleo gli strumenti a riga di comando per mappare il tuo dominio personalizzato.
In genere, per configurare un dominio personalizzato:
- (Facoltativo) Prenota l'indirizzo IP del bilanciatore del carico.
- Mappa i servizi o il cluster al dominio personalizzato in Knative serving.
- Aggiorna i record DNS nel registrar del dominio.
Prenotare l'indirizzo IP del bilanciatore del carico
Quando Knative serving è installato, il controller di ingresso Istio 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 di ingresso Istio:
- Fuori Google Cloud
- Consulta la documentazione dell'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. Consulta anche le pagine di configurazione del tuo cluster GKE. Ad esempio, a seconda di come hai configurato il bilanciamento del carico per Google Distributed Cloud, potresti aver già prenotato questi indirizzi IP.
- Su Google Cloud
Devi prenotare l'indirizzo IP esterno del bilanciatore del carico per assicurarti che rimanga lo stesso se il servizio di ingresso viene mai eliminato. A seconda della configurazione del cluster, l'indirizzo IP è disponibile esternamente o solo internamente, ad esempio, per i cluster privati.
- Bilanciatori del carico interni su Google Cloud
- Per maggiori dettagli su come prenotare l'indirizzo IP del bilanciatore del carico interno, consulta la pagina Prenotare un indirizzo IP interno statico.
- Bilanciatori del carico esterni su Google Cloud
- Per prenotare l'indirizzo IP del bilanciatore del carico esterno:
Ottieni l'indirizzo IP del bilanciatore del carico:
Console
Per ottenere l'indirizzo IP esterno del bilanciatore del carico dalla Google Cloud console:- Vai alla pagina GKE nella Google Cloud console:
Vai a GKE - Fai clic su Servizi e ingress.
- Identifica il servizio che è l'ingresso Istio
del cluster. Il Tipo del servizio sarà Bilanciatore del carico
esterno e il Nome sarà
istio-ingressgateway. - Una volta trovato il servizio di ingresso Istio del cluster, copia il relativo
Endpoint. Questo sarà l'indirizzo IP senza il numero di porta. Ad esempio, potresti vedere
00.000.000.000:11elencato come un endpoint, ma devi copiare solo00.000.000.000.
kubectl
Per ottenere l'IP esterno del bilanciatore del carico, esegui il comando seguente:
kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE
Sostituisci ASM-INGRESS-NAMESPACE con lo spazio dei nomi in cui si trova l'ingresso di Cloud Service Mesh. Specifica
istio-systemse hai installato Cloud 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 è l'indirizzo IP esterno del bilanciatore del carico.
- Vai alla pagina GKE nella Google Cloud console:
Prenota l'indirizzo IP come indirizzo IP statico:
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
Sostituisci:
- ADDRESS-NAME con il nome che vuoi assegnare all'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 dominio personalizzato:
Mappare i servizi
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
Apri la pagina delle mappature dei domini nella Google Cloud console:
Tieni presente che se la finestra di visualizzazione è troppo piccola, il pulsante Mappa domini personalizzati non viene visualizzato e devi fare clic sull'icona con tre puntini verticali nell'angolo in alto a destra della pagina.
Fai clic su Aggiungi mappatura e seleziona Aggiungi mappatura di dominio di servizio per mappare un dominio a un singolo servizio. Puoi mappare più domini a ogni servizio.
Nell'elenco a discesa del modulo Aggiungi mappatura, seleziona il servizio a cui vuoi mappare il dominio personalizzato:
Inserisci il nome del dominio, ad esempio
your-domain.comosubdomain.your-domain.com. Requisiti del dominio:- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso URL che segue il nome di dominio. Ad esempio,
usersè il percorso di base diyour-domain.com/users. Knative serving consente di mappare un dominio solo a/, non a un percorso di base specifico. Pertanto, qualsiasi routing del percorso ha da gestire utilizzando un router all'interno del container del servizio o utilizzando Firebase Hosting. -
Non puoi mappare il 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 all'indirizzotest.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominiotest.default.your-domain.com.
- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso URL che segue il nome di dominio. Ad esempio,
Fai clic su Continua.
Aggiorna i 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 Record DNS nel menu delle azioni "..." per una mappatura di dominio.
Fai clic su Fine.
gcloud
Mappa il servizio al dominio personalizzato:
gcloud run domain-mappings create --service SERVICE --domain DOMAIN
Sostituisci:
- SERVICE con il nome del servizio.
- DOMAIN con il dominio personalizzato. Ad esempio,
your-domain.comosubdomain.your-domain.com. Requisiti del dominio:- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che segue il nome di dominio. Ad esempio,
usersè il percorso di base diyour-domain.com/users. Knative serving consente di mappare un dominio solo a/, non a un percorso di base specifico. Pertanto, qualsiasi routing del percorso ha da gestire utilizzando un router all'interno del container del servizio o utilizzando Firebase Hosting. -
Non puoi mappare il 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 all'indirizzotest.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominiotest.default.your-domain.com.
- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che segue il nome di dominio. Ad esempio,
Ora che il dominio personalizzato è mappato a Knative serving, devi aggiungere i record DNS nel registrar del dominio.
Mappare i cluster
Scegli uno dei seguenti metodi per mappare il dominio personalizzato al cluster:
Console
Apri la pagina delle mappature dei domini nella Google Cloud console:
Tieni presente che se la finestra di visualizzazione è troppo piccola, il pulsante Mappa domini personalizzati non viene visualizzato e devi fare clic sull'icona con tre puntini verticali nell'angolo in alto a destra della pagina.
Fai clic su Aggiungi mappatura e seleziona Aggiungi dominio predefinito per mappare un dominio a tutti i servizi del cluster. Per impostazione predefinita, i nuovi servizi di cui esegui il deployment utilizzano il dominio mappato.
Fai clic sulla casella di controllo per applicare la nuova mappatura di dominio a tutti i servizi esistenti nel cluster.
Nell'elenco a discesa del modulo Aggiungi mappatura, seleziona il cluster a cui vuoi mappare il dominio personalizzato:
Inserisci il nome di dominio. ad esempio
your-domain.comosubdomain.your-domain.com. Requisiti del dominio:- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso URL che segue il nome di dominio. Ad esempio,
usersè il percorso di base diyour-domain.com/users. Knative serving consente di mappare un dominio solo a/, non a un percorso di base specifico. Pertanto, qualsiasi routing del percorso ha da gestire utilizzando un router all'interno del container del servizio o utilizzando Firebase Hosting. -
Non puoi mappare il 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 all'indirizzotest.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominiotest.default.your-domain.com.
- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso URL che segue il nome di dominio. Ad esempio,
Fai clic su Continua.
Aggiorna i 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 Record DNS nel menu delle azioni "..." per una mappatura di dominio.
Fai clic su Fine.
kubectl
Esegui il comando seguente per rimuovere il dominio di base esistente da ConfigMap
config-domaine sostituirlo con il dominio personalizzato:kubectl patch configmap config-domain --namespace knative-serving --patch \ '{"data": {"nip.io": null, "DOMAIN": ""}}'
Sostituisci DOMAIN con il dominio personalizzato. Ad esempio,
your-domain.comosubdomain.your-domain.com. Requisiti del dominio:- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che segue il nome di dominio. Ad esempio,
usersè il percorso di base diyour-domain.com/users. Knative serving consente di mappare un dominio solo a/, non a un percorso di base specifico. Pertanto, qualsiasi routing del percorso ha da gestire utilizzando un router all'interno del container del servizio o utilizzando Firebase Hosting. -
Non puoi mappare il 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 all'indirizzotest.default.your-domain.com, non devi creare una mappatura di dominio allo stesso sottodominiotest.default.your-domain.com.
- La mappatura del percorso di base non è supportata. Il termine percorso di base si riferisce al nome del percorso dell'URL che segue il nome di dominio. Ad esempio,
Ora che il dominio personalizzato è mappato a Knative serving, devi aggiungere i record DNS nel registrar del dominio.
Aggiungere i record DNS nel registrar del dominio
Dopo aver mappato il servizio a un dominio personalizzato in Knative serving, devi aggiornare i record DNS nel registrar del dominio. Per comodità, Knative serving genera e visualizza i record DNS che devi inserire. Devi aggiungere questi record che rimandano al servizio Knative serving nel registrar del dominio affinché la mappatura diventi effettiva.
Se utilizzi Cloud DNS come provider DNS, consulta Aggiungere un record.
Recupera le informazioni sui record DNS per le mappature dei domini utilizzando:
Console
Vai alla pagina delle mappature dei domini Knative serving:
Fai clic sull'icona con tre puntini verticali a destra del servizio, quindi fai clic su RECORD DNS per visualizzare tutti i record DNS:
gcloud
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il dominio personalizzato. Ad esempio,
your-domain.comosubdomain.your-domain.com.Ti servono tutti i record restituiti sotto l'intestazione
resourceRecords.Accedi al tuo account nel registrar del dominio e poi apri la pagina di configurazione DNS.
Individua la sezione dei record host della pagina di configurazione del dominio e poi aggiungi ciascuno dei record di risorse che hai ricevuto quando hai mappato il dominio al servizio Knative serving.
Quando aggiungi ciascuno dei record DNS sopra indicati all'account del provider DNS:
- Seleziona il tipo restituito nel record DNS nel passaggio precedente:
AoAAAA, oCNAME. - Utilizza il nome
wwwper mappare awww.your-domain.com. - Utilizza il nome
@per mappareyour-domain.com. - Utilizza il
carattere jolly
*per mappare a*.your-domain.com.
- Seleziona il tipo restituito nel record DNS nel passaggio precedente:
Salva le modifiche nella pagina di configurazione DNS dell'account del dominio. Nella maggior parte dei casi, l'applicazione di queste modifiche richiede solo pochi minuti, ma in alcuni casi può richiedere fino a diverse ore, a seconda del registrar e del Time-To-Live (TTL) di eventuali record DNS precedenti per il tuo dominio. Puoi utilizzare uno
digstrumento, ad esempio questa versionedigonline, per verificare che i record DNS siano stati aggiornati correttamente.Verifica che l'operazione sia andata a buon fine accedendo al 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.
Aggiungere proprietari di domini verificati ad altri utenti o service account
Quando un utente verifica un dominio, questo viene verificato solo per l'account dell'utente. Ciò significa che solo l'utente può aggiungere altre mappature di dominio 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 service account, puoi aggiungere l'autorizzazione tramite la pagina Search Console:
Vai a questo indirizzo nel browser web:
In Proprietà, fai clic sul dominio per il quale vuoi aggiungere un utente o un account di servizio.
Scorri verso il basso fino all'elenco Proprietari verificati, fai clic su Aggiungi un proprietario e poi inserisci un indirizzo email dell'Account Google o un ID del account di servizio.
Per visualizzare un elenco dei tuoi service account, apri la pagina Service account nella Google Cloud console:
Registrare un dominio con Cloud Domains nella console Knative serving
Per registrare un dominio con Cloud Domains dalla console Knative serving:
Vai alla pagina delle mappature dei domini di distribuzione Knative serving:
Fai clic su Registra dominio.
Completa la procedura di registrazione seguendo le istruzioni per la registrazione di un dominio.
Completa i passaggi precedenti in questa pagina per mappare il dominio a Knative serving e poi aggiungi i record DNS nel registrar del dominio.
Risoluzione dei problemi
Consulta i problemi comuni in Risoluzione dei problemi relativi a domini personalizzati e TLS gestito.