Gestire i cluster dalla console Google Cloud

Questo documento spiega come rendere disponibili per la gestione nella Google Cloud console i cluster creati con il software Google Distributed Cloud per VMware. Ciò include la gestione di base, ad esempio la possibilità di accedere ai cluster e visualizzare i relativi workload, nonché come attivare la gestione del ciclo di vita dei cluster in modo da poter eseguire l'upgrade, l'aggiornamento ed eliminare i cluster.

Membri del gruppo e console

Tutti i cluster Google Distributed Cloud devono essere membri di un parco risorse, un modo unificato per visualizzare e gestire più cluster e i relativi workload. Ogni parco risorse di cluster è associato a un progetto host del parco risorse.

In Google Distributed Cloud, 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. Google Distributed Cloud utilizza queste informazioni per registrare il cluster nel progetto fleet specificato. Se la registrazione non è andata a buon fine, puoi riprovare eseguendo gkectl update credentials register.

Tieni presente che quando riprovi la registrazione, non devi aggiornare la chiave dell'account di servizio connect-register. In altre parole, puoi continuare a utilizzare il tuo account del servizio di connessione e registrazione originale. Per ulteriori informazioni sul comando, consulta Rotazione account di servizio account.

In Google Distributed Cloud, un cluster utente viene registrato in un parco risorse al momento della creazione:

  • Quando crei un cluster utente utilizzando gkectl, specifica il progetto host del parco risorse nella sezione gkeConnect del file di configurazione del cluster. Google Distributed Cloud utilizza queste informazioni per registrare il cluster nel progetto 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 progetti nel progetto che specifichi.

I membri del parco risorse al di fuori di Google Cloud , come Google Distributed Cloud, vengono visualizzati nella console del progetto host del parco risorse, insieme ad altri cluster del parco risorse come GKE su Google Cloud. Il livello di gestione di Google Distributed Cloud dalla console dipende da quanto segue:

  • Se hai configurato l'autenticazione, puoi accedere ai tuoi cluster e visualizzare i relativi workload e altri dettagli.

  • Se hai attivato la gestione del ciclo di vita del cluster per il cluster, puoi anche eseguire l'upgrade, l'aggiornamento o l'eliminazione dei 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 i cluster registrati

Tutti i cluster del parco progetti vengono visualizzati nella pagina Panoramica dei cluster Google Kubernetes Engine nella console. In questo modo puoi avere una panoramica dell'intera flotta e, per Google Distributed Cloud, vedere quali cluster sono gestiti dall'API GKE On-Prem.

Per visualizzare i cluster del parco risorse:

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

    Vai ai cluster GKE

  2. Seleziona il progetto Google Cloud .

    • Se nella colonna Tipo viene visualizzato vm Google Distributed Cloud, il cluster è gestito dall'API GKE On-Prem.

    • Se nella colonna Tipo viene visualizzato Esterno, il cluster non è gestito dall'API GKE On-Prem.

Per visualizzare ulteriori dettagli su un cluster, gli utenti devono accedere e autenticarsi al cluster. A questo scopo, devi:

Configura l'autenticazione

Come descritto in precedenza, tutti i cluster del parco risorse vengono visualizzati negli elenchi dei cluster GKE nella console. Tuttavia, per visualizzare maggiori dettagli, come nodi e workload (e per eseguire attività di gestione del ciclo di vita del cluster se la funzionalità è abilitata), gli utenti devono accedere al cluster ed eseguire l'autenticazione. A questo scopo, 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 , ovvero l'indirizzo email associato al tuo accountGoogle Cloud . Utilizza questa opzione se gli utenti hanno già accesso a Google Cloud con la loro identità Google. Se hai creato il cluster nella console, puoi accedervi utilizzando la tua identità Google, ma dovrai configurare l'autenticazione per altri utenti.

    L'accesso con l'identità Google è l'approccio più semplice per l'autenticazione nella console, in particolare se stai provando Google Distributed Cloud con un'installazione minima. Per questo motivo, abbiamo descritto in modo più dettagliato come configurare questa opzione 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. Potresti voler utilizzare questa opzione se i tuoi utenti hanno nomi utente, password e appartenenze a gruppi di sicurezza esistenti del tuo provider. Puoi scoprire come configurare l'autenticazione OIDC di terze parti per i tuoi cluster nelle seguenti guide:

  • Token di autenticazione: se le soluzioni fornite da Google precedenti non sono adatte alla tua organizzazione, puoi configurare l'autenticazione utilizzando un service account Kubernetes e il relativo token di autenticazione per accedere. Per maggiori dettagli, vedi Configurare l'utilizzo di un token di autenticazione.

Concedere i ruoli richiesti

L'accesso alla console è controllato da Identity and Access Management (IAM). Questi ruoli IAM sono necessari indipendentemente 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 concedere almeno i seguenti ruoli:

    • roles/container.viewer. Questo ruolo consente agli utenti di visualizzare la pagina Cluster GKE e altre risorse container nella console. Per informazioni dettagliate sulle autorizzazioni incluse in questo ruolo o per concedere un ruolo con autorizzazioni di lettura/scrittura, consulta la sezione Ruoli Kubernetes Engine nella documentazione IAM.

    • roles/gkehub.viewer. Questo ruolo consente agli utenti di visualizzare i cluster al di fuori di Google Cloud nella console. Per informazioni dettagliate 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 ruolo roles/gkeonprem.admin concede agli utenti l'accesso amministrativo all'API GKE On-Prem, che la console utilizza per gestire il ciclo di vita del cluster. Per informazioni dettagliate sulle autorizzazioni incluse in questo ruolo, consulta Ruoli GKE On-Prem nella documentazione IAM.

I seguenti comandi 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 utilizzando gkectl, questo è il progetto che hai configurato nella sezione gkeConnect del file di configurazione del cluster utente. Per i cluster creati nella console, questo è il progetto che hai scelto durante la creazione del cluster.

  • MEMBER è l'indirizzo email dell'utente nel formato user:emailID, ad esempio: user:alice@example.com

Abilitare 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 del cluster nella console. Se vuoi attivare questa funzionalità per i cluster utente creati utilizzando gkectl, segui i passaggi descritti in Configurare un cluster utente da gestire tramite l'API GKE On-Prem. Quando la gestione del ciclo di vita del cluster è abilitata, puoi eseguire le seguenti attività dalla console:

Configurare l'autenticazione dell'identità Google

Per consentire agli utenti di accedere al cluster utilizzando la propria identità Google, devi configurare quanto segue:

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 dicontrollo dell'accessoo basato sui ruoli (RBAC) di Kubernetes su ogni cluster.

Se hai utilizzato uno strumento standard per creare il cluster utente, è possibile che ti siano già state concesse le policy RBAC appropriate che ti garantiscono 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 di creazione del cluster.

  • 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 la creazione del cluster. Indipendentemente dallo strumento utilizzato per creare il cluster, puoi aggiungere altri utenti come amministratori dopo la creazione del cluster.

Puoi utilizzare uno dei seguenti modi per concedere l'accesso amministrativo al cluster. Sono disponibili due diversi comandi gcloud.

  • Il comando gcloud ... generate-gateway-rbac deve essere eseguito sulla workstation di amministrazione perché richiede l'accesso al kubeconfig e al contesto del cluster (che in genere si trovano solo sulla workstation di amministrazione). Il comando generate-gateway-rbac consente di personalizzare i criteri RBAC, ma gli indirizzi email degli utenti non verranno visualizzati come amministratori nella sezione Dettagli cluster della console.

  • Il comando gcloud ... update può essere eseguito sulla workstation di amministrazione o su qualsiasi computer che abbia accesso all'API GKE On-Prem.

generate-gateway-rbac

  1. Connettiti alla workstation amministrativa.

  2. Esegui questo comando per aggiornare i componenti:

    gcloud components update
    
  3. Genera e applica i criteri RBAC al cluster per utenti e service account:

    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 suo parco risorse. In Google Distributed Cloud, il nome dell'appartenenza e il nome del cluster sono uguali.
    • ROLE: il ruolo Kubernetes che vuoi concedere agli utenti del 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 in sola lettura, specifica clusterrole/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 service account) a cui vuoi concedere le autorizzazioni, come elenco separato da virgole. Ad esempio: --users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com.
    • FLEET_HOST_PROJECT_ID: l'ID progetto del progetto host del parco.
    • KUBECONFIG_PATH: il percorso locale in cui è archiviato il file kubeconfig contenente una voce per il cluster.
    • KUBECONFIG_CONTEXT: il contesto del cluster così come appare nel file kubeconfig. Puoi ottenere il contesto attuale dalla riga di comando eseguendo kubectl config current-context. Indipendentemente dal fatto che utilizzi o meno il contesto attuale, assicurati che funzioni per accedere 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, alla fine dell'output viene visualizzato un testo simile al seguente, che è troncato per facilitarne la lettura:

    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 di gcloud CLI.

update

  1. Esegui questo comando per aggiornare i componenti:

    gcloud components update
    
  2. Per ogni utente a cui deve essere concesso il ruolo clusterrole/cluster-admin, includi il flag --admin-users ed esegui il seguente comando. Non puoi specificare più utenti in un singolo flag. Assicurati di includere il tuo Account Google nel comando, perché questo sovrascrive l'elenco di concessione con gli utenti specificati.

    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 agli utenti i criteri RBAC necessari per accedere al cluster tramite il gateway Connect.

Console

Per applicare le policy RBAC agli utenti, segui questi passaggi nella console:

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

    Vai ai cluster GKE

  2. Seleziona il Google Cloud progetto in cui si trova il cluster utente.

  3. Nell'elenco dei cluster, fai clic sul nome del cluster per visualizzarne i dettagli.

  4. Nella sezione Autorizzazione, fai clic sul pulsante di modifica Utenti amministratore.

  5. Inserisci l'indirizzo email dell'utente che vuoi aggiungere come amministratore del cluster nel riquadro Modifica autorizzazione. Per aggiungere altri utenti amministratore, fai clic su Aggiungi utente amministratore.

  6. Quando hai finito di aggiungere gli utenti, fai clic su Salva modifiche.

Ulteriori informazioni