In Google Distributed Cloud, i cluster utente eseguono i tuoi carichi di lavoro e, in un'architettura multi-cluster, i cluster utente vengono creati e gestiti da un cluster di amministrazione.
Una volta creato un cluster di amministrazione, chiamando il comando bmctl create config
viene creato un file YAML che puoi modificare per definire il cluster utente. Per applicare la configurazione e creare il cluster utente, utilizza il comando bmctl create cluster
. I controlli preflight sono applicabili ai cluster utente creati con il comando bmctl create cluster
.
Mantenere i carichi di lavoro lontani dal cluster di amministrazione protegge i dati amministrativi sensibili, come le chiavi SSH archiviate nel cluster di amministrazione, dagli utenti che non hanno bisogno di accedere a queste informazioni. Inoltre, mantenere i cluster utente separati l'uno dall'altro offre una buona sicurezza generale per i tuoi carichi di lavoro.
Prerequisiti
- L'ultima versione di
bmctl
viene scaricata (gs://anthos-baremetal-release/bmctl/1.29.100-gke.251/linux-amd64/bmctl
) da Cloud Storage. - Cluster di amministrazione funzionante con accesso al server API del cluster (
controlPlaneVIP
). - I nodi del cluster di amministrazione hanno una connettività di rete a tutti i nodi nel cluster utente di destinazione.
- La workstation che esegue
bmctl
dispone di connettività di rete a tutti i nodi nei cluster utente di destinazione. - La workstation di amministrazione può stabilire una connessione SSH a ciascuno dei nodi del cluster dell'utente.
- L'account di servizio Connect-register è configurato sul cluster di amministrazione per l'utilizzo con Connect.
Abilita SELinux
Se vuoi abilitare SELinux per proteggere i container, devi assicurarti che SELinux sia abilitato in modalità Enforced
su tutte le macchine host. A partire dalla versione 1.9.0 di Google Distributed Cloud o successive, puoi abilitare o disabilitare SELinux prima o dopo la creazione del cluster o gli upgrade del cluster. SELinux è abilitato per impostazione
predefinita su Red Hat Enterprise Linux (RHEL). Se SELinux è disabilitato sui tuoi computer host o se hai dubbi, consulta Protezione dei container tramite SELinux per istruzioni su come attivarlo.
Google Distributed Cloud supporta SELinux solo nei sistemi RHEL.
Crea un file di configurazione del cluster utente
Il file di configurazione per la creazione di un cluster utente è quasi esattamente uguale a quello utilizzato per creare un cluster di amministrazione. L'unica differenza è che rimuovi la sezione di configurazione delle credenziali locali per rendere la configurazione una raccolta valida di risorse Kubernetes. La sezione di configurazione si trova nella parte superiore
del file, nella sezione bmctl configuration variables
. Per esempi di configurazioni di cluster utente, consulta Cluster utente negli esempi di configurazione del cluster.
Per impostazione predefinita, i cluster utente ereditano le credenziali dal cluster di amministrazione che le gestisce. Puoi eseguire l'override di alcune o tutte queste credenziali in modo selettivo.
Crea un file di configurazione del cluster utente con il comando
bmctl create config
:bmctl create config -c USER_CLUSTER_NAME
Ad esempio, invia il codice seguente per creare un file di configurazione per un cluster utente denominato
user1
:bmctl create config -c user1
Il file viene scritto in
bmctl-workspace/user1/user1.yaml
. Il percorso generico del file èbmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml
.Modifica il file di configurazione con le seguenti modifiche:
Rimuovi dalla configurazione i percorsi dei file delle credenziali locali:
...
gcrKeyPath: (path to GCR service account key)sshPrivateKeyPath: (path to SSH private key, used for node access)gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)...Modifica la configurazione per specificare un tipo di cluster
user
anzichéadmin
:... spec: # Cluster type. This can be: # 1) admin: to create an admin cluster. This can later be used to create # user clusters. # 2) user: to create a user cluster. Requires an existing admin cluster. # 3) hybrid: to create a hybrid cluster that runs admin cluster # components and user workloads. # 4) standalone: to create a cluster that manages itself, runs user # workloads, but does not manage other clusters. type: user ...
Registra i tuoi cluster in un parco risorse specificando il tuo ID progetto nel campo
gkeConnect.projectID
. Questo progetto è indicato come progetto host del parco risorse.... gkeConnect: projectID: my-project-123 ...
- Facoltativamente, puoi aggiungere
gkeConnect.location
alle specifiche del cluster per specificare la regione Google Cloud in cui vengono eseguiti il parco risorse e i servizi Connect. Questo abbonamento a livello di regione limita il traffico dei servizi del parco risorse alla tua regione. Se includigkeConnect.location
nella specifica del cluster, la regione specificata deve corrispondere a quella configurata inclusterOperations.location
. Se le regioni non corrispondono, la creazione del cluster ha esito negativo.
- Facoltativamente, puoi aggiungere
Se l'API GKE On-Prem è abilitata nel tuo progetto Google Cloud, tutti i cluster nel progetto vengono registrati automaticamente nell'API GKE On-Prem nella regione configurata in
clusterOperations.location
.Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, assicurati di eseguire i passaggi descritti in Prima di iniziare per attivare e utilizzare l'API GKE On-Prem nel progetto.
Se non vuoi registrare il cluster nell'API GKE On-Prem, includi questa sezione e imposta
gkeOnPremAPI.enabled
sufalse
. Se non vuoi registrare alcun cluster nel progetto, disabilitagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per le istruzioni, vedi Disabilitare i servizi.
Specifica l'indirizzo IP del nodo del piano di controllo.
... # Sample control plane config controlPlane: nodePoolSpec: nodes: - address: 10.200.0.20 ...
Assicurati che le specifiche dei cluster di amministrazione e utente per i VIP e i pool di indirizzi del bilanciatore del carico siano complementari e non si sovrappongano ai cluster esistenti. L'esempio seguente mostra una coppia di esempio di configurazioni di cluster di amministrazione e utente, che specificano il bilanciamento del carico e i pool di indirizzi:
... # Sample admin cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.49 ingressVIP: 10.200.0.50 addressPools: - name: pool1 addresses: - 10.200.0.50-10.200.0.70 ... ... # Sample user cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.71 ingressVIP: 10.200.0.72 addressPools: - name: pool1 addresses: - 10.200.0.72-10.200.0.90 ...
Il resto dei file di configurazione del cluster utente corrisponde alla configurazione del cluster di amministrazione.
Specifica la densità dei pod dei nodi del cluster:
... # NodeConfig specifies the configuration that applies to all nodes in the cluster. nodeConfig: # podDensity specifies the pod density configuration. podDensity: # maxPodsPerNode specifies at most how many pods can be run on a single node. maxPodsPerNode: 110 ...
Per i cluster utente, i valori consentiti per
maxPodsPerNode
sono32-250
. Il valore predefinito se non specificato è110
. Una volta creato il cluster, questo valore non può essere aggiornato.La densità dei pod è limitata anche dalle risorse IP disponibili del cluster. Per i dettagli, consulta Networking dei pod.
Crea il cluster utente
Esegui il comando bmctl
per applicare la configurazione del cluster utente e creare il cluster:
bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Sostituisci quanto segue:
USER_CLUSTER_NAME
: il nome del cluster creato nella sezione precedente.ADMIN_KUBECONFIG
: il percorso del file kubeconfig del cluster di amministrazione.
Ad esempio, per un cluster utente denominato user1
e un file kubeconfig
del cluster di amministrazione con il percorso kubeconfig bmctl-workspace/admin/admin-kubeconfig
, il comando è:
bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig
Esempi di configurazioni di cluster utente
Ad esempio sulle configurazioni di cluster utente, consulta Cluster utente negli esempi di configurazione dei cluster.