Crea un cluster di amministrazione utilizzando la console Google Cloud

Utilizza la Google Cloud console per creare un cluster di amministrazione per il software Google Distributed Cloud solo per VMware per utilizzare una GUI per una guida strutturata. Puoi anche creare un cluster di amministrazione utilizzando gkectl o la consoleGoogle Cloud .

Prima di iniziare

  • Assicurati di aver configurato la workstation amministrativa e di poter accedere come descritto in Creazione di una workstation amministrativa.

  • Assicurati che i file della chiave JSON per i service account si trovino nella workstation amministrativa.

  • Consulta il documento di pianificazione degli indirizzi IP. Assicurati di avere a disposizione indirizzi IP sufficienti 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.

  • Rivedi la panoramica del bilanciamento del carico e 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 registro 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 preliminari lato server richiedono regole firewall aggiuntive. In Regole firewall per i cluster di amministrazione, cerca "Controlli preliminari" e assicurati che tutte le regole firewall richieste siano configurate. I controlli preliminari 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 bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione. Quando crei il cluster di amministrazione, i controller del cluster di bootstrap eseguono il provisioning dei nodi, eseguono 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 di alto livello per creare un cluster di amministrazione utilizzando la console:

  1. Nella console, inserisci le informazioni richieste da gkectl register bootstrap. La console mostra il comando gkectl register bootstrap con le informazioni che hai inserito. Il comando visualizzato include anche 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 del comando di creazione del cluster di bootstrap, l'output ti indica di completare la configurazione del cluster di amministrazione. Il processo continua a essere eseguito finché non viene creato il cluster di amministrazione.

  3. Torni 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 sullo stato di 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 Google Cloud progetto 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 l'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 dell'interfaccia utente, la console li copia nei flag corrispondenti per il comando gkectl register bootstrap visualizzato nella sezione Ambiente di bootstrap dalla workstation amministrativa 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 del 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 Google Cloud Località API, 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 flotta (gkehub.googleapis.com)
    • Servizio Connect (gkeconnect.googleapis.com)

    Questa impostazione controlla anche la regione in cui vengono archiviati:

    • 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
    • Il log di controllo amministrativo creato da Cloud Audit Logs

    Il campo Google Cloud API Location corrisponde al flag --location nel comando gkectl register bootstrap.

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

Configurazione vCenter

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

La maggior parte dei campi in questa sezione è immutabile. Consulta la sezione vCenter nel riferimento al file di configurazione del cluster di amministrazione se devi sapere se un campo è modificabile o immutabile.

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

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

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

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

    • File di configurazione della workstation amministrativa: 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 amministrativa: 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 amministrativa: 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 uno dei seguenti valori:

    • 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 amministrativa: utilizza il valore del campo vCenter.datastore.

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

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

      • File di configurazione della workstation amministrativa: 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. (Facoltativo) Nel campo Cartella, inserisci il nome della cartella vCenter in cui si troveranno le VM del cluster.

    • File di configurazione della workstation amministrativa: 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 amministrativa: 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 workstation di amministrazione, gkeadm ha copiato il file del certificato CA che avevi localmente nella workstation di amministrazione.

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

Recuperare il certificato CA

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

cat CA_CERT_PATH

Sostituisci CA_CERT_PATH con il percorso del certificato CA radice per vCenter Server. Se esegui questo comando localmente, utilizza il percorso in vCenter.caCertPath nel file di configurazione della workstation amministrativa.

Copia l'intero certificato in un editor di testo in modo da poterlo incollare nel campo Dati certificato CA nella pagina Informazioni 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 viene chiesto il nome utente e la password dell'account vCenter. Assicurati di avere a disposizione le credenziali. 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 dall'ambiente della 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 bundle. Se hai utilizzato gkeadm per creare la workstation di amministrazione, il file del pacchetto 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 e monitoraggio.
    • CLOUD_AUDIT_SA_PATH: il percorso del account di servizio di audit logging. Se non hai creato un account di servizio di audit logging, specifica il percorso del file della chiave per il service account di logging e monitoraggio.
    • KUBECONFIG_NAME: il nome del file kubeconfig che viene 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 un file chiamato kubeconfig, il comando lo sovrascrive.

    Inoltre, se hai utilizzato gkeadm per creare la workstation amministrativa, 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 workstation amministrativa.

  4. Copia il comando e incollalo in una finestra del terminale sulla 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 facilitarne la lettura:

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 finché non viene creato il 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 ambiente bootstrap, fai clic su Controlla connessione.

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

    Prima di continuare, devi stabilire la connessione al cluster di bootstrap. 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: nozioni di base del cluster per iniziare a configurare il cluster di amministrazione.

Impostazioni di base del cluster

  1. Nel campo Dati certificato CA, copia e incolla l'intero certificato CA vCenter in formato PEM come descritto in precedenza nella sezione Recuperare 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. Tieni presente che il tuo indirizzo email viene aggiunto automaticamente. I criteri di controllo dell'accesso basato sui 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 successivo).

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 maschera di rete per la subnet che contiene i nodi del cluster.

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

  3. Fai clic su Avanti: networking.

Networking

In questa sezione devi specificare 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 oppure 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 Host config, 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, seleziona 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:

    • In bundle con MetalLB: il bilanciatore del carico MetalLB è in bundle con e richiede meno configurazione rispetto al bilanciamento del carico manuale. I componenti MetalLB vengono eseguiti sui nodi del cluster, quindi non devi creare VM separate per il bilanciatore del carico.

    • Manuale: puoi utilizzare qualsiasi bilanciatore del carico a tua scelta, a condizione che 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 mostra i messaggi di stato durante la verifica delle impostazioni e la creazione del cluster nel data center.

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

I dettagli sul processo di creazione del cluster vengono visualizzati sulla workstation di amministrazione. Se i controlli preflight vengono superati, 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 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 Connect Gateway.

  1. Esegui questo comando su un computer su cui è installata gcloud CLI per ottenere una voce kubeconfig che può 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 amministrativo, consulta Configurare il gateway di connessione.