Esempi di configurazione dei cluster

Questo documento fornisce esempi YAML delle configurazioni di cluster Google Distributed Cloud più comuni. I file di configurazione del cluster di esempio forniscono modifiche delle seguenti caratteristiche e funzionalità:

Come utilizzare gli esempi

Questa raccolta di esempi YAML è principalmente un riferimento didattico che illustra come le varie funzionalità appaiono quando sono configurate correttamente. Se vuoi utilizzare questi esempi per creare i tuoi cluster, devi apportare le modifiche. Molti dei valori utilizzati, ad esempio quelli per la sezione storage, sono predefiniti e funzionano per la maggior parte dei cluster. Tuttavia, altri valori, ad esempio spec.authentication.oidc.clientID e spec.gkeConnect.projectID, sono specifici del progetto e dell'ambiente.

Acquisisci familiarità con la documentazione delle funzionalità correlata prima di tentare di utilizzare qualsiasi contenuto YAML fornito in questo documento.

Caratteristiche in ogni campione

Nella tabella seguente sono elencate le informazioni di configurazione di base per ciascun campione:

Esempi
Cluster autonomi
Profilo perimetrale di base
  • Nodo singolo
  • Profilo perimetrale
  • Nessun pool di nodi
Profilo perimetrale ad alta disponibilità
  • Disponibilità elevata con tre nodi
  • Profilo perimetrale
  • Bilanciamento del carico di livello 2 in bundle
  • Nessun pool di nodi
Cluster ibridi
Cluster ibrido di base
  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
Cluster ibrido ad alta disponibilità
  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
Cluster ibrido ad alta disponibilità con bilanciamento del carico al di fuori del piano di controllo
  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle al di fuori del piano di controllo
Cluster di amministrazione
Cluster di amministrazione di base
  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
Cluster di amministrazione con bilanciamento del carico manuale
  • Disponibilità non elevata
  • Bilanciamento del carico esterno configurato manualmente
Cluster di amministrazione ad alta disponibilità
  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
Cluster utenti
Cluster utente di base
  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
Cluster utente ad alta disponibilità con più pool di nodi
  • Override delle chiavi SSH
  • Alta disponibilità
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
  • Più pool di nodi
Cluster utente ad alta disponibilità con OIDC
  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
Cluster utente ad alta disponibilità con bilanciamento del carico LDAP e BGP
  • Alta disponibilità
  • LDAP
  • Bilanciamento del carico in bundle con BGP

Cluster autonomi

Tieni presente le seguenti funzionalità di un cluster autonomo:

  • Può amministrare autonomamente
  • Può eseguire carichi di lavoro
  • Non può creare o gestire altri cluster/utente

I cluster autonomi sono adatti per installazioni di cluster che richiedono un'impronta ridotta o in situazioni in cui vuoi eseguire cluster in partizioni isolate dalla rete.

Per ulteriori informazioni sui cluster autonomi, consulta Deployment di cluster autonomi e Creare cluster autonomi.

Profilo perimetrale di base

Tieni presente le seguenti funzionalità e opzioni di questa configurazione del cluster autonomo:

  • Nodo singolo
  • Profilo perimetrale
  • Nessun pool di nodi
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-edge-basic
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: edge-basic
 
namespace: cluster-edge-basic
spec:
  type: standalone
 
profile: edge

 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71
     
ingressVIP: 10.200.0.72
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.72-10.200.0.90
 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 110

Profilo perimetrale ad alta disponibilità

Tieni presente le seguenti funzionalità e opzioni di questa configurazione del cluster autonomo:

  • Disponibilità elevata con tre nodi
  • Profilo perimetrale
  • Bilanciamento del carico di livello 2 in bundle
  • Nessun pool di nodi
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-edge-ha
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: edge-ha
 
namespace: cluster-edge-ha
spec:
  type: standalone
 
profile: edge

 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2
     
- address: 10.200.0.3
     
- address: 10.200.0.4

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71
     
ingressVIP: 10.200.0.72
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.72-10.200.0.90

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 110

Cluster ibridi

Tieni presente le seguenti funzionalità di un cluster ibrido:

  • Può amministrare autonomamente
  • Può eseguire carichi di lavoro
  • Può gestire altri cluster utente

I cluster ibridi funzionano come i cluster di amministrazione che possono eseguire carichi di lavoro degli utenti. Come i cluster di amministrazione, i cluster ibridi possono gestire altri cluster utente. Per ulteriori informazioni sui cluster autonomi, consulta Deployment di cluster ibridi e Creare cluster ibridi.

Cluster ibrido di base

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster ibrido:

  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-hybrid-basic
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: hybrid-basic
 
namespace: cluster-hybrid-basic
spec:
  type: hybrid
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71
     
ingressVIP: 10.200.0.72
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.72-10.200.0.90

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-hybrid-basic
spec:
  clusterName: hybrid-basic
 
nodes:
  - address:  10.200.0.10
 
- address:  10.200.0.11
 
- address:  10.200.0.12

Cluster ibrido ad alta disponibilità

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster ibrido:

  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
registryMirrors:
  - endpoint: https://10.194.2.13:5007/v2/test-namespace
   
caCertPath: /root/cert.pem
   
pullCredentialConfigPath: /root/dockerconfig.json

sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-hybrid-ha
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: hybrid-ha
 
namespace: cluster-hybrid-ha
spec:
  type: hybrid
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2
     
- address: 10.200.0.3
     
- address: 10.200.0.4

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
proxy:
    url: http://10.194.2.140:3128
   
noProxy:
    - 127.0.0.1
   
- localhost

 
osEnvironmentConfig:
    addPackageRepo: false

 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71
     
ingressVIP: 10.200.0.72
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.72-10.200.0.90

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
authentication:
    oidc:
      issuerURL: "https://infra.example.dev/adfs"
     
clientID: "be654652-2c45-49ff-9d7c-3663cee9ba51"
     
clientSecret: "clientSecret"
     
kubectlRedirectURL: "http://localhost:44320/callback"
     
username: "unique_name"
     
usernamePrefix: "oidc:"
     
group: "groups"
     
groupPrefix: "oidc:"
     
scopes: "allatclaims"
     
extraParams: "resource=token-groups-claim"
     
deployCloudConsoleProxy: true
     
certificateAuthorityData: base64EncodedCACertificate
     
proxy: http://10.194.2.140:3128

 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-hybrid-ha
spec:
  clusterName: hybrid-ha
 
nodes:
  - address:  10.200.0.10
 
- address:  10.200.0.11
 
- address:  10.200.0.12

Cluster ibrido ad alta disponibilità con bilanciamento del carico al di fuori del piano di controllo

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster ibrido:

  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle al di fuori del piano di controllo
registryMirrors:
  - endpoint: https://10.194.2.13:5007/v2/test-namespace
   
caCertPath: /root/cert.pem
   
pullCredentialConfigPath: /root/dockerconfig.json

sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-hybrid-ha-lb
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: hybrid-ha-lb
 
namespace: cluster-hybrid-ha-lb
spec:
  type: hybrid
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2
     
- address: 10.200.0.3
     
- address: 10.200.0.4

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
proxy:
    url: http://10.194.2.140:3128
   
noProxy:
    - 127.0.0.1
   
- localhost

 
osEnvironmentConfig:
    addPackageRepo: false

 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71
     
ingressVIP: 10.200.0.72
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.72-10.200.0.90
   
nodePoolSpec:
      nodes:
      - address: 10.200.0.5
     
- address: 10.200.0.6
     
- address: 10.200.0.7

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
authentication:
    oidc:
      issuerURL: "https://infra.example.dev/adfs"
     
clientID: "be654652-2c45-49ff-9d7c-3663cee9ba51"
     
clientSecret: "clientSecret"
     
kubectlRedirectURL: "http://localhost:44320/callback"
     
username: "unique_name"
     
usernamePrefix: "oidc:"
     
group: "groups"
     
groupPrefix: "oidc:"
     
scopes: "allatclaims"
     
extraParams: "resource=token-groups-claim"
     
deployCloudConsoleProxy: true
     
certificateAuthorityData: base64EncodedCACertificate
     
proxy: http://10.194.2.140:3128

 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-hybrid-ha-lb
spec:
  clusterName: hybrid-ha-lb
 
nodes:
  - address:  10.200.0.10
 
- address:  10.200.0.11
 
- address:  10.200.0.12

Cluster di amministrazione

Un cluster di amministrazione viene utilizzato per gestire altri cluster utente. Utilizza i cluster di amministrazione se disponi di un parco cluster nello stesso data center che vuoi gestire da una posizione centralizzata e per deployment più grandi che richiedono l'isolamento tra team diversi o tra carichi di lavoro di sviluppo e produzione.

Per ulteriori informazioni sui cluster di amministrazione, vedi Deployment multi-cluster e Creare cluster di amministrazione.

Cluster di amministrazione di base

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster di amministrazione:

  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-admin-basic
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: admin-basic
 
namespace: cluster-admin-basic
spec:
  type: admin
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250

Cluster di amministrazione con bilanciamento del carico manuale

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster di amministrazione:

  • Disponibilità non elevata
  • Bilanciamento del carico esterno configurato manualmente
gcrKeyPath: baremetal/gcr.json
sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-admin-manlb
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: admin-manlb
 
namespace: cluster-admin-manlb
spec:
  type: admin
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: manual
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250

Cluster di amministrazione ad alta disponibilità

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster di amministrazione:

  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
registryMirrors:
  - endpoint: https://10.194.2.13:5007/v2/test-namespace
   
caCertPath: /root/cert.pem
   
pullCredentialConfigPath: /root/dockerconfig.json

sshPrivateKeyPath: .ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: baremetal/connect-agent.json
gkeConnectRegisterServiceAccountKeyPath: baremetal/connect-register.json
cloudOperationsServiceAccountKeyPath: baremetal/cloud-ops.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-admin-ha
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: admin-ha
 
namespace: cluster-admin-ha
spec:
  type: admin
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.2
     
- address: 10.200.0.3
     
- address: 10.200.0.4

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
proxy:
    url: http://10.194.2.140:3128
   
noProxy:
    - 127.0.0.1
   
- localhost

 
osEnvironmentConfig:
    addPackageRepo: false

 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.71

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
authentication:
    oidc:
      issuerURL: "https://infra.example.dev/adfs"
     
clientID: "be654652-2c45-49ff-9d7c-3663cee9ba51"
     
clientSecret: "clientSecret"
     
kubectlRedirectURL: "http://localhost:44320/callback"
     
username: "unique_name"
     
usernamePrefix: "oidc:"
     
group: "groups"
     
groupPrefix: "oidc:"
     
scopes: "allatclaims"
     
extraParams: "resource=token-groups-claim"
     
deployCloudConsoleProxy: true
     
certificateAuthorityData: base64EncodedCACertificate
     
proxy: http://10.194.2.140:3128

 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250

Cluster utenti

Un cluster utente esegue i carichi di lavoro containerizzati. I cluster utente devono contenere uno o più nodi worker che eseguono i carichi di lavoro utente. Utilizza i cluster utente se disponi di un insieme di cluster nello stesso data center che vuoi gestire da una posizione centralizzata. I cluster utente sono consigliati anche per deployment di grandi dimensioni che devono essere isolati tra team diversi o tra carichi di lavoro di sviluppo e produzione.

Per ulteriori informazioni sui cluster di amministrazione, consulta Deployment multi-cluster e Creare cluster utente.

Cluster utente di base

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster utente:

  • Disponibilità non elevata
  • Bilanciamento del carico di livello 2 in bundle
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user-basic
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user-basic
 
namespace: cluster-user-basic
spec:
  type: user
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.20

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.91
     
ingressVIP: 10.200.0.92
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.92-10.200.0.100

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-user-basic
spec:
  clusterName: user-basic
 
nodes:
  - address:  10.200.0.30
 
- address:  10.200.0.31
 
- address:  10.200.0.32

Cluster utente ad alta disponibilità con più pool di nodi

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster utente:

  • Override delle chiavi SSH
  • Alta disponibilità
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle
  • Più pool di nodi
registryMirrors:
  - endpoint: https://10.194.2.13:5007/v2/test-namespace
   
caCertPath: /root/cert.pem
   
pullCredentialConfigPath: /root/dockerconfig.json

---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user-ha-np
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user-ha-np
 
namespace: cluster-user-ha-np
spec:
  type: user
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.20
     
- address: 10.200.0.21
     
- address: 10.200.0.22

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
proxy:
    url: http://10.194.2.140:3128
   
noProxy:
    - 127.0.0.1
   
- localhost

 
osEnvironmentConfig:
    addPackageRepo: false

 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.91
     
ingressVIP: 10.200.0.92
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.92-10.200.0.100

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
 
credential:
    sshKeySecret:
      name: ssh-key
     
namespace: cluster-user-ha-np

---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-user-ha-np
spec:
  clusterName: user-ha-np
 
nodes:
  - address:  10.200.0.30
 
- address:  10.200.0.31
 
- address:  10.200.0.32
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np2
 
namespace: cluster-user-ha-np
spec:
  clusterName: user-ha-np
 
nodes:
  - address:  10.200.0.33
 
- address:  10.200.0.34
 
- address:  10.200.0.35

Cluster utente ad alta disponibilità con OIDC

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster utente:

  • Alta disponibilità
  • OIDC
  • Dietro un proxy
  • Mirroring del registro
  • Repository di pacchetti privato
  • Bilanciamento del carico di livello 2 in bundle dal piano di controllo
registryMirrors:
  - endpoint: https://10.194.2.13:5007/v2/test-namespace
   
caCertPath: /root/cert.pem
   
pullCredentialConfigPath: /root/dockerconfig.json

---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user-ha-oidc
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user-ha-oidc
 
namespace: cluster-user-ha-oidc
spec:
  type: user
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.20
     
- address: 10.200.0.21
     
- address: 10.200.0.22

 
clusterNetwork:
    pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
proxy:
    url: http://10.194.2.140:3128
   
noProxy:
    - 127.0.0.1
   
- localhost

 
osEnvironmentConfig:
    addPackageRepo: false

 
loadBalancer:
    mode: bundled
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.91
     
ingressVIP: 10.200.0.92
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.92-10.200.0.100
   
nodePoolSpec:
      nodes:
      - address: 10.200.0.25
     
- address: 10.200.0.26
     
- address: 10.200.0.27

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
authentication:
    oidc:
      issuerURL: "https://infra.example.dev/adfs"
     
clientID: "be654652-2c45-49ff-9d7c-3663cee9ba51"
     
clientSecret: "clientSecret"
     
kubectlRedirectURL: "http://localhost:44320/callback"
     
username: "unique_name"
     
usernamePrefix: "oidc:"
     
group: "groups"
     
groupPrefix: "oidc:"
     
scopes: "allatclaims"
     
extraParams: "resource=token-groups-claim"
     
deployCloudConsoleProxy: true
     
certificateAuthorityData: base64EncodedCACertificate
     
proxy: http://10.194.2.140:3128

 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-user-ha-oidc
spec:
  clusterName: user-ha-oidc
 
nodes:
  - address:  10.200.0.30
 
- address:  10.200.0.31
 
- address:  10.200.0.32

Cluster utente ad alta disponibilità con bilanciamento del carico LDAP e BGP

Tieni presente le seguenti funzionalità e opzioni nella configurazione di questo cluster utente:

  • Alta disponibilità
  • LDAP
  • Bilanciamento del carico in bundle con BGP
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user-ha-ldap
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user-ha-ldap
 
namespace: cluster-user-ha-ldap
spec:
  type: user
 
profile: default
 
anthosBareMetalVersion: 1.29.100-gke.251
 
gkeConnect:
    projectID: project-fleet
 
controlPlane:
    nodePoolSpec:
      nodes:
      - address: 10.200.0.20
     
- address: 10.200.0.21
     
- address: 10.200.0.22

 
clusterNetwork:
    advancedNetworking: true

   
pods:
      cidrBlocks:
      - 192.168.0.0/16
   
services:
      cidrBlocks:
      - 10.96.0.0/20
 
loadBalancer:
    mode: bundled
   
type: bgp
   
localASN: 65001
   
bgpPeers:
    - ip: 10.8.0.10
     
asn: 65002
   
- ip: 10.8.0.11
     
asn: 65002
   
ports:
      controlPlaneLBPort: 443
   
vips:
      controlPlaneVIP: 10.200.0.91
     
ingressVIP: 10.200.0.92
   
addressPools:
    - name: pool1
     
addresses:
      - 10.200.0.92-10.200.0.100

 
clusterOperations:
    projectID: project-fleet
   
location: us-central1
 
storage:
    lvpNodeMounts:
      path: /mnt/localpv-disk
     
storageClassName: local-disks
   
lvpShare:
      path: /mnt/localpv-share
     
storageClassName: local-shared
     
numPVUnderSharedPath: 5
 
nodeConfig:
    podDensity:
      maxPodsPerNode: 250
 
authentication:
  - name: ldap
   
ldap:
      connectionType: ldaps
     
group:
        baseDN: ou=Groups,dc=onpremidp,dc=example,dc=net
       
filter: (objectClass=*)
       
identifierAttribute: dn
     
host: ldap.google.com:636
     
user:
        baseDN: ou=Users,dc=onpremidp,dc=example,dc=net
       
filter: (objectClass=*)
       
identifierAttribute: uid
       
loginAttribute: uid
     
serviceAccountSecret:
        name: google-ldap-client-secret
       
namespace: anthos-identity-service
       
type: tls

---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
  name: np1
 
namespace: cluster-user-ha-ldap
spec:
  clusterName: user-ha-ldap
 
nodes:
  - address:  10.200.0.30
 
- address:  10.200.0.31
 
- address:  10.200.0.32
---
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
  name: default
 
namespace: cluster-user-ha-ldap
spec:
  floatingIPs:
  - 10.0.1.100
 
- 10.0.2.100