Amostras de configuração de cluster

Neste documento, fornecemos amostras de YAML das configurações mais comuns do cluster do Google Distributed Cloud. Os arquivos de configuração do cluster de amostra fornecem permutações dos seguintes recursos:

Como usar as amostras

Este conjunto de amostras YAML é usado principalmente como uma referência educacional que ilustra como vários recursos são exibidos quando configurados corretamente. Se você quiser usar essas amostras para criar seus próprios clusters, faça alterações. Muitos dos valores usados, como os da seção storage, são padrões e funcionam para a maioria dos clusters. No entanto, outros valores, como spec.authentication.oidc.clientID e spec.gkeConnect.projectID, são específicos para o projeto e o ambiente.

Familiarize-se com a documentação de recursos relacionados antes de tentar usar qualquer conteúdo YAML fornecido neste documento.

Recursos em cada amostra

A tabela a seguir lista as informações básicas de configuração para cada amostra:

Amostras
Clusters independentes
Perfil básico do Edge
  • Node único
  • Perfil do Edge
  • Nenhum pool de nós
Perfil de borda de alta disponibilidade
  • Alta disponibilidade com três nós
  • Perfil do Edge
  • Balanceamento de carga em pacote de camada 2
  • Nenhum pool de nós
Clusters híbridos
Cluster híbrido básico
  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
Cluster híbrido de alta disponibilidade
  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
Cluster híbrido de alta disponibilidade com balanceamento de carga fora do plano de controle
  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2 fora do plano de controle
Clusters de administrador
Cluster de administrador básico
  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
Cluster de administrador com balanceamento de carga manual
  • Disponibilidade não alta
  • Balanceamento de carga externo e configurado manualmente
Cluster de administrador de alta disponibilidade
  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
Clusters de usuários
Cluster de usuário básico
  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
Cluster de usuários de alta disponibilidade com vários pools de nós
  • Modificações de chaves SSH
  • Alta disponibilidade
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
  • Vários pools de nós
Cluster de usuário de alta disponibilidade com o OIDC
  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
Cluster de usuários de alta disponibilidade com balanceamento de carga LDAP e BGP
  • Alta disponibilidade
  • LDAP
  • Balanceamento de carga em pacote com o BGP

Clusters independentes

Observe os recursos a seguir de um cluster independente:

  • Ele pode se administrar
  • Pode executar cargas de trabalho
  • Ele não pode criar ou gerenciar outros clusters/usuários

Os clusters autônomos são adequados para instalações de clusters que exigem um tamanho pequeno de espaço ou em situações em que você quer executar clusters em partições isoladas de rede.

Para mais informações sobre clusters independentes, consulte Implantação de cluster independente e Criar clusters independentes.

Perfil básico do Edge

Observe os recursos e as opções a seguir nessa configuração de cluster independente:

  • Node único
  • Perfil do Edge
  • Nenhum pool de nós
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

Perfil de borda de alta disponibilidade

Observe os recursos e as opções a seguir nessa configuração de cluster independente:

  • Alta disponibilidade com três nós
  • Perfil do Edge
  • Balanceamento de carga em pacote de camada 2
  • Nenhum pool de nós
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

Clusters híbridos

Observe os recursos a seguir de um cluster híbrido:

  • Ele pode se administrar
  • Pode executar cargas de trabalho
  • Pode gerenciar outros clusters de usuário

Os clusters híbridos funcionam como clusters de administrador que podem executar cargas de trabalho de usuários. Assim como os clusters de administrador, os clusters híbridos podem gerenciar outros clusters de usuário. Para mais informações sobre clusters independentes, consulte Implantação de clusters híbridos e Criar clusters híbridos.

Cluster híbrido básico

Observe os seguintes recursos e opções nesta configuração de cluster híbrido:

  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
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 híbrido de alta disponibilidade

Observe os seguintes recursos e opções nesta configuração de cluster híbrido:

  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
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 híbrido de alta disponibilidade com balanceamento de carga fora do plano de controle

Observe os seguintes recursos e opções nesta configuração de cluster híbrido:

  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2 fora do plano de controle
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

Clusters de administrador

Um cluster de administrador é usado para gerenciar outros clusters de usuário. Use clusters de administrador se tiver uma frota de clusters no mesmo data center que você quer gerenciar de um local centralizado e para implantações maiores que precisam de isolamento entre diferentes equipes ou entre cargas de trabalho de desenvolvimento e produção de dados.

Para mais informações sobre clusters de administrador, consulte Implantação de vários clusters e Criar clusters de administrador.

Cluster de administrador básico

Observe os seguintes recursos e opções nesta configuração de cluster de administrador:

  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
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 de administrador com balanceamento de carga manual

Observe os seguintes recursos e opções nesta configuração de cluster de administrador:

  • Disponibilidade não alta
  • Balanceamento de carga externo e configurado 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 de administrador de alta disponibilidade

Observe os seguintes recursos e opções nesta configuração de cluster de administrador:

  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
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

Clusters de usuários

Um cluster de usuário executa as cargas de trabalho em contêiner. Os clusters de usuário precisam conter um ou mais nós de trabalho que executam cargas de trabalho do usuário. Use clusters de usuário se tiver uma frota de clusters no mesmo data center que você quer gerenciar de um local centralizado. Os clusters de usuário também são recomendados para implantações maiores que precisam de isolamento entre diferentes equipes ou entre cargas de trabalho de desenvolvimento e produção.

Para mais informações sobre clusters de administrador, consulte Implantação de vários clusters e Criar clusters de usuários.

Cluster de usuário básico

Observe os seguintes recursos e opções nesta configuração de cluster de usuário:

  • Disponibilidade não alta
  • Balanceamento de carga em pacote de camada 2
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 de usuários de alta disponibilidade com vários pools de nós

Observe os seguintes recursos e opções nesta configuração de cluster de usuário:

  • Modificações de chaves SSH
  • Alta disponibilidade
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2
  • Vários pools de nós
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 de usuário de alta disponibilidade com o OIDC

Observe os seguintes recursos e opções nesta configuração de cluster de usuário:

  • Alta disponibilidade
  • OIDC
  • Atrás de um proxy
  • Espelho do registro
  • Repositório de pacotes particular
  • Balanceamento de carga em pacote de camada 2 fora do plano de controle
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 de usuários de alta disponibilidade com balanceamento de carga LDAP e BGP

Observe os seguintes recursos e opções nesta configuração de cluster de usuário:

  • Alta disponibilidade
  • LDAP
  • Balanceamento de carga em pacote com o 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