Gestisci i cluster dalla console Google Cloud

Questo documento spiega come rendere GKE su Bare Metal disponibile 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 Bare Metal devono far parte 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 Bare Metal, un cluster utente è registrato in un parco risorse al momento della creazione:

  • Quando crei un cluster utilizzando bmctl, specifichi il progetto host del parco risorse nella sezione gkeConnect del file di configurazione del cluster. GKE su Bare Metal utilizza queste informazioni per registrare il cluster nel progetto del parco risorse specificato.

  • Quando crei un cluster utente nella console, il cluster diventa automaticamente un membro del parco risorse nel progetto selezionato nella console.

I membri del parco risorse al di fuori di Google Cloud, come GKE su Bare Metal, vengono visualizzati nella console nel 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 Bare Metal dalla console dipende da quanto segue:

  • Se hai configurato l'autenticazione, puoi accedere ai cluster e visualizzarne i 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. Per farlo, il cluster deve essere gestito da un servizio chiamato API GKE On-Prem. Per i cluster utente creati nella console, la gestione del ciclo di vita dei cluster viene abilitata al momento della creazione del cluster oppure puoi abilitare questa funzionalità in un secondo momento per i cluster utente creati utilizzando bmctl. Se questa funzionalità non è abilitata, puoi gestire il ciclo di vita del cluster solo utilizzando bmctl sulla workstation di amministrazione.

Visualizza cluster registrati

Tutti i cluster del parco risorse sono visualizzati nella pagina Cluster GKE della console. Entrambi offrono una panoramica dell'intero parco risorse e, per GKE su Bare Metal, ti consente di vedere quali cluster sono gestiti dall'API GKE On-Prem.

Per visualizzare i cluster del tuo parco risorse:

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

    Vai ai cluster GKE

  2. Seleziona il progetto Google Cloud.

    • Se nella colonna Tipo è visualizzato Bare metal, 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, devi accedere e autenticarti nel cluster. Per eseguire questa operazione, procedi nel seguente modo:

Configura l'autenticazione

Come descritto in precedenza, tutti i cluster del parco risorse vengono visualizzati nella pagina dei cluster GKE 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), devi accedere e autenticarti nel cluster. A tale scopo, i cluster registrati devono essere configurati con uno dei seguenti metodi di autenticazione:

  • Identità Google: questa opzione ti consente di accedere utilizzando Google Cloud Identity, 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.

    Accedi con l'identità Google è l'approccio più semplice all'autenticazione nella console, perciò abbiamo descritto come configurare questa funzionalità in maggiore dettaglio in Configurare l'autenticazione dell'identità Google.

  • OpenID Connect (OIDC): questa opzione ti consente di accedere ai cluster dalla console utilizzando la loro 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:

  • 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 IAM di Google Cloud. Per gestire il ciclo di vita del cluster nella console, devi concedere alcuni ruoli IAM agli utenti che non sono proprietari del progetto:

  • 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 e scrittura, consulta 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 e 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, 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 PROJECT_ID \
    --member=MEMBER \
    --role=roles/container.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkeonprem.admin

dove:

  • PROJECT_ID è il progetto host del parco risorse. Per i cluster creati utilizzando bmctl, 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 al momento della creazione del cluster.

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

Abilita la gestione del ciclo di vita del cluster nella console

I cluster utente creati nella console sono gestiti automaticamente dall'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 bmctl, segui i passaggi descritti in Configurare un cluster utente che sia gestito dall'API GKE On-Prem. Se la gestione del ciclo di vita dei cluster è abilitata, puoi aggiornare i cluster dalla console:

  • Aggiorna cluster utente
  • Aggiungi o rimuovi pool di nodi sui cluster utente
  • Elimina 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 disporre di ruoli Identity and Access Management (IAM) specifici per poter visualizzare e interagire con i cluster nella console nella pagina Cluster GKE.

  • 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 quando si utilizza l'agente Connect.

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 creato il cluster nella console, l'API GKE On-Prem aggiunge il tuo account utente come amministratore e crea criteri RBAC appropriati che ti concedono l'accesso amministrativo completo al cluster.

Interfaccia a riga di comando gcloud

Per applicare i criteri RBAC agli utenti, segui questi passaggi sulla workstation di amministrazione:

  1. Esegui questi comandi per accedere con il tuo Account Google e aggiornare i componenti:

    gcloud auth login
    gcloud components update
    
  2. 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=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 Bare Metal, 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 limitare l'accesso, crea 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.
    • PROJECT_ID: l'ID del progetto host del parco risorse.
    • KUBECONFIG_PATH: il percorso locale del file kubeconfig che contiene 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.

BMC

Per applicare i criteri RBAC agli utenti, segui questi passaggi sulla workstation di amministrazione:

  1. Aggiungi la sezione clusterSecurity.authorization al file di configurazione del cluster. Specifica il tuo indirizzo email e l'indirizzo email di altri utenti che devono amministrare il cluster. Ad esempio:

    ...
    clusterSecurity:
      authorization:
        clusterAdmin:
          gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com]
    ...
    
  2. Aggiorna il cluster:

    bmctl update cluster \
        -c CLUSTER_NAME \
        --kubeconfig=KUBECONFIG
    

    Apporta le seguenti modifiche:

    • Sostituisci CLUSTER_NAME con il nome del cluster che vuoi aggiornare.
    • Se il cluster è a gestione autonoma (ad esempio un cluster di amministrazione o autonomo), sostituisci KUBECONFIG con il percorso del file kubeconfig del cluster. Se il cluster è un cluster utente, sostituisci KUBECONFIG con il percorso del file kubeconfig del cluster admin.

Ulteriori informazioni