Creazione di un cluster utente (base)

Questa pagina mostra come creare un cluster utente.

I passaggi in questo argomento sono scritti supponendo che tu abbia utilizzato gkeadm per creare la workstation di amministrazione. Se non hai utilizzato gkeadm, ma hai seguito i passaggi descritti in Creare una workstation di amministrazione con un indirizzo IP statico, devi apportare alcune modifiche man mano che segui questo argomento. I singoli passaggi spiegano gli eventuali aggiustamenti necessari.

Se utilizzi un proxy, tutti i comandi gkectl utilizzano automaticamente lo stesso proxy che hai impostato nel file di configurazione per le richieste Internet dalla workstation di amministrazione. Se la workstation di amministrazione non si trova dietro lo stesso proxy, fai riferimento alle "Opzioni proxy manuali" negli argomenti avanzati Creazione di una workstation di amministrazione: IP statico | DHCP.

SSH nella workstation di amministrazione

Accedi alla tua workstation di amministrazione tramite SSH seguendo le istruzioni riportate in Ottenere una connessione SSH alla tua workstation di amministrazione.

L'account di servizio incluso nella lista consentita viene attivato nella tua workstation di amministrazione. Esegui tutti i passaggi rimanenti di questo argomento sulla workstation di amministrazione.

Configurazione di IP statici per il cluster utente

Per specificare gli indirizzi IP statici da utilizzare per il cluster utente, crea un file di configurazione host denominato user-hostconfig.yaml. Per questo esercizio, devi specificare tre indirizzi IP che devono essere utilizzati dal cluster utente.

Di seguito è riportato un file di configurazione dell'host con tre host:

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.15
      hostname: user-host1
    - ip: 172.16.20.16
      hostname: user-host2
    - ip: 172.16.20.17
      hostname: user-host3

Il campo ips è un array di indirizzi IP e nomi host. Questi sono gli indirizzi IP e i nomi host che GKE On-Prem assegnerà ai nodi del tuo cluster utente.

Nel file di configurazione dell'host, devi specificare anche gli indirizzi dei server DNS, dei server dell'ora e del gateway predefinito che verranno utilizzati dai nodi del cluster utente.

Il campo searchdomainsfordns è un array di domini di ricerca DNS da utilizzare nel cluster. Questi domini vengono utilizzati come parte di un elenco di ricerca di domini.

Campi compilati nel file di configurazione

Ricorda che quando hai creato la workstation di amministrazione, hai compilato un file di configurazione denominato admin-ws-config.yaml. Lo strumento a riga di comando gkeadm ha utilizzato il tuo file admin-ws-config.yaml per creare la workstation di amministrazione.

Quando gkeadm ha creato la tua workstation di amministrazione, ha generato un altro file di configurazione denominato user-cluster.yaml. Questo file di configurazione, che si trova nella workstation di amministrazione, serve per creare il cluster utente.

I file admin-ws-config.yaml e user-cluster.yaml hanno diversi campi in comune. I valori per questi campi comuni sono già compilati nel file user-cluster.yaml.

Questi sono i campi che vengono già compilati con i valori che hai fornito al momento della creazione della workstation di amministrazione:

stackdriver:
  projectID:
  serviceAccountKeyPath:
gkeConnect:
  projectID:
  registerServiceAccountKeyPath:
  agentServiceAccountKeyPath:

Compilazione del resto del file di configurazione

Successivamente, devi compilare i campi rimanenti nel file user-cluster.yaml.

name

Stringa. Un nome scelto da te per il tuo cluster utente. Ad esempio:

name: "my-user-cluster"

gkeOnPremVersion

Stringa. La versione on-prem di GKE per il tuo cluster utente. Ad esempio:

gkeOnPremVersion: "1.4.3-gke.3"

network.ipMode.type

Stringa. Imposta questo valore su "static".

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

Stringa. Poiché utilizzi indirizzi IP statici, devi disporre di un file di configurazione dell'host, come descritto nella sezione Configurare gli indirizzi IP statici. Imposta network.ipBlockFilePath sul percorso del file di configurazione dell'host. Ad esempio:

network:
  ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"

network.serviceCIDR e network.podCiDR

Stringhe. Il cluster utente deve avere un intervallo di indirizzi IP da utilizzare per i servizi e un intervallo di indirizzi IP da utilizzare per i pod. Questi intervalli sono specificati dai campi network.serviceCIDR e network.podCIDR. Questi campi vengono completati con i valori predefiniti. Se vuoi, puoi modificare i valori compilati con quelli di tua scelta.

Gli intervalli di servizi e pod non devono sovrapporsi. Inoltre, gli intervalli di servizi e pod non devono sovrapporsi agli indirizzi IP utilizzati per i nodi in qualsiasi cluster.

Esempio:

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

Stringa. Il nome della rete vSphere per i nodi del cluster.

Se il nome contiene un carattere speciale, devi utilizzare una sequenza di escape.

Caratteri speciali Sequenza di escape
Barra (/) %2f
Barra rovesciata (\) %5c
Simbolo percentuale (%) %25

Se il nome della rete non è univoco, è possibile specificare un percorso per la rete, ad esempio /DATACENTER/network/NETWORK_NAME.

Ad esempio:

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

loadBalancer.vips

Stringhe. Imposta il valore loadBalancer.vips.controlPlaneVIP su l'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il server API Kubernetes del cluster utente. Imposta il valore di loadBalancer.vips.ingressVIP sull'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il servizio in entrata nel tuo cluster utente. Ad esempio:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.5"
    ingressVIP: "203.0.113.6"

loadBalancer.kind

Stringa. Imposta questo valore su "Seesaw". Ad esempio:

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

Stringa. Impostalo sul percorso del file hostconfig per la VM di Seesaw. Ad esempio:

loadbalancer:
  ...
  seesaw:
    ipBlockFilePath: "user-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

Numero intero. L'identificatore del router virtuale della VM di Seesaw. Questo identificatore deve essere univoco in una VLAN. L'intervallo valido è 1-255. Ad esempio:

loadBalancer:
  seesaw:
    vrid: 126

loadBalancer.seesaw.masterIP

Stringa. L'indirizzo IP del piano di controllo per la VM Seesaw. Ad esempio:

loadBalancer:
  seesaw:
    masterIP: "203.0.113.7"

loadBalancer.seesaw.cpus

Numero intero. Il numero di CPU per la tua VM Seesaw. Ad esempio:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Numero intero. Il numero di megabyte di memoria per la tua VM di Seesaw. Ad esempio:

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.enableHA

Valore booleano. Imposta questo valore su false. Ad esempio:

loadBalancer:.
  seesaw:
    enableHA: false

nodePools.name

Stringa. Un nome scelto da te per un pool di nodi. Ad esempio:

nodePools:
- name: "my-user-pool"

nodePools.replicas

Numero intero. Il numero di VM nel pool di nodi. Imposta questo valore su 3.

nodePools:
- name: "my-user-pool"
  replicas: 3

stackdriver.clusterLocation

Stringa. La regione Google Cloud in cui vuoi archiviare i log. È buona norma scegliere una regione vicina al data center on-premise.

stackdriver.enablevpc

Imposta stackdriver.enablevpc su true se la rete del cluster è controllata da un VPC. Ciò garantisce che tutta la telemetria passi attraverso gli indirizzi IP limitati di Google.

stackdriver.enableVPC

Valore booleano. Imposta stackdriver.enableVPC su true se la rete del cluster è controllata da un VPC. Ciò garantisce che tutta la telemetria passi attraverso gli indirizzi IP limitati di Google. In caso contrario, imposta questa opzione su false. Ad esempio:

stackdriver:
  enableVPC: false

Campi aggiuntivi nel file di configurazione

Il file di configurazione GKE On-Prem ha diversi campi oltre a quelli mostrati in questo argomento. Ad esempio, puoi utilizzare il campo manuallbspec per configurare GKE On-Prem per l'esecuzione in modalità di bilanciamento del carico manuale.

Per una descrizione completa dei campi nel file di configurazione, consulta Installazione con DHCP e Installazione con indirizzi IP statici.

Convalida del file di configurazione

Dopo aver modificato il file di configurazione, esegui gkectl check-config per verificare che il file sia valido e possa essere utilizzato per l'installazione:

gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

dove:

  • [ADMIN_CLUSTER_KUBECONFIG] è il percorso del file kubeconfig per il tuo cluster di amministrazione.

  • [CONFIG_FILE] è il percorso del file di configurazione del cluster utente.

Se il comando restituisce un messaggio FAILURE, correggi i problemi e convalida di nuovo il file.

Se vuoi saltare le convalide che richiedono più tempo, passa il flag --fast. Per saltare le singole convalide, utilizza i flag --skip-validation-xxx. Per scoprire di più sul comando check-config, consulta Controlli preflight.

Creazione del bilanciatore del carico

Crea e configura la VM per il bilanciatore del carico di Seesaw:

gkectl create loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

dove:

  • [ADMIN_CLUSTER_KUBECONFIG] è il percorso del file kubeconfig per il tuo cluster di amministrazione.

  • [CONFIG_FILE] è il percorso del file di configurazione del cluster utente.

Creazione del cluster utente

Crea il cluster utente:

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

dove:

  • [ADMIN_CLUSTER_KUBECONFIG] è il percorso del file kubeconfig per il tuo cluster di amministrazione.

  • [CONFIG_FILE] è il percorso del file di configurazione del cluster utente.