Crea un cluster di amministrazione utilizzando la console Google Cloud

La console Google Cloud ti consente di creare un cluster di amministrazione per il software Distributed Cloud solo per VMware tramite un flusso di lavoro guidato. Durante il workflow, esegui gkectl register bootstrap sulla workstation di amministrazione per creare un cluster di bootstrap temporaneo che esegue il provisioning del cluster di amministrazione. In alternativa, puoi creare un cluster di amministrazione utilizzando gkectl o Terraform.

Prima di iniziare

  • Assicurati di aver configurato e di poter accedere alla tua workstation di amministrazione come descritto in Crea una workstation di amministrazione.

  • Assicurati che i file delle chiavi JSON per i service account si trovino sulla tua workstation di amministrazione.

  • Consulta il documento di pianificazione degli indirizzi IP. Assicurati di avere un numero sufficiente di indirizzi IP disponibili per i tre nodi del control plane e un VIP del control plane. Se prevedi di creare cluster utente kubeception, devi disporre di un numero sufficiente di indirizzi IP disponibili per i nodi del control plane di questi cluster utente.

  • Consulta la panoramica del bilanciamento del carico e rivedi la tua decisione sul tipo di bilanciatore del carico che vuoi utilizzare. Per i bilanciatori del carico manuali, devi configurare il bilanciatore del carico prima di creare il cluster di amministrazione.

  • Se utilizzi gkectl per creare il cluster di amministrazione, decidi se vuoi utilizzare un registry pubblico o privato per i componenti di Google Distributed Cloud. Per informazioni sull'utilizzo di un registro Docker privato, consulta privateRegistry. Né Terraform né la console Google Cloud supportano l'utilizzo di un registro Docker privato per i componenti di sistema.

  • Decidi il tipo di sistema operativo che vuoi eseguire sui nodi del cluster di amministrazione.

  • Se la tua organizzazione richiede che il traffico in uscita passi attraverso un server proxy, assicurati di inserire nella lista consentita le API richieste e l'indirizzo di Artifact Registry.

  • Nella versione 1.29 e successive, i controlli preflight lato server sono abilitati per impostazione predefinita. I controlli preflight lato server richiedono regole firewall aggiuntive. In Regole firewall per i cluster di amministrazione, cerca "Controlli preflight" e assicurati che tutte le regole firewall richieste siano configurate. I controlli preflight lato server vengono eseguiti sul cluster di bootstrap anziché localmente sulla workstation di amministrazione.

Panoramica della procedura

Prima di creare il cluster di amministrazione, devi eseguire il comando gkectl register bootstrap sulla workstation di amministrazione. Questo comando esegue il deployment di un cluster Kubernetes in Docker (kind) sulla workstation di amministrazione. Questo cluster di bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione. Quando crei il cluster di amministrazione, i controller sul cluster di bootstrap eseguono il provisioning dei nodi, eseguono i controlli preflight e registrano il cluster di amministrazione nel parco risorse. Il cluster di bootstrap viene eliminato automaticamente dopo la creazione del cluster di amministrazione.

Di seguito sono riportati i passaggi generali per creare un cluster di amministrazione utilizzando la console:

  1. Nella console, inserisci le informazioni richieste da gkectl register bootstrap. La console visualizza il comando gkectl register bootstrap con le informazioni che hai inserito. Il comando visualizzato include anche i flag per i percorsi che dovrai specificare prima di eseguire il comando.

  2. Sulla workstation di amministrazione, esegui gkectl register bootstrap per creare il cluster di bootstrap. Al termine della creazione del cluster di bootstrap, l'output ti informa che devi completare la configurazione del cluster di amministrazione. Il processo continua a essere eseguito fino alla creazione del cluster di amministrazione.

  3. Tornerai alla console per completare l'inserimento delle informazioni necessarie per creare il cluster. Durante la creazione del cluster, il comando gkectl register bootstrap restituisce informazioni sull'avanzamento e scrive i log sulla workstation di amministrazione. Quando viene creato il cluster di amministrazione, il cluster di bootstrap viene eliminato automaticamente.

Inizia a configurare il cluster

  1. Nella console, vai alla pagina Crea un cluster su VMware.

    Vai a Crea un cluster on VMware

  2. Seleziona il progetto Google Cloud in cui vuoi creare il cluster.

    Quando crei il cluster di bootstrap in una sezione successiva, l'ID progetto selezionato viene visualizzato nel comando gkectl register bootstrap nel flag --project-id.

  3. Assicurati che l'opzione Crea un cluster di amministrazione sia selezionata.

  4. Fai clic su Avanti: installa ambiente di bootstrap.

Installa ambiente di bootstrap

In questa sezione inserisci le informazioni richieste dal comando gkectl register bootstrap. Man mano che inserisci i valori nei campi della UI, la console li copia nei flag corrispondenti per il comando gkectl register bootstrap visualizzato nella sezione Esegui il bootstrap dalla workstation di amministrazione nella parte inferiore della pagina.

Impostazioni di base dell'ambiente di bootstrap

  1. Inserisci un Nome per il cluster di amministrazione. La console utilizza il nome del cluster come valore per il flag --target-cluster-name nel comando gkectl register bootstrap visualizzato nella parte inferiore della pagina. Il nome ha una lunghezza massima di 20 caratteri.

  2. Nel campo Località APIGoogle Cloud , seleziona una Google Cloud regione dall'elenco. Questa impostazione specifica la regione in cui vengono eseguiti i seguenti servizi e API:

    • API GKE On-Prem (gkeonprem.googleapis.com)
    • Servizio per flotte (gkehub.googleapis.com)
    • Collega il servizio (gkeconnect.googleapis.com)

    Questa impostazione controlla anche la regione in cui vengono archiviati i seguenti elementi:

    • I metadati del cluster necessari all'API GKE On-Prem per gestire il ciclo di vita del cluster
    • I dati di Cloud Logging e Cloud Monitoring dei componenti di sistema
    • L'audit log amministrativo creato da Cloud Audit Logs

    Il campo Località APIGoogle Cloud corrisponde al flag --location nel comando gkectl register bootstrap.

  3. Nel campo Versione cluster di amministrazione, inserisci la versione da utilizzare per creare il cluster. La versione selezionata qui deve corrispondere alla versione del bundle specificata nel flag --bundle-path nel comando gkectl register bootstrap.

Configurazione vCenter

Se hai utilizzato gkeadm per creare la tua workstation di amministrazione, apri il file di configurazione della workstation di amministrazione in modo da poter copiare i valori dalla sezione vCenter nei campi della console. Tieni presente che anche il file di configurazione del cluster di amministrazione generato contiene queste informazioni.

La maggior parte dei campi di questa sezione è immutabile. Se hai bisogno di sapere se un campo è modificabile o immutabile, consulta la sezione vCenter nel riferimento al file di configurazione del cluster di amministrazione.

  1. Nel campo Indirizzo, inserisci l'indirizzo vCenter Server.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.credentials.address.

    • Il campo Indirizzo corrisponde al flag --vcenter-address nel comando gkectl register bootstrap.

  2. Nel campo Data center, inserisci il nome del tuo data center vCenter.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.datacenter.

    • Il campo Datacenter corrisponde al flag --vcenter-datacenter nel comando gkectl register bootstrap.

  3. Nel campo Nome cluster, inserisci il nome del tuo cluster vCenter.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.cluster.

    • Il campo Nome cluster corrisponde al flag --vcenter-cluster nel comando gkectl register bootstrap.

  4. Nel campo Pool di risorse, inserisci il nome o il percorso del tuo pool di risorse vCenter.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.resourcePool.

    • Il campo Pool di risorse corrisponde al flag --vcenter-resource-pool nel comando gkectl register bootstrap.

  5. Configura un'opzione di archiviazione inserendo una delle seguenti opzioni:

    • Campo Datastore: inserisci il nome del tuo datastore vCenter. Il valore specificato deve essere un nome, non un percorso. Se devi inserire un percorso, inseriscilo nel campo Cartella.

      • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.datastore.

      • Il campo Datastore corrisponde al flag --vcenter-datastore nel comando gkectl register bootstrap.

    • Campo Nome policy di archiviazione: inserisci il nome della policy di archiviazione delle VM per i nodi del cluster. Per saperne di più, consulta Configura una policy di archiviazione.

      • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.storagePolicyName.

      • Il campo Nome policy di archiviazione corrisponde al flag --vcenter-storage-policy nel comando gkectl register bootstrap.

    Devi inserire un valore nel campo Datastore o nel campo Nome policy di archiviazione, ma non in entrambi.

  6. Facoltativamente, nel campo Cartella, inserisci il nome della cartella vCenter in cui si troveranno le VM del cluster.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.folder.

    • Il campo Cartella corrisponde al flag --vcenter-folder nel comando gkectl register bootstrap.

  7. Nel campo Rete, inserisci il nome della tua rete vCenter.

    • File di configurazione della workstation di amministrazione: utilizza il valore del campo vCenter.network.

    • Il campo Rete corrisponde al flag --vcenter-network nel comando gkectl register bootstrap.

  8. Nel campo Percorso certificato CA, inserisci il percorso del certificato CA radice per il tuo vCenter Server.

    • Se hai utilizzato gkeadm per creare la tua workstation di amministrazione, gkeadm ha copiato il file del certificato CA che avevi localmente nella tua workstation di amministrazione.

    • Il campo Percorso certificato CA corrisponde a --vcenter-ca-cert-path nel comando gkectl register bootstrap.

Ottieni il certificato CA

Dopo aver creato il cluster di bootstrap, dovrai fornire il certificato CA vCenter in formato PEM nel campo Dati del certificato CA nella pagina Informazioni di base sul cluster. Esegui questo comando per visualizzare il certificato:

cat CA_CERT_PATH

Sostituisci CA_CERT_PATH con il percorso del certificato CA principale per il tuo server vCenter. Se esegui questo comando localmente, utilizza il percorso in vCenter.caCertPath nel file di configurazione della workstation di amministrazione.

Copia l'intero certificato in un editor di testo in modo da poterlo incollare nel campo Dati del certificato CA nella pagina Impostazioni di base del cluster dopo la creazione del cluster di bootstrap.

Esegui il bootstrap dalla workstation di amministrazione

Quando esegui il comando gkectl register bootstrap, ti vengono richiesti il nome utente dell'account vCenter e la password. Assicurati di avere le credenziali a portata di mano. Se hai utilizzato gkeadm per creare la workstation di amministrazione, il nome utente e la password si trovano nel file credential.yaml.

  1. Scorri fino alla sezione Esegui il bootstrap dalla workstation di amministrazione per visualizzare il comando gkectl register bootstrap.

    Lascia aperta questa pagina mentre vai alla workstation di amministrazione per creare il cluster di bootstrap.

  2. Copia e incolla il comando gkectl register bootstrap in un editor di testo in modo da poter specificare i valori per i seguenti flag:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH \
          --admin-kubeconfig-out=KUBECONFIG_NAME
    

    Sostituisci quanto segue con i percorsi della workstation di amministrazione:

    • BUNDLE_PATH: il percorso del file del bundle. Se hai utilizzato gkeadm per creare la workstation di amministrazione, il file del bundle si trova in /var/lib/gke/bundles/. Il nome del file dipende dalla versione di Google Distributed Cloud, ad esempio gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: il percorso del file della chiave per il account di servizio di accesso ai componenti.
    • CONNECT_REGISTER_SA_PATH: il percorso del file della chiave per il account di servizio connect-register.
    • LOG_MON_SA_PATH: il percorso del file della chiave per il account di servizio di logging-monitoring.
    • CLOUD_AUDIT_SA_PATH: il percorso del account di servizio di audit logging. Se non hai creato un account di servizio per l'audit logging, specifica il percorso del file della chiave per il service account di logging-monitoring.
    • KUBECONFIG_NAME: il nome del file kubeconfig creato dal comando gkectl register bootstrap. Se non specifichi questo flag, il comando crea il file con il nome kubeconfig nella directory di lavoro corrente. Se esiste già un file denominato kubeconfig, il comando lo sovrascrive.

    Inoltre, se hai utilizzato gkeadm per creare la tua workstation di amministrazione, gkectl è stato scaricato nella directory /usr/bin/. In questo caso, rimuovi ./ dall'inizio del comando, poiché gkectl non si trova nella directory di lavoro corrente.

  3. Utilizza SSH per connetterti alla tua workstation di amministrazione.

  4. Copia il comando e incollalo in una finestra del terminale sulla tua workstation di amministrazione.

  5. Quando richiesto, inserisci (o copia e incolla) il nome utente vCenter. Il nome utente non viene visualizzato sullo schermo.

  6. Quando richiesto, inserisci (o copia e incolla) la password di vCenter. La password non viene visualizzata sullo schermo.

Il comando esegue numerose convalide. Dopo che gkectl ha creato correttamente il cluster di bootstrap, viene visualizzato un output simile al seguente, troncato per leggibilità:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

Il processo continua a essere eseguito fino alla creazione del cluster di amministrazione.

Se esci dal comando gkectl register bootstrap prima della creazione del cluster di amministrazione, la creazione del cluster di amministrazione non va a buon fine e dovrai eliminare il cluster di bootstrap utilizzando il seguente comando:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Completa la configurazione del cluster di amministrazione

Torna alla console e segui questi passaggi:

  1. Nella pagina Installa l'ambiente di bootstrap, fai clic su Controlla connessione.

    Se l'operazione riesce, la console visualizza Connessione stabilita.

    La connessione al cluster di bootstrap deve essere stabilita prima di continuare. Se la connessione non viene stabilita, controlla gli argomenti che hai specificato per il comando gkectl register bootstrap:

    • Assicurati che il valore di --target-cluster-name corrisponda al Nome del cluster di amministrazione visualizzato nella sezione Nozioni di base sull'ambiente di bootstrap.

    • Assicurati che il valore di --project-id corrisponda all'ID del progetto che hai selezionato nella console.

    Se devi modificare il nome del cluster di bootstrap, l'ID progetto o altri valori dei flag, procedi nel seguente modo:

    1. Inserisci Ctrl-C per uscire da gkectl register bootstrap.
    2. Elimina il cluster di bootstrap:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. Esegui di nuovo il comando gkectl register bootstrap.

  2. Fai clic su Avanti: concetti di base sui cluster per iniziare a configurare il cluster di amministrazione.

Impostazioni di base del cluster

  1. Nel campo Dati del certificato CA, copia e incolla l'intero certificato CA vCenter in formato PEM, come descritto in precedenza nella sezione Ottieni il certificato CA.

  2. Nella sezione Autorizzazione, inserisci gli indirizzi email degli utenti a cui vuoi concedere il ruolo Kubernetes clusterrole/view di sola lettura. Noterai che il tuo indirizzo email viene aggiunto automaticamente. I criteri di controllo degli accessi basato su ruoli (RBAC) applicati consentono agli utenti di eseguire comandi di sola lettura tramite il gateway di connessione.

  3. Fai clic su Next Control Plane.

Control plane

  1. Esamina le impostazioni predefinite nella sezione Control plane e modificale in base alle tue esigenze.

  2. Nella sezione IP dei nodi del control plane, inserisci gli indirizzi IP nei seguenti campi:

    • Gateway: l'indirizzo IP del gateway predefinito per la subnet che contiene i nodi del cluster.

    • Netmask: la netmask della subnet che contiene i nodi del cluster.

    • Indirizzi IP: inserisci l'indirizzo IP e, facoltativamente, il nome host dei tre nodi del control plane.

  3. Fai clic su Avanti: Networking.

Networking

In questa sezione specifichi le informazioni di networking necessarie per creare il cluster di amministrazione.

  1. Nella sezione CIDR servizi e pod, accetta i valori predefiniti per gli intervalli di indirizzi IP dei pod e dei servizi Kubernetes o inserisci intervalli di indirizzi CIDR diversi.

    • CIDR servizio: intervallo più piccolo possibile: /24. Intervallo più ampio possibile: /12.

    • CIDR pod: intervallo più piccolo possibile: /18. Intervallo più grande possibile: /8`.

  2. Nella sezione Configurazione host, specifica i server NTP, i server DNS e, facoltativamente, i domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster. Dopo aver creato il cluster, non puoi modificare questi valori.

  3. Fai clic su Avanti: bilanciatore del carico.

Bilanciatore del carico

In questa sezione, selezioni il tipo di bilanciatore del carico da utilizzare. Per ulteriori informazioni, consulta Panoramica del bilanciamento del carico.

  1. Nell'elenco Tipo di bilanciatore del carico, seleziona un bilanciatore del carico:

    • Abbinato a MetalLB: il bilanciatore del carico MetalLB è abbinato e richiede una configurazione inferiore rispetto al bilanciamento manuale del carico. I componenti di MetalLB vengono eseguiti sui nodi del cluster, quindi non è necessario creare VM separate per il bilanciatore del carico.

    • Manuale: puoi utilizzare qualsiasi bilanciatore del carico di tua scelta, purché lo configuri prima di creare il cluster. Con qualsiasi bilanciatore del carico configurato manualmente, devi configurare le mappature tra IP virtuali (VIP), indirizzi dei nodi e valori nodePort.

  2. Nel campo VIP del control plane, inserisci il VIP da utilizzare per il traffico inviato al server API Kubernetes.

  3. Fai clic su Verifica e crea.

    La console visualizza messaggi di stato mentre verifica le impostazioni e crea il cluster nel tuo data center.

    Se si verifica un problema con la configurazione, la console visualizza un messaggio di errore che dovrebbe essere sufficientemente chiaro da consentirti di risolvere il problema di configurazione e riprovare a creare il cluster.

I dettagli sul processo di creazione del cluster vengono visualizzati sulla workstation di amministrazione. Se i controlli preflight hanno esito positivo, viene visualizzato un messaggio simile al seguente:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

Connettiti al cluster di amministrazione

Il comando gkectl register bootstrap crea un file kubeconfig per il cluster di amministrazione sulla tua workstation di amministrazione. Se non hai specificato il flag --admin-kubeconfig-out quando hai eseguito gkectl register bootstrap, il comando crea un file kubeconfig denominato kubeconfig nella directory in cui hai eseguito il comando.

Devi limitare l'accesso a questo kubeconfig perché contiene le credenziali di autenticazione per il cluster.

Inoltre, puoi eseguire comandi kubectl di sola lettura tramite il gateway di connessione.

  1. Esegui il comando seguente su un computer su cui è installata gcloud CLI per ottenere una voce kubeconfig che possa accedere al cluster tramite il gateway di connessione.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    L'output è simile al seguente:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. Ora puoi eseguire comandi kubectl di sola lettura tramite il gateway di connessione, ad esempio:

    kubectl get pods -A
    

    Se hai bisogno di privilegi amministrativi completi per il cluster di amministrazione, consulta Configura il gateway di connessione.