Questo documento mostra come creare una workstation di amministrazione per Google Distributed Cloud. La workstation di amministrazione ospita strumenti di interfaccia a riga di comando (CLI) e file di configurazione per eseguire il provisioning dei cluster durante l'installazione, nonché strumenti di interfaccia a riga di comando per interagire con i cluster di cui è stato eseguito il provisioning dopo l'installazione.
Questa pagina è rivolta ad amministratori, architetti e operatori che configurano, monitorano e gestiscono l'infrastruttura tecnica. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni per gli utenti di GKE Enterprise.
Le istruzioni riportate qui sono complete. Per un'introduzione più breve alla creazione di una workstation di amministrazione, consulta Creare una workstation di amministrazione nella guida Creare cluster di base.
Esistono due modi per creare una workstation amministrativa:
- Utilizza
gkeadm
per creare una VM workstation di amministrazione nel tuo ambiente vSphere. Crea una workstation di amministrazione gestita dall'utente su qualsiasi computer a tua scelta.
gkeadm
Prima di iniziare
Conosci l'indirizzo del server vCenter.
Conosci il percorso del certificato CA.
Crea uno o più progetti Google Cloud come descritto in Utilizzare più progetti Google Cloud .
Pianificare gli account di servizio
Quando utilizzi gkeadm
per creare una workstation di amministrazione, hai la possibilità di lasciare che gkeadm
crei alcuni dei tuoi account di servizio e delle tue chiavi. In questo caso, gkeadm
concede anche i ruoli Identity and Access Management appropriati agli account di servizio.
In alternativa, puoi creare manualmente gli account di servizio e le chiavi. In questo caso, devi concedere manualmente i ruoli IAM ai tuoi account di servizio.
La creazione manuale degli account di servizio offre più flessibilità rispetto alla loro creazione da parte di gkeadm
:
Gli account di servizio creati automaticamente hanno tutti lo stesso progetto parente Google Cloud come account di servizio di accesso ai componenti. Quando crei un account di servizio manualmente, puoi scegliere il progettoGoogle Cloud principale.
A tutti gli account di servizio creati automaticamente vengono concessi i ruoli IAM nel progetto Google Cloud principale del tuo account del servizio di accesso ai componenti. Questo è accettabile se è l'unico progetto Google Cloud associato ai tuoi cluster. Tuttavia, se vuoi associare i tuoi cluster a più progetti , hai bisogno della flessibilità di concedere ruoli a un account di servizio in un progettoGoogle Cloud a tua scelta.
Se decidi di creare i tuoi account di servizio, segui le istruzioni riportate in Account di servizio e chiavi.
Indipendentemente dal fatto che tu abbia attivato la creazione automatica degli account di servizio da parte di gkeadm
, devi creare manualmente un account di servizio: l'account di servizio di accesso ai componenti. Per istruzioni su come creare il tuo account di servizio di accesso ai componenti e assegnargli i ruoli IAM appropriati, consulta Account di servizio di accesso ai componenti.
Esiste un altro account di servizio che potresti dover creare manualmente: il tuo account di servizio di registrazione dei controlli. Se vuoi utilizzare un client API GKE On-Prem per gestire i tuoi cluster utente, devi attivare il logging di controllo nel tuo cluster di amministrazione.
Generazione di modelli per i file di configurazione
Scarica gkeadm
nella directory corrente.
Genera modelli:
./gkeadm create config
Il comando precedente ha creato questi file nella directory corrente:
credential.yaml
admin-ws-config.yaml
Riempimento in credential.yaml
In credential.yaml
, inserisci il nome utente e la password di vCenter. Ad esempio:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
Riempimento in admin-ws-config.yaml
Diversi campi in admin-ws-config.yaml
sono già compilati con valori predefiniti o generati. Puoi mantenere i valori inseriti o apportare modifiche come preferisci.
Campi da compilare
Compila i seguenti campi obbligatori. Per informazioni su come compilare i campi, consulta File di configurazione della workstation amministrativa.
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
Se vuoi creare la tua workstation di amministrazione all'interno di una cartella VM vSphere, compila il campo vCenter.folder
:
vCenter: folder: "Fill in"
Se la workstation di amministrazione si trova dietro un server proxy, compila il campo proxyURL
:
adminWorkstation: proxyURL: "Fill in"
Se vuoi che la workstation di amministrazione riceva il proprio indirizzo IP da un server DHCP, imposta ipAllocationMode
su "dhcp"
e rimuovi la sezione hostconfig
:
adminWorkstation: network: ipAllocationMode: "dhcp"
Se vuoi specificare un indirizzo IP statico per la postazione di amministrazione, imposta ipAllocationMode
su "static"
e compila la sezione hostconfig
:
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
Accedere
- Accedi con qualsiasi Account Google. Viene impostata la proprietà
account
dell'SDK:
gcloud auth login
- Verifica che la proprietà SDK
account
sia impostata correttamente:
gcloud config list
- L'Account Google impostato come proprietà
account
dell'SDK si chiama account SDK. Lo strumento a riga di comandogkeadm
utilizza il tuo account SDK per scaricare l'OVA della workstation di amministrazione e attivare i servizi nel tuo progettoGoogle Cloud .
Se scegli di far creare automaticamente gli account di servizio da gkeadm
,
gkeadm
utilizza anche il tuo account SDK per creare account di servizio e chiavi, nonché per concedere i ruoli agli account di servizio.
Pertanto, è importante impostare la proprietà SDK account
prima di eseguire
gkeadm
per creare una workstation di amministrazione.
L'output mostra i valori della proprietà SDK account
.
Ad esempio:
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Concedi i ruoli al tuo account SDK
L'account SDK deve disporre del seguente
ruolo IAM
nel progetto Google Cloud principale del tuo account di servizio di accesso al componente.
In questo modo, gkeadm
può attivare i servizi nel progetto Google Cloud .
serviceUsage.serviceUsageAdmin
Se scegli di far creare automaticamente gli account di servizio da gkeadm
,
l'account SDK deve disporre anche dei seguenti ruoli nel progetto
principale dell'account di servizio di accesso del componente. In questo modo, gkeadm
può creare account di servizio e chiavi.
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Per concedere ruoli in un progetto Google Cloud , devi disporre di determinate autorizzazioni per il progetto Google Cloud . Per maggiori dettagli, consulta Concessione, modifica e revoca dell'accesso alle risorse.
Se disponi delle autorizzazioni richieste, puoi assegnare i ruoli autonomamente. In caso contrario, qualcun altro nella tua organizzazione deve concederti i ruoli.
Per concedere il ruolo richiesto al tuo account SDK:
Linux e macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin"
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progettoGoogle Cloud principale del tuo account di servizio di accesso ai componentiACCOUNT
: il tuo account SDK
Per concedere ruoli aggiuntivi nel caso in cui tu voglia che gkeadm
crei automaticamente gli account di servizio:
Linux e macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountKeyAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountKeyAdmin"
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto principale del tuo account di servizio di accesso ai componentiACCOUNT
: il tuo account SDK
Creazione della workstation di amministrazione
Inserisci questo comando per creare la workstation di amministrazione. Se vuoi
gkeadm
creare gli account di servizio
connect-register
e
logging-monitoring
per te, includi il flag
--auto-create-service-accounts
. Se vuoi creare manualmente questi account di servizio, ometti il flag.
./gkeadm create admin-workstation [--auto-create-service-accounts]
L'output fornisce informazioni dettagliate sulla creazione della workstation amministrativo:
... Getting ... service account... ... ******************************************************************** Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1 ********************************************************************
Ottenere una connessione SSH alla workstation di amministrazione
Verso la fine dell'output precedente è presente un comando che puoi utilizzare per ottenere una connessione SSH alla tua workstation di amministrazione. Inserisci subito il comando. Ad esempio:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
Elenca i file sulla workstation di amministrazione:
ls -1
Nell'output puoi vedere due file di configurazione del cluster, il file del certificato CA e il file della chiave JSON per l'account del servizio di accesso ai componenti. Se gkeadm
ha creato account di servizio per te, puoi anche vedere i file delle chiavi JSON per questi account di servizio. Ad esempio:
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
Verifica che gkeadm
abbia attivato l'account di servizio di accesso ai componenti sulla tua workstation di amministrazione:
gcloud config get-value account
Copiare i file delle chiavi JSON nella workstation di amministrazione
Prima di creare un cluster, i file delle chiavi JSON per gli account di servizio devono essere nella home directory della workstation di amministrazione.
La chiave per l'account di servizio di accesso al componente è già presente sulla tua workstation di amministrazione.
Se hai incluso il flag --auto-create-service-accounts
quando hai eseguito gkeadm create admin-workstation
, le chiavi per i seguenti account servizio sono già presenti nella home directory della tua workstation di amministrazione. In caso contrario,
devi copiare manualmente le chiavi nella home directory della workstation di amministrazione:
- Account di servizio Connect-register
- Account di servizio di monitoraggio e logging
Se hai creato uno dei seguenti account di servizio, devi copiare manualmente le chiavi per questi account di servizio nella home directory della tua workstation di amministrazione:
- Account di servizio per la misurazione dell'utilizzo
- Account di servizio per l'audit logging
- Account di servizio di Autorizzazione binaria
Ripristino della workstation amministrativa da un file di backup
Quando esegui l'upgrade di una workstation di amministrazione, il comando gkeadm upgrade
salva un file di backup. In un secondo momento, se non disponi più di una workstation di amministrazione o se hai perso alcuni dei file presenti sulla workstation di amministrazione di cui è stato eseguito l'upgrade, puoi utilizzare questo file di backup per creare una workstation di amministrazione con le impostazioni ripristinate immediatamente dopo l'upgrade.
Per creare una workstation amministrativa da un file di backup, esegui questo comando:
gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz
Sostituisci ADMIN_WORKSTATION_NAME con il nome della workstation di amministrazione.
Gestita dall'utente
Scegli un computer da utilizzare come stazione di lavoro di amministrazione. Puoi utilizzare Ubuntu o Red Hat Enterprise Linux (RHEL). Ecco i requisiti:
Ubuntu 20.04 LTS o 22.04 LTS
- 4 core CPU
- 8 GiB di RAM
- 100 GiB di spazio di archiviazione
RHEL 8.6, 8.7 o 8.8
- 4 core CPU
- 12 GB di RAM
- 256 GiB di spazio di archiviazione
Accesso a Google Cloud
La workstation di amministrazione deve avere accesso a Google Cloud per scaricare e installare gli strumenti, elaborare le richieste di autorizzazione, creare account di servizio e altro ancora.
Per informazioni sui diversi modi per connettersi a Google Cloud, consulta Connettersi a Google.
L'accesso a Google Cloud può essere diretto o tramite un server proxy. Per informazioni sulle regole firewall e sulla configurazione di un server proxy, consulta Proxy e regole firewall.
Accesso a vCenter Server
Per creare e gestire i cluster dalla workstation di amministrazione, devi avere accesso alla tua istanza di vCenter Server. Per informazioni, vedi:
- Requisiti di vSphere
- Determina l'indirizzo del server vCenter
- Ottenere il certificato radice CA vCenter
Configurare un server NTP
Quando il cluster è configurato per utilizzare un server NTP, devi configurare un servizio di sincronizzazione dell'ora sulla tua workstation di amministrazione per assicurarti che timedatectl
registri l'ora sincronizzata con il cluster. Questo è necessario per evitare problemi di scostamento dell'orologio di grandi dimensioni, che potrebbero causare errori di verifica del certificato a causa di date di scadenza non corrispondenti.
Ubuntu
Ti consigliamo di utilizzare il server orario chrony
.
Per installare chrony
:
sudo apt-get update sudo apt install chrony
Vengono forniti due file binari:
chronyd
: il daemon da sincronizzare e pubblicare tramite il Network Time Protocolchronyc
: l'interfaccia a riga di comando per il daemonchrony
Per configurare chronyd
:
Modifica /etc/chrony/chrony.conf
per aggiungere o rimuovere righe del server. Quindi riavvia
chrony
:
sudo systemctl restart chrony.service
RHEL
Ti consigliamo di utilizzare il server orario chrony
.
Per le istruzioni di installazione, consulta Come configurare chrony.
Sudo senza password
Se i tuoi criteri di sicurezza lo consentono, attiva sudo senza password per l'utente corrente. In questo modo, gkectl
può preparare un registry privato, se fornito, configurare il proxy per Docker se la rete si trova dietro un server proxy ed eliminare forzatamente il cluster di bootstrap utilizzato per le operazioni di ciclo di vita del cluster di amministrazione nel caso in cui l'eliminazione non vada a buon fine.
Se scegli di non attivare sudo senza password e intendi utilizzare un registro privato per il cluster di amministrazione, esegui la seguente configurazione manuale prima di creare il cluster di amministrazione:
Posiziona il certificato CA radice per il registry privato in questa directory:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Sostituisci REGISTRY_ADDRESS con l'indirizzo della macchina che esegue il registry privato.
Per ulteriori informazioni, consulta Verificare il client del repository con i certificati.
Se la tua rete è protetta da un server proxy, specifica il server proxy nel file di configurazione del cluster di amministrazione e configura Docker per utilizzare il server proxy.
Se scegli di non attivare sudo senza password, potresti dover eliminare manualmente il cluster kind
dopo aver creato un cluster di amministrazione. Per ulteriori informazioni, consulta Il cluster di tipo non viene eliminato nella documentazione sulla risoluzione dei problemi.
Installa il software
Ubuntu
Installa il seguente software:
Docker 19.03 o versioni successive: consulta Installare Docker Engine su Ubuntu. Assicurati che l'utente non root sia membro del gruppo docker. Vedi Gestire Docker come utente non root.
Versione più recente di Google Cloud CLI: consulta Installare Google Cloud CLI.
kubectl: esegui
gcloud components install kubectl
o utilizzaapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Installa il seguente software:
Docker 19.03 o versioni successive
Rimuovi eventuali versioni precedenti di Docker:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
Rimuovi podman-manpages:
sudo dnf remove podman-manpages
Installa Docker 19.03 o versioni successive:
sudo dnf install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start docker
Verifica di eseguire la versione 19.03 o successive:
sudo docker version
Confronta l'output con l'esempio seguente per assicurarti che le versioni del client e del server siano 19.03 o successive:
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Verifica che Docker sia in esecuzione:
docker run hello-world
Dovresti visualizzare un messaggio simile al seguente:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Versione più recente di Google Cloud CLI:
Consulta Installa la gcloud CLI.
kubectl
Esegui gcloud components install kubectl
.
Accedi
L'Account Google impostato come
proprietà account
dell'SDK
è chiamato account SDK. Lo strumento a riga di comando gkectl
utilizza il tuo account SDK per scaricare OVA dei nodi del cluster, eseguire il pull di immagini container e altro ancora. Pertanto, è importante impostare la proprietà dell'account SDK prima di eseguire i comandi gkectl
.
Accedi con qualsiasi Account Google. Viene impostata la proprietà account
dell'SDK:
gcloud auth login
Verifica che la proprietà SDK account
sia impostata correttamente:
gcloud config list
L'output mostra i valori della proprietà SDK account
.
Ad esempio:
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Scarica gkectl e il bundle
Vai alla directory in cui vuoi installare gkectl
.
Scarica gkectl
:
gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Sostituisci VERSION con la versione di Google Distributed Cloud. Ad
esempio: 1.16.0-gke.1
.
Scarica il bundle Google Distributed Cloud. Assicurati che la versione corrisponda a quella che hai utilizzato per scaricare gkectl
:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
Account di servizio e chiavi
Assicurati di aver creato i seguenti account di servizio e file di chiavi JSON obbligatori:
Assicurati inoltre di aver creato gli account di servizio facoltativi e i file JSON delle chiavi di cui hai bisogno:
Inserisci tutti i file delle chiavi JSON nella home directory della tua workstation amministrativo.
Risoluzione dei problemi
La sezione seguente riattiva l'accesso SSH alla workstation di amministrazione nel caso in cui la chiave SSH venga persa o danneggiata.
Recupero della chiave SSH
Utilizza una VM temporanea per eseguire i seguenti passaggi:
Per generare un nuovo set di chiavi SSH, segui le istruzioni riportate in Creare chiavi SSH nella documentazione di Compute Engine.
Assicurati che la VM temporanea e la workstation di amministrazione siano in stato
Powered Off
.In vSphere, collega il disco di avvio della workstation di amministrazione alla VM temporanea.
Il disco di avvio ha l'etichetta
Hard disk 1
.Monta il disco di avvio all'interno della VM eseguendo i seguenti comandi:
sudo mkdir -p /mnt/boot-disk sudo mount DISK_ID /mnt/boot-disk
Sostituisci
DISK_ID
con l'identificatore del disco di avvio, che dovrebbe avere un formato simile adev/sdc1
.Modifica il file
authorized_keys
sul disco di avvio per accodare i contenuti del file della chiave pubblica generato nel primo passaggio:vi /mnt/boot-disk/.ssh/authorized_keys
Arresta la VM temporanea.
Accendi la workstation di amministrazione.
Utilizza la chiave privata appena generata per accedere alla workstation di amministrazione.
ssh -i ~/.ssh/new-admin-ws.key ubuntu@"${ADMIN_WS_IP}"
Utilizza la chiave privata appena generata per continuare ad accedere alla tua workstation amministrativo.
Passaggi successivi
Creare un cluster di amministrazione