In questa pagina viene descritto come creare un cluster di amministrazione utilizzando la console Google Cloud oppure Google Cloud CLI (gcloud CLI). Entrambi questi standard I client Google Cloud utilizzano l'API GKE On-Prem per creare il cluster.
Che cos'è l'API GKE On-Prem?
L'API GKE On-Prem è un'API ospitata da Google Cloud che consente di gestire del ciclo di vita dei cluster on-premise utilizzando Terraform e le applicazioni Google Cloud. L'API GKE On-Prem viene eseguita dell'infrastruttura. Terraform, la console gcloud CLI sono client dell'API che la utilizzano per creare nel tuo data center.
Per gestire il ciclo di vita dei tuoi cluster, l'API GKE On-Prem deve archiviare i metadati sullo stato del cluster in Google Cloud, utilizzando Regione Google Cloud specificata durante la creazione del cluster. Questo metadati consentono all'API di gestire il ciclo di vita del cluster includono dati specifici dei carichi di lavoro.
Quando crei un cluster utilizzando un client API GKE On-Prem, specifichi progetto Google Cloud. Una volta creato, il cluster viene automaticamente sono registrati nello spazio dei nomi di progetto flotta. Questo progetto è denominato progetto host del parco risorse. Il progetto host del parco risorse non può essere modificato dopo la creazione del cluster.
Se preferisci, puoi creare un cluster di amministrazione creandone uno
di configurazione del deployment e utilizzando bmctl
, come descritto in
Creazione di un cluster di amministrazione.
Se vuoi utilizzare la console o gcloud CLI per gestire
il ciclo di vita dei cluster creati utilizzando bmctl
, consulta
Configura i cluster che devono essere gestiti dall'API GKE On-Prem.
Autorizzazioni IAM
Se non sei proprietario di un progetto Google Cloud, devi averne un proprietario assegnarti i seguenti ruoli:
Se vuoi accedere alle pagine GKE Enterprise e GKE del devi avere a disposizione anche roles/container.viewer.
Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Accesso da riga di comando
Dopo aver creato il cluster, se vuoi utilizzare
Connetti il gateway per l'esecuzione
kubectl
sul cluster su computer diversi dall'amministratore
installa i seguenti strumenti a riga di comando sul computer
che intendi utilizzare.
L'ultima versione di gcloud CLI.
kubectl
per l'esecuzione di comandi sui cluster Kubernetes. Se hai bisogno per installarekubectl
, segui queste instructions.
Scegli il client per creare il cluster di amministrazione
Puoi utilizzare la console o gcloud CLI per creare un cluster di amministrazione gestito dall'API GKE On-Prem. Se si tratta di la prima volta che installi Google Distributed Cloud, potresti notare che più facile da usare rispetto a gcloud CLI.
Quando avrai acquisito familiarità con le informazioni che dovrai fornire
creando cluster, gcloud CLI potrebbe essere più pratico
perché puoi salvare il comando con i suoi argomenti in un file di testo. Se
utilizzando uno strumento CI/CD come Cloud Build, puoi utilizzare
i comandi gcloud
per creare un cluster e specificare
--impersonate-service-account
per automatizzare la creazione.
Prerequisiti
Console
Nella console, vai al menu Crea un Pagina del cluster distribuito Cloud.
Seleziona il progetto Google Cloud in cui vuoi creare il cluster. Il progetto selezionato viene utilizzato anche come progetto host del parco risorse.
Nella pagina Prerequisiti vengono visualizzati i requisiti per l'amministratore di workstation e nodi cluster. Lo Strumento di pianificazione degli indirizzi IP nel Requisiti di rete ti consente di pianificare gli indirizzi IP necessari per un'installazione minima di un cluster di amministrazione e un cluster utente.
Prerequisiti della workstation di amministrazione
Espandi questa sezione per visualizzare l'hardware, il sistema operativo e i requisiti di connettività per la workstation di amministrazione.
Prerequisiti delle macchine dei nodi cluster
Espandi questa sezione per visualizzare l'hardware, il sistema operativo e requisiti di connettività per le macchine con nodi cluster.
Requisiti di rete
Questa sezione ti aiuta a pianificare gli indirizzi IP necessari per una gestione completamente gestito di Google Cloud. Facoltativamente, nella sezione IP del nodo e indirizzi IP virtuali, puoi fornire un indirizzo IP del nodo iniziale e un indirizzo IP virtuale (VIP), e la console visualizza una tabella degli indirizzi IP necessari. Questi indirizzi IP non vengono applicati alla configurazione del cluster di amministrazione. Loro sono da intendersi come una guida per aiutarti a pianificare gli indirizzi IP di cui hai bisogno dell'installazione. Puoi scaricare la tabella in un file CSV e importarla in un foglio di lavoro o strumento di pianificazione dell'indirizzo IP da utilizzare come punto di partenza gli indirizzi IP necessari per i cluster.
Esamina le risorse di Google Cloud:
Assicurati che tutte le le API di Google richieste sono abilitate nel progetto host del parco risorse. Inoltre, devi attivare API GKE On-Prem:
gcloud services enable --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
Sostituisci FLEET_HOST_PROJECT_ID
con l'ID progetto del
progetto host del parco risorse.
Prima di creare il cluster, esegui il comando bmctl register bootstrap
alla workstation di amministrazione, come descritto
Prepara l'ambiente di bootstrap. Questo comando
puoi creare gli account di servizio richiesti con il
le autorizzazioni IAM necessarie per creare il cluster di amministrazione.
Se preferisci,
Configurare gli account di servizio manualmente.
Quando è tutto pronto per iniziare, fai clic su Installa ambiente di bootstrap nella barra di navigazione a sinistra.
Interfaccia a riga di comando gcloud
Prerequisiti hardware, di rete e del sistema operativo
Per creare un cluster di amministrazione utilizzando un client API GKE On-Prem è necessario lo stesso
prerequisiti hardware, di rete e del sistema operativo per la creazione del cluster
utilizzando bmctl
. Per maggiori dettagli,
consulta i Prerequisiti di installazione.
API di Google richieste
Assicurati che tutte le le API di Google richieste sono abilitate nel progetto host del parco risorse. Inoltre, devi attivare API GKE On-Prem:
gcloud services enable --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
Sostituisci FLEET_HOST_PROJECT_ID
con l'ID progetto del
progetto host del parco risorse.
Account di servizio e autorizzazioni richiesti
Prima di creare il cluster, esegui il comando bmctl register bootstrap
alla workstation di amministrazione, come descritto
Prepara l'ambiente di bootstrap. Questo comando
puoi creare gli account di servizio richiesti con il
le autorizzazioni IAM necessarie per creare il cluster di amministrazione.
Se preferisci,
Configurare gli account di servizio manualmente.
Pianificare gli indirizzi IP
Prima di creare il cluster di amministrazione, devi pianificare gli indirizzi IP per cluster. Vedi Pianificare gli indirizzi IP per un esempio di come allocare indirizzi IP per un'alta disponibilità e due cluster utente ad alta disponibilità. Anche se utilizzerai gcloud CLI per creare il cluster di amministrazione, potresti voler seguire i passaggi della console in questa sezione per utilizzare l'indirizzo IP planner.
prepara l'ambiente di bootstrap
Prima di creare il cluster di amministrazione, devi eseguire
bmctl register bootstrap
sulla workstation di amministrazione. Questo comando
esegue il deployment di un Kubernetes in Docker
(kind) sulla workstation di amministrazione. Questo cluster bootstrap ospita
Controller Kubernetes necessari per creare il cluster di amministrazione. Quando crei
cluster di amministrazione, i controller sul cluster di bootstrap eseguono il provisioning dei nodi
eseguire controlli preflight e registrare il cluster di amministrazione nel parco risorse. Il bootstrap
un cluster viene eliminato automaticamente dopo la sua creazione.
Console
Inserisci un nome per il cluster di amministrazione. Nota che il cluster di bootstrap derivato anteponendo bootstrap- al nome del cluster di amministrazione.
Seleziona la versione Google Distributed Cloud per il tuo cluster di amministrazione.
Nel campo Posizione API Google Cloud, seleziona la località di Google Cloud regione dall'elenco. Questa impostazione specifica la regione in cui le API e i servizi seguenti vengono eseguiti:
- API GKE On-Prem (
gkeonprem.googleapis.com
) - Servizio parco risorse (
gkehub.googleapis.com
) - Connetti servizio (
gkeconnect.googleapis.com
)
Questa impostazione controlla anche la regione in cui sono 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
- Il log di controllo Admin creato da Cloud Audit Logs
Il nome del cluster, il progetto e la località identificano in modo univoco in un cluster Google Cloud.
- API GKE On-Prem (
Nella console vengono visualizzati i comandi che devi eseguire. sulla workstation di amministrazione. Lo strumento a riga di comando
bmctl
deve corrispondere la versione del cluster che stai creando. Se hai già la versione applicabile dibmctl
scaricata sulla workstation di amministrazione; non dovrai scaricarlo di nuovo.
Interfaccia a riga di comando gcloud
Assicurati di aggiornare i componenti:
gcloud components update
Esegui questo comando per accedere con il tuo Account Google:
gcloud auth login
Elenca le versioni Google Distributed Cloud disponibili che puoi installare. La versione di
bmctl
che scarichi per creare l'ambiente di bootstrap deve corrispondere alla versione che installerai nel cluster di amministrazione.gcloud container bare-metal admin-clusters query-version-config \ --location=REGION
Sostituisci
REGION
con la regione Google Cloud che utilizzerai durante la creazione del cluster. Questa è la regione in cui vengono eseguiti l'API GKE On-Prem e i servizi Fleet and Connect. Specificaus-west1
o altro regione supportata.
Crea il cluster di bootstrap
Esegui i seguenti passaggi sulla workstation di amministrazione. Questi comandi vengono visualizzati nella console.
Imposta le tue credenziali utente come Credenziali predefinite dell'applicazione (ADC):
gcloud auth application-default login
Segui le istruzioni per selezionare il tuo Account Google per ADC.
Se necessario, scarica lo strumento a riga di comando
bmctl
nell'attuale versione .gsutil cp gs://anthos-baremetal-release/bmctl/VERSION/linux-amd64/bmctl . chmod a+x ./bmctl
Sostituisci
VERSION
con la versione di Google Distributed Cloud da installare. Se hai copiato il comando da nella console, la versione è già nel comando.Crea il cluster di bootstrap. Puoi consentire a
bmctl
di creare gli account di servizio (SA) richiesti o puoi creare gli account di servizio e i file chiave autonomamente e passarli allabmctl register bootstrap
.
bmctl
crea le SA
Usa questo comando se vuoi che bmctl
crei l'oggetto
che dispongono delle autorizzazioni minime richieste
per creare il cluster di amministrazione. Questo comando presuppone che bmctl
sia
nella directory di lavoro attuale.
./bmctl register bootstrap \ --ssh-key=YOUR_PRIVATE_KEY \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=FLEET_HOST_PROJECT_ID
Sostituisci quanto segue:
YOUR_PRIVATE_KEY
: il percorso alla posizione chiave SSH. Hai creato la chiave SSH l'accesso SSH root ai nodi.
Se hai copiato il comando visualizzato nella console, campi seguenti sono già compilati.
ADMIN_CLUSTER_NAME
: il nome del cluster di amministrazione.FLEET_HOST_PROJECT_ID
: il progetto a cui l'amministratore verrà registrato automaticamente dopo la creazione del cluster.
Il comando bmctl register bootstrap
crea i seguenti account di servizio.
Le chiavi dell'account di servizio sono archiviate nella directory
bmctl-workspace/.sa-keys
.
Account di servizio | Finalità | Ruoli IAM |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud utilizza questo account di servizio per scaricare il container da Google Container Registry. | Nessuno |
anthos-baremetal-connect | L'agente Connect utilizza questo account di servizio per mantenere una connessione tra il tuo cluster e Google Cloud. | ruoli/gkehub.connect |
anthos-baremetal-register | L'agente Connect utilizza questo account di servizio per registrare i cluster nell' del parco risorse Google Cloud. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | L'agente Stackdriver utilizza questo account di servizio per esportare log e metriche dai cluster a Cloud Logging e Cloud Monitoring. |
ruoli/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer ruoli/monitoring.dashboardEditor |
Specifica i file di chiavi SA
Se preferisci, puoi passare bmctl
i file delle chiavi dell'account di servizio
che hai creato. Il comando seguente utilizza i nomi dei file della chiave
Configurare gli account di servizio manualmente
e presuppone che bmctl
e i file chiave siano nello stato
.
./bmctl register bootstrap \ --ssh-key=YOUR_PRIVATE_KEY \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=FLEET_HOST_PROJECT_ID \ --gcr-service-account-key=anthos-baremetal-gcr.json \ --gke-agent-service-account-key=connect-agent.json \ --gke-register-service-account-key=connect-register.json \ --cloud-operation-service-account-key=anthos-baremetal-cloud-ops.json
Sostituisci quanto segue:
YOUR_PRIVATE_KEY
: il percorso alla posizione chiave SSH. Hai creato la chiave SSH l'accesso SSH root ai nodi.ADMIN_CLUSTER_NAME
: il nome del cluster di amministrazione.FLEET_HOST_PROJECT_ID
: il progetto a cui l'amministratore verrà registrato automaticamente dopo la creazione del cluster.
I seguenti flag specificano il percorso dei file chiave:
-gcr-service-account-key
: il percorso del file della chiave per il servizio che estrae le immagini container (anthos-baremetal-gcr
).--gke-agent-service-account-key
: il percorso del file della chiave per l'account di servizio dell'agente Connect (anthos-baremetal-connect
).--gke-register-service-account-key
: il percorso del file della chiave per l'account di servizio dell'agente Connect che registra il cluster parco risorse (anthos-baremetal-register
).--cloud-operation-service-account-key
: il percorso del file della chiave per l'account di servizio per gli audit log e il monitoraggio dei progetti (anthos-baremetal-cloud-ops
).
Dopo che bmctl
ha creato correttamente il cluster di bootstrap, vedrai l'output
simile al seguente:
[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Crea il cluster di amministrazione
Console
Nella pagina Installa ambiente di bootstrap, fai clic su Controlla la connessione.
Se l'operazione riesce, la console mostra
Connessione stabilita.Devi stabilire la connessione al cluster di bootstrap prima di continua. Se la connessione non viene stabilita, controlla gli argomenti che specificato per il comando
bmctl register bootstrap
:Assicurati che il valore di
--target-cluster-name
corrisponda a Nome del cluster di amministrazione visualizzato in 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 o l'ID progetto, inserisci
Ctrl-C
per uscire dabmctl register bootstrap
e esegui nuovamente il comando.Fai clic su Avanti per iniziare a configurare il cluster di amministrazione. La maggior parte impostazioni nella console corrispondono ai campi il file di configurazione del cluster.
In Configurazione nodo, inserisci un valore compreso tra 64 e 250 nel Numero massimo di pod per nodo o accetta il valore predefinito 110. Dopo aver creato il cluster, non puoi aggiornare questo valore.
Il numero massimo di pod per nodo (indicata come densità dei pod} è limitato anche da le risorse IP disponibili del cluster. Per maggiori dettagli, consulta la sezione Networking dei pod.
Fai clic su Avanti.
Nella pagina Networking, definisci in che modo i nodi e i componenti nel che comunicano tra loro e con il piano di controllo Kubernetes.
Per informazioni dettagliate, tieni il puntatore sopra
accanto a ogni .Fai clic su Verifica e crea.
Nella console vengono visualizzati messaggi di stato durante la verifica delle impostazioni e crea il cluster nel tuo data center.
Se si verifica un problema con la configurazione, la console visualizza che dovrebbe essere abbastanza chiaro da consentirti di correggere la configurazione e riprova a creare il cluster.
Interfaccia a riga di comando gcloud
Prima di creare il cluster di amministrazione, verifica che il cluster di bootstrap è stato registrato come membro del parco risorse:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Se il cluster di bootstrap non è in elenco, controlla il nome del cluster e
all'ID progetto che hai specificato in bmctl register bootstrap
. Per
modifica il nome del cluster di bootstrap o l'ID progetto, inserisci Ctrl-C
per uscire
su bmctl register bootstrap
ed esegui nuovamente il comando.
Utilizza questo comando per creare un cluster di amministrazione:
gcloud container bare-metal admin-clusters create
La maggior parte dei flag specificati nel comando corrisponde ai campi nel file di configurazione del cluster utente.
Per creare un cluster di amministrazione con il bilanciatore del carico in bundle:
gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --version=VERSION \ --max-pods-per-node=MAX_PODS_PER_NODE \ --control-plane-vip=CONTROL_PLANE_VIP \ --control-plane-load-balancer-port=CONTROL_PLANE_LOAD_BALANCER_PORT \ --control-plane-node-configs 'CONTROL_PLANE_NODE_CONFIG' \ --island-mode-service-address-cidr-blocks=SERVICE_ADDR_CIDR \ --island-mode-pod-address-cidr-blocks=POD_ADDR_CIDR \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
Se vuoi utilizzare il bilanciamento del carico manuale, aggiungi --enable-manual-lb
al
.
Sostituisci quanto segue:
ADMIN_CLUSTER_NAME
: il nome del cluster di amministrazione. Non è possibile modificare il nome dopo la creazione del cluster.FLEET_HOST_PROJECT_ID
: il progetto a cui l'amministratore verrà registrato automaticamente dopo la creazione del cluster. Il progetto host del parco risorse non può essere modificato dopo la creazione del cluster.REGION
: la regione Google Cloud in cui Viene eseguito l'API GKE On-Prem. Specificaus-west1
o un altro regione supportata. La regione non può essere modificata dopo la creazione del cluster. Questa impostazione specifica la regione in cui sono archiviati i seguenti elementi:- I metadati del cluster necessari all'API GKE On-Prem per gestire ciclo di vita del cluster
- I dati di Cloud Logging e Cloud Monitoring dei componenti di sistema
- Il log di controllo Admin creato da Cloud Audit Logs
Il nome del cluster, il progetto e la località identificano in modo univoco in un cluster Google Cloud.
VERSION
: la versione Google Distributed Cloud. Versione deve corrispondere alla versione dibmctl
che hai utilizzato per eseguirebmctl register bootstrap
. Puoi controllare la versione dibmctl
eseguendobmctl version
sulla workstation di amministrazione.MAX_PODS_PER_NODE
: valori consentiti per i cluster di amministrazione sono 32-250 e 64-250 per i cluster non ad alta disponibilità. Il valore predefinito se--max-pods-per-node
non è incluso nel comando è 110. Dopo il giorno quando viene creato il cluster. Questo valore non può essere aggiornato.Anche il numero massimo di pod per nodo (indicata come densità dei pod) è limitato le risorse IP disponibili del cluster. Per maggiori dettagli, consulta la sezione Networking dei pod.
CONTROL_PLANE_VIP
: l'IP virtuale (VIP) sul carico per il server API Kubernetes del cluster. Includi il piano di controllo il VIP nella stessa subnet dei nodi del bilanciatore del carico. Non includere il prefisso del piano di controllo nei pool di indirizzi del bilanciatore del carico.CONTROL_PLANE_LOAD_BALANCER_PORT
: porta il carico su cui viene gestito il piano di controllo. Sebbene sia possibile configurarne un altro, , la porta443
è la porta standard utilizzata per le connessioni HTTPS.CONTROL_PLANE_NODE_CONFIG
: l'indirizzo IPv4 di un dal nodo del piano di controllo. I nodi del piano di controllo eseguono il carico di lavoro del sistema. Specifica questo flag per ogni nodo del piano di controllo. Di solito, hai una sola macchina se utilizzi un deployment minimo o tre macchine se utilizzi un deployment ad alta disponibilità. Specifica un numero dispari di nodi a cui quorum di maggioranza per l'alta disponibilità. Puoi modificare questi indirizzi ogni volta che esegui l'aggiornamento o eseguire l'upgrade del cluster.Il valore del flag ha il seguente formato:
'node-ip=CP_IP_ADDRESS_1,labels=CP_KEY_1.1=CP_VALUE_1.1;CP_KEY_1.2=CP_VALUE_1.2;...' \
Il valore contiene segmenti che iniziano con le parole chiave
node-ip
elabels
. Separa ogni segmento con una virgola.node-ip
: l'indirizzo IP di un nodo del piano di controllo. Puoi specificare un solonode-ip
per flag. Se devi specificare più di un elemento includi il flag di nuovo per ciascun nodo.labels
: una o più coppie chiave=valore collegate al nodo.
Tieni presente le seguenti regole di sintassi:
- Racchiudi l'intero valore tra virgolette singole.
- Lo spazio vuoto non è consentito.
- Separa ogni coppia chiave=valore nel segmento
labels
con una e virgola.
Ad esempio:
--control-plane-node-configs 'node-ip=192.0.2.1' \ --control-plane-node-configs 'node-ip=192.0.2.2,labels=key2.1=value2.1' \ --control-plane-node-configs 'node-ip=192.0.2.3,labels=key3.1=value3.1;key3.2=value3.2' \
SERVICE_ADDR_CIDR
: un intervallo di indirizzi IPv4, in formato CIDR per i servizi del tuo cluster. L'intervallo CIDR deve essere compreso tra /24 e /12, dove /12 fornisce il maggior numero di indirizzi IP. I nostri suggerimenti di utilizzare un intervallo nello spazio di indirizzi IP per le connessioni internet private, definiti in RFC 1918, ad esempio10.96.0.0/20
.POD_ADDR_CIDR
: un intervallo di indirizzi IPv4, in Formato CIDR, da utilizzare per i pod nel cluster utente. L'intervallo CIDR deve essere tra /18 e /8, dove /8 fornisce il maggior numero di indirizzi IP. I nostri suggerimenti di utilizzare un intervallo nello spazio di indirizzi IP per le connessioni internet private, definiti in RFC 1918, ad esempio192.168.0.0/16
.
Devi specificare i seguenti flag di archiviazione. Il comando di esempio include valori tipici. Per ulteriori informazioni, vedi Configura l'archiviazione locale.
--lvp-share-path
: questo è il percorso della macchina host in cui le sottodirectory possono possono essere create. Viene creato un PersistentVolume (PV) locale per ogni sottodirectory.--lvp-share-storage-class
: oggetto StorageClass da utilizzare per creare come volumi permanenti. L'oggetto StorageClass viene creato durante la creazione del cluster.--lvp-node-mounts-config-path
: questo è il percorso della macchina host in cui è montato il rilevamento dei dischi. Viene creato un PersistentVolume (PV) locale per ogni .--lvp-node-mounts-config-storage
: la classe di archiviazione in cui vengono creati i volumi permanenti durante la creazione del cluster.
Per un elenco completo delle segnalazioni e delle relative descrizioni, consulta la Riferimento dell'interfaccia a riga di comando gcloud.
L'output del comando è simile al seguente:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Nell'output di esempio, la stringa operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
è il OPERATION_ID
dell'operazione a lunga esecuzione. Tu
puoi verificare lo stato dell'operazione con il seguente comando:
gcloud container bare-metal operations describe OPERATION_ID \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION
Per ulteriori informazioni, vedi Operazioni di gcloud container bare-metal.
Correggere gli errori preflight
Prima di creare il cluster, bmctl
esegue una serie di controlli preflight per
per verificare la configurazione. In caso di problemi con la configurazione,
Il comando gcloud ... create
viene chiuso con un errore simile a questo:
ERROR: (gcloud.container.bare-metal.admin-clusters.create) Invalid resource state for "projects/694677185633/locations/us-west1/bareMetalAdminClusters/abm-cluster-1": cluster preflight checks failed
Ad esempio, supponiamo che un controllo preflight non sia riuscito perché il piano di controllo impossibile raggiungere il nodo. Nella workstation di amministrazione viene visualizzato simile al seguente:
[2023-03-27 20:34:38+0000] Waiting for preflight check job to finish... OK [2023-03-27 20:35:58+0000] - Validation Category: machines and network [2023-03-27 20:35:58+0000] - [PASSED] pod-cidr [2023-03-27 20:35:58+0000] - [FAILED] node-network (log: bmctl-workspace/log/register-bootstrap-20230327-201548/node-network) [2023-03-27 20:35:58+0000] - Failed to connect to the host via ssh: ssh: connect to host 10.100.0.5 port 22: Connection timed out [2023-03-27 20:35:58+0000] Flushing logs... OK [2023-03-27 20:35:58+0000] Error polling the preflight check abm-cluster-mar-27 in the cluster-abm-cluster-mar-27: preflight check failed
Sulla workstation di amministrazione, assicurati che
bmctl register bootstrap
è ancora in esecuzione. In caso contrario, esegui nuovamente il comando con gli stessi argomenti e aggiungi il flag--reuse-bootstrap-cluster=true
.Esegui
gcloud ... update
per correggere l'indirizzo IP non valido:gcloud container bare-metal admin-clusters update ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --control-plane-node-configs 'node-ip=NEW_NODE_ID_ADDRESS'
Per ulteriori informazioni, vedi gcloud container bare-metal admin-clusters update.
I dettagli sul processo di creazione del cluster vengono restituiti all'amministratore la workstation. Se i controlli preflight vengono superati, vedrai qualcosa di simile seguenti:
[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 bmctl-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 bmctl-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 bmctl register bootstrap
crea un file kubeconfig
per l'amministratore
sulla workstation di amministrazione. La directory in cui si trova kubeconfig
e il nome del file si basa sul nome del cluster di amministrazione, come segue:
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Devi limitare l'accesso a questo kubeconfig
perché contiene
credenziali di autenticazione per il cluster.
Se vuoi utilizzare la tua identità Google per accedere al cluster, puoi configura il gateway di connessione come segue:
Sulla workstation di amministrazione, imposta la variabile di ambiente
KUBECONFIG
:export KUBECONFIG=$HOME/bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Imposta il contesto attuale in una variabile di ambiente:
export CONTEXT="$(kubectl config current-context)"
Esegui questo comando
gcloud
. Questo comando esegue le seguenti operazioni:- Concede al tuo account utente l'
clusterrole/view
di Kubernetes nel cluster. - Configura il cluster in modo da poter eseguire comandi
kubectl
di sola lettura su sul tuo computer locale senza doverti connettere alla workstation di amministrazione tramite SSH.
Sostituisci
GOOGLE_ACCOUNT_EMAIL
con l'indirizzo email associato è associato al tuo account Google Cloud. Ad esempio:--users=alex@example.com
.gcloud container fleet memberships generate-gateway-rbac \ --membership=ADMIN_CLUSTER_NAME \ --role=clusterrole/view \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=FLEET_HOST_PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply
L'output di questo comando è simile al seguente, che è troncato per migliorare la leggibilità:
Validating input arguments. Specified Cluster Role is: clusterrole/view Generated RBAC policy is: -------------------------------------------- ... Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
- Concede al tuo account utente l'
Con questi criteri RBAC, puoi accedere al cluster dal
utilizzando la tua identità Google. Inoltre, puoi eseguire
comandi kubectl
di sola lettura su computer diversi dalla workstation di amministrazione che utilizzano
un kubeconfig
speciale che instrada le richieste attraverso
connetti il gateway.
Esegui questo comando su un computer diverso dalla workstation di amministrazione per ottenere la voce
kubeconfig
che può accedere al cluster tramite connetti il gateway.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID
L'output è simile al seguente:
Starting to build Gateway kubeconfig... Current project_id: FLEET_HOST_PROJECT_ID A new kubeconfig entry "connectgateway_FLEET_HOST_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
Ora puoi eseguire i comandi
kubectl
tramite il gateway di connessione:kubectl get pods -A
Passaggi successivi
- Eliminare un cluster di amministrazione
- Annulla la registrazione di un cluster non disponibile
- Aggiungi un cluster utente
- Gestire i cluster dalla console Google Cloud