Collega cluster di terze parti a Google Cloud (generazione precedente)

I cluster collegati a GKE consentono di visualizzare i tuoi cluster Kubernetes esistenti nella console Google Cloud insieme ai tuoi cluster GKE e di abilitare diverse funzionalità GKE, tra cui il controllo centralizzato della configurazione con Config Sync.

Cluster Kubernetes supportati

Puoi collegare al tuo parco risorse qualsiasi cluster Kubernetes conforme che include nodi x86 e visualizzarlo nella console Google Cloud con i tuoi cluster GKE.

I seguenti tipi e versioni di cluster sono stati convalidati da Google. Per informazioni sulle funzionalità di GKE supportate nei cluster collegati, consulta Supporto delle versioni e degli upgrade di GKE.

Tipi di cluster collegati Versioni di Kubernetes
Red Hat OpenShift Kubernetes Engine (OKE) 4.9, 4.10 1.23, 1.24
Red Hat OpenShift Container Platform (OCP) 4.9, 4.10 1.23, 1.24
Rancher Kubernetes Engine (RKE) 1.3.8 1.23, 1.24
KIND 0.12 1.23, 1.24
K3s 1.20 1,20
K3d 4.4.3 1,20

Prima di iniziare

  1. 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 senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Anthos API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Anthos API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Controlla i prerequisiti per la registrazione del parco risorse per assicurarti di disporre delle autorizzazioni pertinenti e delle API abilitate per registrare un cluster.
  15. Consulta la guida Prima di iniziare per i requisiti specifici per il collegamento di cluster esterni a Google Cloud, inclusi eventuali passaggi di configurazione speciali necessari per il tipo di cluster.

Registra i cluster collegati

Devi registrare tutti i cluster che vuoi utilizzare con le funzionalità GKE nel parco risorse del tuo progetto. Un parco risorse fornisce un modo per raggruppare e normalizzare logicamente i cluster Kubernetes, facilitando l'amministrazione dell'infrastruttura. I cluster nello stesso parco risorse possono essere sfogliati e gestiti insieme nella Google Cloud console e molti componenti GKE e Google Cloud utilizzano concetti di parco risorse come identità e spazio dei nomi identici per semplificare il lavoro con più cluster. Puoi scoprire molto di più sui parchi risorse e sulle funzionalità che consentono nella nostra guida alla gestione del parco risorse.

Hai il diritto di attivare e utilizzare le funzionalità di GKE su questi cluster e puoi gestire alcune funzionalità di GKE a livello di parco risorse dalla pagina delle funzionalità di GKE.

Configura l'identità

Tutti i cluster collegati richiedono un'identità da utilizzare per l'agente Connect durante l'autenticazione su Google. Se il cluster soddisfa i requisiti, puoi registrarlo con Workload Identity del parco risorse abilitata per l'autenticazione. I cluster con questa funzionalità abilitata utilizzano le identità di un pool di identità del workload del parco risorse a livello di parco risorse. Puoi scoprire di più sul funzionamento di Workload Identity del parco risorse e sui vantaggi del suo utilizzo in Utilizza Workload Identity del parco risorse.

Se non puoi utilizzare Workload Identity del parco risorse, la registrazione di un cluster collegato richiede un Google Cloud service account per l'autenticazione. Ti consigliamo di creare un nuovo account di servizio per ogni cluster che vuoi collegare. Per creare un account di servizio per un cluster con i ruoli appropriati, segui le istruzioni riportate in Creazione di un service account Google Cloud con gcloud. Dopo aver creato il account di servizio, puoi utilizzare il file JSON con le credenziali (file della chiave) del account di servizio per registrare il cluster, come descritto nella sezione successiva.

Registra il cluster

Ti consigliamo di controllare lo stato di appartenenza del cluster dopo averlo registrato per assicurarti che sia connesso correttamente a Google Cloud. Consulta la nostra guida alla risoluzione dei problemi se riscontri problemi con la registrazione.

gcloud

Esegui questo comando:

gcloud container fleet memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

Sostituisci quanto segue:

  • MEMBERSHIP_NAME: il nome dell'appartenenza che scegli e che viene utilizzato per rappresentare in modo univoco il cluster registrato nel parco risorse.
  • SERVICE_ACCOUNT_KEY_PATH: il percorso file locale del file JSON della chiave privata del account di servizio scaricato nell'ambito dei prerequisiti. Questa chiave del account di servizio viene archiviata come secret denominato creds-gcp nello spazio dei nomi gke-connect.
  • KUBECONFIG_CONTEXT: il contesto del cluster da registrare così come appare nel file kubeconfig. Puoi ottenere questo valore dalla riga di comando eseguendo kubectl config current-context.
  • KUBECONFIG_PATH: il percorso file locale in cui è archiviato il kubeconfig contenente una voce per il cluster in fase di registrazione. Il valore predefinito è $KUBECONFIG se la variabile di ambiente è impostata; altrimenti, il valore predefinito è $HOME/.kube/config.

Registra un cluster collegato con Workload Identity del parco risorse

Per registrare un cluster collegato con Workload Identity del parco risorse abilitata, esegui il seguente comando. Per ulteriori informazioni sui tipi di cluster collegati che possono utilizzare questa funzionalità e su eventuali requisiti aggiuntivi, consulta Prerequisiti dei cluster collegati.

gcloud container fleet memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --enable-workload-identity \
   --has-private-issuer

Console

Generare un comando di registrazione

Puoi utilizzare la console Google Cloud per generare un comando di registrazione gcloud per registrare il cluster (solo con unaccount di serviziot).

Per registrare un cluster:

  1. Nella console Google Cloud , vai alla pagina Panoramica dei cluster Google Kubernetes Engine.

    Vai ai cluster GKE

  2. Fai clic su Registra cluster esistente.

  3. Fai clic su Aggiungi cluster esterno.

  4. Inserisci il nome del cluster che vuoi registrare nel campo Nome cluster.

  5. (Facoltativo) Aggiungi Google Cloud etichette al cluster.

  6. Fai clic su Genera comando di registrazione.

  7. In Cloud Shell o ovunque tu abbia salvato le credenziali dell'account di servizio, modifica ed esegui il comando gcloud visualizzato nella pagina. Devi specificare i seguenti valori:

    • CLUSTER_CONTEXT è il contesto del cluster così come appare nel file kubeconfig. Puoi ottenere questo valore dalla riga di comando eseguendo kubectl config current-context.
    • KUBECONFIG_PATH è il percorso file locale in cui è archiviato il file kubeconfig. Il valore predefinito è $KUBECONFIG se la variabile di ambiente è impostata; in caso contrario, il valore predefinito è $HOME/.kube/config.
    • LOCAL_KEY_PATH è il percorso del file della chiave del account di servizio.

    L'esecuzione di questo comando esegue il deployment di Connect Agent nel cluster utente. Quando l'agente Connect si connette a Google Cloud e il cluster è registrato, viene visualizzato un messaggio di operazione riuscita nella pagina.

  8. Fai clic su Imposta etichette o su Salta se non hai impostato etichette.

Opzioni di registrazione avanzate (solo riga di comando)

Scarica il manifest dell'agente Connect

Per scaricare il manifest di installazione dell'agente Connect senza eseguire il deployment dell'agente, ad esempio se vuoi esaminare o modificare il manifest prima dell'installazione, passa il flag --manifest-output-file al comando gcloud container fleet memberships register. Ad esempio:

--manifest-output-file=[MANIFEST_FILE_PATH]

dove [MANIFEST_FILE_PATH] è il percorso file locale in cui vuoi che venga archiviato il manifest di installazione di Connect Agent.

Se utilizzi questa opzione, non verrà eseguito il deployment dell'agente Connect nel cluster. Per eseguire il deployment dell'agente Connect, applica manualmente il manifest scaricato al cluster.

Utilizzo di un server proxy

Per configurare un server proxy, trasmetti il flag --proxy al comando gcloud container fleet memberships register. Ad esempio:

--proxy=[URL]

dove [URL] è l'indirizzo proxy.

Connect Agent supporta solo proxy HTTP e HTTPS basati su CONNECT e accetta indirizzi IP e nomi host. Assicurati di specificare il protocollo corrispondente al tipo di proxy nell'URL. Ad esempio, per inserire un nome host HTTPS:

--proxy=https://mycorpproxy.com:443

Se non diversamente specificato, Connect Agent utilizza la porta 3128 per il proxy.

Se il proxy richiede l'autorizzazione, assicurati di inserire le tue credenziali, ad esempio:

--proxy=http://user:password@10.10.10.10:8888

Installazione di Connect Agent in un cluster con nodi Windows e Linux

L'agente di connessione deve essere eseguito su un nodo Linux. Se esegui l'installazione in un cluster misto con nodi Linux e Windows, puoi assicurarti che l'agente Connect venga eseguito il deployment su un nodo Linux aggiungendo un selettore di nodi appropriato alla definizione del deployment.

Esegui questo comando per aggiornare il deployment con il selettore di nodi appropriato:

kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect

Per verificare che l'aggiornamento sia andato a buon fine, esegui questo comando:

kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect

Il comando dovrebbe restituire:

{"kubernetes.io/os":"linux"}

Risoluzione dei problemi

Se riscontri problemi durante questa configurazione, consulta la guida alla risoluzione dei problemi relativa alla creazione della flotta.

Abilita le funzionalità di GKE sui cluster collegati

Dopo aver registrato i cluster, puoi attivare le funzionalità GKE disponibili per le tue applicazioni. Queste funzionalità sono supportate solo sui nostri tipi di cluster convalidati. Puoi visualizzare le versioni attuali delle funzionalità supportate su questi tipi in Supporto per versioni e upgrade.

Le seguenti guide mostrano come attivare le funzionalità supportate sui cluster:

Accedere ai cluster collegati

Dopo aver registrato un cluster collegato, questo viene visualizzato nelle pagine dei cluster GKE in Google Cloud console. Tuttavia, per visualizzare maggiori dettagli, come nodi e carichi di lavoro, devi accedere al cluster e autenticarti. Per accedere ai cluster collegati dalla console Google Cloud , segui le istruzioni riportate in Accesso ai cluster dalla console Google Cloud . A seconda del metodo di autenticazione scelto, tieni presente che tu o un amministratore della piattaforma potreste dover eseguire alcune configurazioni aggiuntive prima che tu o altri utenti possiate accedere al cluster.

Per accedere ai cluster collegati dalla riga di comando utilizzando un'identità Google Cloud , consulta Connessione ai cluster registrati con il gateway di Connect.

Per autenticarti nei cluster collegati utilizzando il tuo provider di identità di terze parti esistente (solo cluster EKS su AWS, funzionalità in anteprima), consulta Configurazione di GKE Identity Service per un parco risorse e Accesso ai cluster con GKE Identity Service.

Passaggi successivi