Creazione di una workstation amministrativa

Questo documento mostra come creare una workstation di amministrazione, 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 si rivolge agli amministratori, agli architetti e agli operatori che configurano, monitorare e gestire 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à utente comuni di GKE Enterprise.

Le istruzioni 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 di amministrazione:

  • 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.

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 scegliere consentendo a gkeadm di creare per te alcuni account di servizio e chiavi. In questo caso, gkeadm concede inoltre i ruoli Identity and Access Management appropriati al servizio .

In alternativa, puoi creare manualmente gli account di servizio e le chiavi. In questo caso, devi concedere manualmente i ruoli IAM al tuo servizio .

La creazione manuale di account di servizio offre più flessibilità rispetto alla creazione manuale gkeadm li creerà per te:

  • Gli account di servizio creati automaticamente hanno tutti lo stesso progetto Google Cloud principale dell'account di servizio di accesso del componente. Quando crei un account di servizio manualmente, puoi scegliere l'account principale progetto Google Cloud.

  • Agli account di servizio creati automaticamente sono concessi i ruoli IAM ruoli sul progetto Google Cloud padre del servizio di accesso ai componenti . Non c'è problema se questo è l'unico progetto Google Cloud associato con i tuoi cluster. Tuttavia, se vuoi associare i tuoi cluster a più progetti Google Cloud, hai bisogno della flessibilità di concedere ruoli a un account di servizio in un progetto Google Cloud a tua scelta.

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

Indipendentemente dal fatto che tu abbia gkeadm di creare account di servizio automaticamente, c'è un solo account di servizio che manualmente: il tuo account di servizio di accesso ai componenti. Per istruzioni su come creare l'account di servizio di accesso ai componenti e assegnargli l'appropriata Per i ruoli IAM, consulta Account di servizio di accesso ai componenti.

Esiste un altro account di servizio che potresti dover creare manualmente: il tuo account di servizio per la registrazione dei controlli. Se vuoi utilizzare un API GKE On-Prem per gestire i cluster utente, devi abilitare log di controllo nel tuo cluster di amministrazione.

Generare 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 attuale:

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

Compilazione di credential.yaml in corso...

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"

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

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

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

vCenter:
folder: "Fill in"

Se la workstation di amministrazione è dietro un server proxy, compila Campo proxyURL:

adminWorkstation:
proxyURL: "Fill in"

Se vuoi che la tua workstation di amministrazione riceva 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 workstation di amministrazione, imposta ipAllocationMode a "static" e compila il hostconfig sezione:

adminWorkstation:
network:
  ipAllocationMode: "static"
  hostconfig:
    ip: "Fill in"
    gateway: "Fill in"
    netmask: "Fill in"
    dns:
    - "Fill in"

Accedere

  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à dell'SDK account è chiamato account SDK. Lo strumento a riga di comando gkeadm utilizza il tuo account SDK per scaricare l'OVA della workstation di amministrazione e attivare i servizi nel tuo progetto Google 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à account dell'SDK. Ad esempio:

[core]
account = my-name@google.com
disable_usage_reporting = False
Your active configuration is: [default]

Concedi ruoli al tuo account SDK

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

  • serviceUsage.serviceUsageAdmin

Se scegli di lasciare che gkeadm crei automaticamente gli account di servizio per te, il tuo account SDK deve avere anche i seguenti ruoli nell'account del tuo account di servizio per l'accesso ai componenti. 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 necessarie, puoi concedere i ruoli autonomamente. In caso contrario, i ruoli devono essere concessi da qualcun altro nella tua 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 dell'elemento principale Progetto Google Cloud dell'account di servizio di accesso ai componenti

  • ACCOUNT: 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 componenti

  • ACCOUNT: il tuo account SDK

Creazione della workstation di amministrazione

Inserisci questo comando per creare la workstation di amministrazione. Se vuoi gkeadm per creare collega-registra e logging-monitoring gli account di servizio per te, includi 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 c'è un comando che puoi utilizzare per ottenere Connessione SSH alla 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 visualizzare 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 il tuo account di servizio di accesso ai componenti sul tuo 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 del tuo account di servizio di accesso ai componenti è già nel tuo amministratore la workstation.

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. Altrimenti devi copiare manualmente le chiavi nella home directory della workstation di amministrazione:

  • Account di servizio Connect-register
  • Account di servizio di monitoraggio dei log

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 di misurazione dell'utilizzo
  • Account di servizio per l'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, gkeadm upgrade salva il 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 uno dei seguenti metodi: Ubuntu o Red Hat Enterprise Linux (RHEL). Ecco i requisiti:

  • Ubuntu 20.04 LTS o 22.04 LTS

    • 4 core CPU
    • 8 GB 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 proxy e firewall.

Accesso al server vCenter

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

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 sfasamento 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 di riferimento 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 Protocol
  • chronyc: l'interfaccia a riga di comando per il daemon chrony

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 di riferimento orario chrony.

Per istruzioni sull'installazione, vedi Come configurare la cronologia.

Sudo senza password

Se il criterio di sicurezza lo consente, abilita sudo senza password per dell'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:

Se scegli di non attivare sudo senza password, potresti dover eliminare manualmente il cluster kind dopo aver creato un cluster di amministrazione. Per maggiori informazioni le informazioni, vedi Il cluster di tipo non viene eliminato nella documentazione sulla risoluzione dei problemi.

Installa software

Ubuntu

Installa il software seguente:

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

RHEL

Installa il seguente software:

Docker 19.03 o versioni successive

  1. 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
    
  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 di eseguire la versione 19.03 o successive:

    sudo docker version
    
  5. Confronta l'output con l'esempio seguente per assicurarti che client e Le versioni server sono 19.03+:

    Client: Docker Engine - Community
    Version:           19.03.13
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          19.03.13
    
  6. Verifica che Docker sia in esecuzione:

    docker run hello-world
    

    Dovresti visualizzare qualcosa di 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 tuo 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. Quindi è importante impostare la proprietà dell'account SDK prima di eseguire gkectl tramite comandi SQL.

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à account dell'SDK. 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 pacchetto 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 obbligatori e il codice JSON file chiave:

Assicurati inoltre di aver creato eventuali account di servizio facoltativi e file JSON i file chiave che ti servono:

Inserisci tutti i file delle chiavi JSON nella home directory dell'amministratore la workstation.

Risoluzione dei problemi

La sezione seguente riattiva l'accesso SSH alla workstation di amministrazione nel alla perdita o al danneggiamento della chiave SSH.

Recupero della chiave SSH

Utilizza una VM temporanea per eseguire i seguenti passaggi:

  1. Per generare un nuovo set di chiavi SSH, segui le istruzioni riportate in Creare chiavi SSH nella documentazione di Compute Engine.

  2. Assicurati che la VM temporanea e la workstation di amministrazione siano in stato Powered Off.

  3. All'interno di vSphere, collega il disco di avvio della workstation di amministrazione alla una VM temporanea.

    Il disco di avvio ha l'etichetta Hard disk 1.

  4. 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 deve avere un formato simile a dev/sdc1.

  5. Modifica il file authorized_keys sul disco di avvio per aggiungere i contenuti del il file della chiave pubblica generato nel primo passaggio:

    vi /mnt/boot-disk/.ssh/authorized_keys
    
  6. Arresta la VM temporanea.

  7. Accendi la workstation di amministrazione.

  8. 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

Crea un cluster di amministrazione