Questo documento spiega come rendere disponibile GKE su VMware per la gestione nella console Google Cloud. Ciò include una gestione di base, ad esempio la possibilità di accedere ai cluster e visualizzare i relativi carichi di lavoro, nonché la possibilità di abilitare la gestione del ciclo di vita dei cluster per eseguire l'upgrade, l'aggiornamento e l'eliminazione dei cluster.
Membri del parco risorse e console
Tutti GKE su VMware devono essere membri di un parco risorse, un modo unificato per visualizzare e gestire più cluster e i relativi carichi di lavoro. Ogni parco risorse di cluster è associato a un progetto host del parco risorse.
In GKE su VMware, un cluster di amministrazione viene registrato in un parco risorse al momento della creazione specificando il progetto host del parco risorse nella sezione gkeConnect
del file di configurazione del cluster. GKE su VMware utilizza queste informazioni per registrare il cluster nel progetto del parco risorse specificato. Se la registrazione non è andata a buon fine, puoi ritentare la registrazione eseguendo gkectl update credentials register
.
Tieni presente che quando riprovi la registrazione, non è necessario aggiornare la chiave dell'account di servizio Connect-registra. In altre parole, puoi continuare a utilizzare il tuo account di servizio originale Connect-Registration. Per saperne di più sul comando, consulta Rotazione delle chiavi degli account di servizio.
In GKE su VMware, un cluster utente è registrato in un parco risorse al momento della creazione:
Quando crei un cluster utente utilizzando
gkectl
, specifichi il progetto host del parco risorse nella sezionegkeConnect
del file di configurazione del cluster. GKE su VMware utilizza queste informazioni per registrare il cluster nel progetto del parco risorse specificato.Quando crei un cluster utente utilizzando uno strumento standard (la console, Google Cloud CLI o Terraform), il cluster diventa automaticamente un membro del parco risorse nel progetto specificato.
I membri del parco risorse al di fuori di Google Cloud, come GKE su VMware, vengono visualizzati nella console del progetto host del parco risorse, insieme ad altri cluster del parco risorse come GKE su Google Cloud. La misura in cui puoi gestire GKE su VMware dalla console dipende da quanto segue:
Se hai configurato l'autenticazione, puoi accedere ai cluster e visualizzare i relativi carichi di lavoro e altri dettagli.
Se hai abilitato la gestione del ciclo di vita dei cluster per il cluster, puoi anche eseguire l'upgrade, aggiornare o eliminare i cluster utente utilizzando la console. Se questa funzionalità non è abilitata, puoi gestire il ciclo di vita del cluster solo utilizzando
gkectl
sulla workstation di amministrazione.
Visualizza cluster registrati
Tutti i cluster del tuo parco risorse sono visualizzati nella pagina Panoramica dei cluster di Google Kubernetes Engine nella console. Questo ti offre una panoramica dell'intero parco risorse e, per GKE su VMware, ti consente di vedere quali cluster sono gestiti dall'API GKE On-Prem.
Per visualizzare i cluster del tuo parco risorse:
Nella console, vai alla pagina Panoramica dei cluster di Google Kubernetes Engine.
Seleziona il progetto Google Cloud.
Se nella colonna Tipo viene visualizzata la voce vm GKE su VMware, il cluster è gestito dall'API GKE On-Prem.
Se nella colonna Tipo è visualizzato il valore Esterno, il cluster non è gestito dall'API GKE On-Prem.
Per visualizzare ulteriori dettagli su un cluster, gli utenti devono accedere e autenticarsi nel cluster. A questo scopo, procedi nel seguente modo:
- Configurare un metodo di autenticazione
- Concedi agli utenti ruoli specifici per Identity and Access Management
Configura l'autenticazione
Come descritto in precedenza, tutti i cluster del parco risorse vengono visualizzati negli elenchi dei cluster GKE e GKE Enterprise nella console. Tuttavia, per visualizzare ulteriori dettagli come nodi e carichi di lavoro (e per eseguire attività di gestione del ciclo di vita dei cluster se la funzionalità è abilitata), gli utenti devono accedere ed eseguire l'autenticazione nel cluster. Per farlo, i cluster registrati devono essere configurati con uno dei seguenti metodi di autenticazione:
Identità Google: questa opzione consente agli utenti di accedere utilizzando la propria identità Google Cloud, che è l'indirizzo email associato al tuo account Google Cloud. Utilizza questa opzione se gli utenti hanno già accesso a Google Cloud con la propria identità Google. Se hai creato il cluster nella console, puoi accedervi utilizzando la tua identità Google, ma dovrai configurare l'autenticazione per gli altri utenti.
L'accesso con l'identità Google è l'approccio più semplice all'autenticazione nella console, in particolare se stai provando GKE su VMware con un'installazione minima, perciò abbiamo descritto più dettagliatamente come effettuare questa configurazione di seguito in Configurare l'autenticazione dell'identità Google.
OpenID Connect (OIDC): questa opzione consente agli utenti di accedere ai cluster dalla console utilizzando la propria identità da un provider di identità OIDC di terze parti come Okta o Microsoft AD FS. Ti consigliamo di utilizzare questa opzione se i tuoi utenti hanno già nomi utente, password e iscrizioni ai gruppi di sicurezza del tuo provider. Puoi scoprire come configurare l'autenticazione OIDC di terze parti per i tuoi cluster nelle seguenti guide:
Configura i cluster per GKE Identity Service con OIDC: questa guida mostra come configurare l'autenticazione OIDC su base cluster per cluster.
Configura GKE Identity Service per un parco risorse: questa opzione consente di configurare OIDC a livello di parco risorse.
Token di connessione: se le soluzioni fornite in precedenza da Google non sono adatte alla tua organizzazione, puoi configurare l'autenticazione utilizzando un account di servizio Kubernetes e il relativo token di connessione per accedere. Per maggiori dettagli, consulta Configurare un token di connessione.
Concedi i ruoli richiesti
L'accesso alla console è controllato da Identity and Access Management (IAM). Questi ruoli IAM sono necessari a prescindere dal metodo di autenticazione scelto. Per gestire il ciclo di vita del cluster nella console, devi concedere alcuni ruoli IAM.
Per consentire agli utenti di accedere alla console, devi almeno concedere i ruoli seguenti:
roles/container.viewer
. Questo ruolo consente agli utenti di visualizzare la pagina Cluster GKE e altre risorse dei container nella console. Per maggiori dettagli sulle autorizzazioni incluse in questo ruolo o per concedere un ruolo con autorizzazioni di lettura/scrittura, vedi Ruoli Kubernetes Engine nella documentazione IAM.roles/gkehub.viewer
. Questo ruolo consente agli utenti di visualizzare nella console i cluster esterni a Google Cloud. Per maggiori dettagli sulle autorizzazioni incluse in questo ruolo o per concedere un ruolo con autorizzazioni di lettura/scrittura, consulta Ruoli GKE Hub nella documentazione IAM.
Per consentire agli utenti di gestire il ciclo di vita del cluster nella console, concedi il ruolo IAM
roles/gkeonprem.admin
. Il ruoloroles/gkeonprem.admin
concede agli utenti l'accesso amministrativo all'API GKE On-Prem, utilizzata dalla console per gestire il ciclo di vita del cluster. Per maggiori dettagli sulle autorizzazioni incluse in questo ruolo, consulta Ruoli di GKE on-prem nella documentazione di IAM.
I comandi seguenti mostrano come concedere i ruoli minimi necessari per gestire il ciclo di vita del cluster nella console:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member=MEMBER \ --role=roles/container.viewer gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member=MEMBER \ --role=roles/gkehub.viewer gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member=MEMBER \ --role=roles/gkeonprem.admin
dove:
FLEET_HOST_PROJECT_ID
è il progetto host del parco risorse. Per i cluster creati utilizzandogkectl
, questo è il progetto che hai configurato nella sezionegkeConnect
del file di configurazione del cluster utente. Per i cluster creati nella console, questo è il progetto che hai scelto al momento della creazione del cluster.MEMBER
è l'indirizzo email dell'utente nel formatouser:emailID
, ad esempio:user:alice@example.com
Abilita la gestione del ciclo di vita del cluster nella console
I cluster utente creati utilizzando strumenti standard (la console, gcloud CLI o Terraform) vengono registrati automaticamente nell'API GKE On-Prem e ti consentono di eseguire attività di gestione del ciclo di vita dei cluster nella console. Se vuoi abilitare questa funzionalità per i cluster utente creati utilizzando gkectl
, segui i passaggi descritti in Configurare un cluster utente che sia gestito dall'API GKE On-Prem.
Quando la gestione del ciclo di vita del cluster è abilitata, puoi eseguire le seguenti attività dalla console:
- Esegui l'upgrade dei cluster utente
- Ridimensionare i cluster utente
- Crea e gestisci pool di nodi
- Eliminare i cluster utente
Configura l'autenticazione dell'identità Google
Per consentire agli utenti di accedere al cluster utilizzando la loro identità Google, devi configurare quanto segue:
Gli utenti devono avere ruoli IAM (Identity and Access Management) specifici per poter visualizzare e interagire con i cluster nella console nell'elenco dei cluster GKE e nelle pagine dell'elenco dei cluster GKE Enterprise.
Gli utenti devono essere aggiunti ai criteri di controllo dell'accesso dell'accesso basato sui ruoli (RBAC) di Kubernetes necessari per il gateway di connessione per accedere al server API Kubernetes del cluster tramite l'agente di connessione.
Configura l'autorizzazione RBAC
Il server API Kubernetes di ogni cluster deve essere in grado di autorizzare le richieste provenienti dalla console. Per configurare l'autorizzazione, devi configurare i criteri di controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes su ciascun cluster.
Se hai utilizzato uno strumento standard per creare il cluster utente, è possibile che ti siano già stati concessi i criteri RBAC appropriati che ti concedono l'accesso amministrativo completo al cluster. L'API GKE On-Prem aggiunge automaticamente il tuo Account Google come amministratore nei seguenti casi:
Hai creato il cluster utente nella console.
Hai creato il cluster utente utilizzando gcloud CLI e il tuo Account Google è stato specificato nel flag
--admin-users
nel comando cluster create.Hai creato il cluster utente utilizzando Terraform e il tuo Account Google è stato specificato nel campo
authorization.admin_users.username
.
I cluster utente creati utilizzando gkectl
non ti concedono i criteri RBAC per
amministrare il cluster utilizzando la console. Devi aggiungerti dopo aver creato il cluster. Indipendentemente dallo strumento utilizzato per creare il cluster, puoi aggiungerne altri come amministratori dopo la creazione del cluster.
Puoi utilizzare uno dei seguenti modi per concedere l'accesso amministrativo al cluster. Vengono forniti due diversi comandi gcloud
.
Il comando
gcloud ... generate-gateway-rbac
deve essere eseguito sulla workstation di amministrazione perché richiede l'accesso al contesto e a kubeconfig del cluster (che in genere sono disponibili solo sulla workstation di amministrazione). Il comandogenerate-gateway-rbac
consente di personalizzare i criteri RBAC, ma gli indirizzi email degli utenti non verranno visualizzati come amministratori nella sezione Dettagli del cluster della console.Il comando
gcloud ... update
può essere eseguito sulla workstation di amministrazione o su qualsiasi computer che ha accesso all'API GKE On-Prem.
generate-gateway-rbac
Connettiti alla workstation di amministrazione.
Esegui questo comando per aggiornare i componenti:
gcloud components update
Genera e applica i criteri RBAC al tuo cluster per gli utenti e gli account di servizio:
gcloud container fleet memberships generate-gateway-rbac \ --membership=MEMBERSHIP_NAME \ --role=ROLE \ --users=USERS \ --project=FLEET_HOST_PROJECT_ID \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT \ --apply
Sostituisci quanto segue:
- MEMBERSHIP_NAME: il nome utilizzato per rappresentare in modo univoco il cluster nel relativo parco risorse. In GKE su VMware, il nome dell'appartenenza e il nome del cluster sono gli stessi.
- ROLE: il ruolo Kubernetes che vuoi concedere agli utenti nel cluster. Per concedere agli utenti l'accesso completo a tutte le risorse del cluster in tutti gli spazi dei nomi, specifica
clusterrole/cluster-admin
. Per fornire l'accesso di sola lettura, specificaclusterrole/view
. Puoi anche creare un ruolo personalizzato, ad esempio:role/mynamespace/namespace-reader
. Il ruolo personalizzato deve già esistere prima di eseguire il comando. - USERS: gli indirizzi email degli utenti (account utente o
account di servizio) a cui vuoi concedere le autorizzazioni, sotto forma di elenco separato da virgole. Ad esempio:
--users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com
. - FLEET_HOST_PROJECT_ID: l'ID del progetto host del parco risorse.
- KUBECONFIG_PATH: il percorso locale in cui è archiviato il file kubeconfig contenente una voce per il cluster.
KUBECONFIG_CONTEXT: il contesto del cluster come viene visualizzato nel file kubeconfig. Puoi ottenere il contesto attuale dalla riga di comando eseguendo
kubectl config current-context
. Che tu utilizzi o meno il contesto attuale, assicurati che funzioni per l'accesso al cluster eseguendo un semplice comando come:kubectl get namespaces \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT
Dopo aver eseguito
gcloud container fleet memberships generate-gateway-rbac
, vedrai un testo simile al seguente alla fine dell'output, troncato per la leggibilità:Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /usr/local/google/home/foo/.kube/config, context: kind-kind Writing RBAC policy for user: foo@example.com to cluster. Successfully applied the RBAC policy to cluster.
Questo è il contesto per accedere al cluster tramite il gateway di connessione.
Per maggiori dettagli sul comando
generate-gateway-rbac
, consulta la guida di riferimento dell'interfaccia a riga di comando gcloud.
update
Esegui questo comando per aggiornare i componenti:
gcloud components update
Per ogni utente a cui deve essere concesso il ruolo
clusterrole/cluster-admin
, includi il flag--admin-users
ed esegui questo comando: Non puoi specificare più utenti in un unico flag. Assicurati di includere il tuo Account Google nel comando perché il comando sovrascrive l'elenco di autorizzazioni con gli utenti specificati nel comando.gcloud container vmware clusters update USER_CLUSTER_NAME \ --admin-users YOUR_GOOGLE_ACCOUNT \ --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
Oltre a concedere il ruolo Kubernetes clusterrole/cluster-admin
, il comando concede i criteri RBAC necessari agli utenti per accedere al cluster tramite Connetti gateway.
Console
Per applicare i criteri RBAC agli utenti, segui questi passaggi nella console:
Nella console, vai alla pagina Panoramica dei cluster di Google Kubernetes Engine.
Seleziona il progetto Google Cloud in cui si trova il cluster utente.
Nell'elenco dei cluster, fai clic sul nome del cluster e poi su Altri dettagli nel riquadro Dettagli.
Nella sezione Autorizzazione, fai clic sul campo Utenti amministratori del cluster e inserisci l'indirizzo email di ciascun utente.
Quando hai finito di aggiungere gli utenti, fai clic su Fine.
Ulteriori informazioni
- Panoramica della gestione del parco risorse
- Utilizzare i cluster dalla console Google Cloud
- Panoramica di Connect
- Panoramica dell'agente Connect