Creazione di una workstation amministrativa

Questo documento mostra come creare una workstation di amministrazione per GKE su VMware. 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.

Le istruzioni riportate qui sono complete. Per un'introduzione più breve alla creazione di una workstation di amministrazione, vedi Creare una workstation di amministrazione (guida rapida).

Puoi creare una workstation di amministrazione in due modi:

  • Usa gkeadm per creare una VM della workstation di amministrazione nel tuo ambiente vSphere.
  • Crea una workstation di amministrazione gestita dall'utente su qualsiasi computer a tua scelta.

gkeadm

Lo strumento a riga di comando gkeadm è disponibile per Linux a 64 bit, Windows 10, Windows Server 2019 e macOS 10.15 e versioni successive.

Prima di iniziare

Impara a conoscere l'indirizzo del tuo server vCenter.

Impara a conoscere il percorso del certificato CA.

Installa Google Cloud CLI.

Crea uno o più progetti Google Cloud come descritto in Utilizzo di più progetti Google Cloud.

Pianificazione degli account di servizio

Quando utilizzi gkeadm per creare una workstation di amministrazione, puoi consentire a gkeadm di creare alcuni account di servizio e chiavi per te. 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 di account di servizio ti offre una maggiore flessibilità rispetto al fatto che gkeadm li crei per te:

  • Gli account di servizio creati automaticamente hanno tutti lo stesso progetto Google Cloud padre dell'account di servizio di accesso ai componenti. Quando crei un account di servizio manualmente, puoi scegliere il progetto Google Cloud padre.

  • Agli account di servizio creati automaticamente vengono assegnati ruoli IAM per il progetto Google Cloud principale dell'account di servizio di accesso ai componenti. Non è un problema se si tratta dell'unico progetto Google Cloud associato ai tuoi cluster. Tuttavia, se vuoi associare i cluster a più progetti Google Cloud, hai bisogno della flessibilità di concedere ruoli a un account di servizio su un progetto Google Cloud di tua scelta.

Se decidi di creare i tuoi account di servizio, segui le istruzioni in Account di servizio e chiavi.

Indipendentemente dal fatto che gkeadm crei automaticamente gli account di servizio, devi creare manualmente un account di servizio: l'account di servizio di accesso ai componenti. Per istruzioni su come creare l'account di servizio di accesso ai componenti e concedere i ruoli IAM appropriati, consulta Account di servizio accesso componenti.

Generazione di modelli per i file di configurazione

Scarica gkeadm nella directory attuale.

Genera i modelli:

./gkeadm create config

Il comando precedente ha creato i seguenti file nella directory attuale:

  • credential.yaml
  • admin-ws-config.yaml

Compilazione di credential.yaml in corso...

In credential.yaml, inserisci nome utente e password vCenter. Ad esempio:

kind: CredentialFile
items:
- name: vCenter
username: "my-account-name"
password: "AadmpqGPqq!a"

Compilazione di admin-ws-config.yaml in corso...

Diversi campi in admin-ws-config.yaml sono già stati compilati con valori predefiniti o generati. Puoi mantenere i valori compilati o apportare modifiche come preferisci.

Campi da compilare

Compila i seguenti campi obbligatori. Per informazioni su come compilare i campi, File di configurazione della workstation di amministrazione.

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 vSphere VM, compila il campo vCenter.folder:

vCenter:
folder: "Fill in"

Se la tua workstation di amministrazione si trova dietro un server proxy, compila il campo proxyURL:

adminWorkstation:
proxyURL: "Fill in"

Se vuoi che la workstation di amministrazione ottenga l'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 tua workstation 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"

Accesso in corso...

  1. Accedi con qualsiasi Account Google. In questo modo viene impostata la proprietà account dell'SDK:
gcloud auth login
  1. Verifica che la proprietà SDK account sia impostata correttamente:
gcloud config list
  1. L'Account Google impostato come proprietà SDK account è denominato account SDK. Lo strumento a riga di comando gkeadm utilizza il tuo account SDK per scaricare l'OVA della workstation di amministrazione e abilitare i servizi nel tuo progetto Google Cloud.

Se scegli che gkeadm crei automaticamente gli account di servizio, gkeadm utilizzerà il tuo account SDK anche per creare account di servizio e chiavi, nonché per concedere ruoli agli account di servizio. Di conseguenza, è importante impostare la proprietà account dell'SDK 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 ruoli al tuo account SDK

Il tuo account SDK deve avere il seguente ruolo IAM nel progetto Google Cloud principale dell'account di servizio di accesso ai componenti. In questo modo gkeadm può abilitare i servizi nel progetto Google Cloud.

  • serviceUsage.serviceUsageAdmin

Se scegli che gkeadm crei automaticamente gli account di servizio, il tuo account SDK deve disporre anche dei ruoli seguenti sul progetto principale dell'account di servizio Accesso ai componenti. In questo modo gkeadm può creare account di servizio e chiavi.

  • resourcemanager.projectIamAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Per concedere i 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 necessarie, puoi concedere i ruoli personalmente. In caso contrario, i ruoli dovranno essere concessi da un altro utente dell'organizzazione.

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 progetto Google Cloud principale dell'account di servizio Accesso ai componenti

  • ACCOUNT: il tuo account SDK

Per concedere altri ruoli nel caso voglia che gkeadm crei automaticamente 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 padre dell'account di servizio Accesso componenti

  • ACCOUNT: il tuo account SDK

Creazione della workstation di amministrazione in corso...

Inserisci questo comando per creare la tua workstation di amministrazione. Se vuoi che gkeadm crei account di servizio per te, includi il flag --auto-create-service-accounts. Se vuoi creare manualmente i tuoi account di servizio, ometti il flag.

./gkeadm create admin-workstation [--auto-create-service-accounts]

L'output fornisce informazioni dettagliate sulla creazione della workstation di amministrazione:

...
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 workstation di amministrazione. Inserisci il comando ora. 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 di servizio di accesso ai componenti. Se gkeadm ha creato degli account di servizio per te, puoi anche visualizzare i file delle chiavi JSON per questi account. 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 workstation di amministrazione:

gcloud config get-value account

Copia del file di chiave JSON nella workstation di amministrazione

Prima di creare un cluster, i file di chiavi JSON per i tuoi account di servizio devono trovarsi sulla workstation di amministrazione nella home directory.

La chiave per l'account di servizio di accesso ai componenti si trova già sulla workstation di amministrazione.

Se hai incluso il flag --auto-create-service-accounts durante l'esecuzione di gkeadm create admin-workstation, le chiavi dei seguenti account di servizio sono già presenti sulla workstation di amministrazione nella home directory. In caso contrario, devi copiare manualmente le chiavi nella home directory della workstation di amministrazione:

  • Connetti account di servizio registrato
  • Account di servizio di monitoraggio di Logging

Se hai creato uno dei seguenti account di servizio, devi copiarne manualmente le chiavi nella home directory della workstation di amministrazione:

  • Account di servizio di misurazione dell'utilizzo
  • Account di servizio di audit logging
  • Account di servizio di Autorizzazione binaria

Ripristino della workstation di amministrazione da un file di backup

Quando esegui l'upgrade di una workstation di amministrazione, per impostazione predefinita il comando gkeadm upgrade salva anche un file di backup. In seguito, se non hai più una workstation di amministrazione o se hai perso alcuni dei file che erano presenti sulla workstation di amministrazione aggiornata, puoi utilizzare questo file di backup per creare una workstation di amministrazione che viene ripristinata allo stato attivo subito dopo l'upgrade.

Per creare una workstation di amministrazione 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 workstation di amministrazione. Puoi utilizzare Ubuntu o Red Hat Enterprise Linux (RHEL). Di seguito sono riportati 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 tua workstation di amministrazione deve avere accesso a Google Cloud per scaricare e installare 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 Regole per proxy e firewall.

Accesso a vCenter Server

Per creare e gestire i cluster dalla workstation di amministrazione, devi accedere alla tua istanza di vCenter Server. Per ulteriori informazioni, vedi:

Configurare un server NTP

Se il cluster è configurato per l'utilizzo di un server NTP, devi configurare un servizio di sincronizzazione temporale sulla workstation di amministrazione per assicurarti che timedatectl registri l'ora sincronizzata con il cluster. Questa operazione è necessaria per evitare grandi problemi di deviazione dell'orologio, che potrebbero causare errori di verifica dei certificati dovuti a date di scadenza senza corrispondenza.

Ubuntu

Ti consigliamo di utilizzare il server dell'ora chrony.

Per installare chrony:

sudo apt-get update
sudo apt install chrony

Ciò fornisce due file binari:

  • chronyd: il daemon da sincronizzare e pubblicare tramite il protocollo Network Time Protocol
  • chronyc: l'interfaccia a riga di comando per il daemon chrony

Per configurare chronyd:

Modifica /etc/chrony/chrony.conf per aggiungere o rimuovere linee di server. Quindi riavvia chrony:

sudo systemctl restart chrony.service

RHEL

Ti consigliamo di utilizzare il server dell'ora chrony.

Per le istruzioni di installazione, consulta Come configurare la cronologia.

Sudo senza password

Se il criterio di sicurezza lo consente, abilita sudo senza password per l'utente corrente. Questo consente a gkectl di preparare un registro privato, se ne viene fornito uno, di configurare il proxy per Docker se la rete è protetta da un server proxy e di forzare l'eliminazione del cluster di bootstrap utilizzato per le operazioni del ciclo di vita del cluster di amministrazione nel caso in cui l'eliminazione non vada a buon fine.

Se scegli di non abilitare sudo senza password e intendi utilizzare un registro privato per il tuo cluster di amministrazione, effettua la seguente configurazione manuale prima di creare il cluster di amministrazione:

Se scegli di non abilitare sudo senza password, potresti dover eliminare manualmente il cluster kind dopo aver creato un cluster di amministrazione. Per ulteriori informazioni, consulta Il cluster tipo non viene eliminato nella documentazione per la risoluzione dei problemi.

Installa software

Ubuntu

Installa il seguente software:

sudo apt-get update
sudo apt-get -y install kubectl

RHEL

Installa il seguente software:

Docker 19.03 o versioni successive

  1. Rimuovi qualsiasi versione Docker precedente:

    sudo dnf remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
    
  2. Rimuovi podman-manpages:

    sudo dnf remove podman-manpages
    
  3. 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
    
  4. Verifica che sia ora in esecuzione la versione 19.03 o successive:

    sudo docker version
    
  5. Confronta l'output con l'esempio seguente per assicurarti che le versioni client e server siano 19.03 e successive:

    Client: Docker Engine - Community
    Version:           19.03.13
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          19.03.13
    
  6. Verifica le esecuzioni di Docker:

    docker run hello-world
    

    Il risultato dovrebbe essere simile a questo:

    Hello from Docker!
    

    This message shows that your installation appears to be working correctly.

Versione più recente di Google Cloud CLI:

Vedi Installare gcloud CLI.

kubectl

Esegui gcloud components install kubectl.

Accedi

L'Account Google impostato come proprietà SDK account è chiamato account SDK. Lo strumento a riga di comando gkectl utilizza il tuo account SDK per scaricare gli OVA dei nodi cluster, eseguire il pull delle immagini container e altro ancora. È quindi importante impostare la proprietà dell'account SDK prima di eseguire i comandi gkectl.

Accedi con qualsiasi Account Google. In questo modo 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]

Scaricare gkectl e il bundle

Vai a una directory in cui vuoi installare gkectl.

Scarica gkectl:

gsutil cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./
chmod +x gkectl

Sostituisci VERSION con la versione di GKE su VMware. Ad esempio: 1.16.0-gke.1.

Scarica il pacchetto GKE su VMware. Assicurati che la versione corrisponda a quella utilizzata per scaricare gkectl:

gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./

Passaggi successivi

Crea un cluster di amministrazione