Muestras de configuración de clústeres

En este documento, se proporcionan muestras de YAML de los parámetros de configuración más comunes de los clústeres de Google Distributed Cloud. Los archivos de configuración del clúster de muestra proporcionan permutaciones de las siguientes características y capacidades:

Cómo usar las muestras

Esta colección de muestras de YAML se diseñó principalmente como una referencia educativa que ilustra cómo se ven varias funciones cuando se configuran de forma correcta. Si deseas usar estas muestras para crear tus propios clústeres, debes realizar cambios. Muchos de los valores que se usan, como los valores de la sección storage, son predeterminados y funcionan para la mayoría de los clústeres. Sin embargo, otros valores, como spec.authentication.oidc.clientID y spec.gkeConnect.projectID, son específicos de tu proyecto y tu entorno.

Familiarízate con la documentación sobre funciones relacionadas antes de intentar usar el contenido YAML que se proporciona en este documento.

Características de cada muestra

En la siguiente tabla, se muestra información de configuración básica de cada muestra:

Muestras
Clústeres independientes
Perfil perimetral básico
  • Nodo único
  • Perfil perimetral
  • No hay grupos de nodos
Perfil perimetral con alta disponibilidad
  • Alta disponibilidad con tres nodos
  • Perfil perimetral
  • Balanceo de cargas de la capa 2 en paquetes
  • No hay grupos de nodos
Clústeres híbridos
Clúster híbrido básico
  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
Clúster híbrido con alta disponibilidad
  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
Clúster híbrido con alta disponibilidad con balanceo de cargas fuera del plano de control
  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes fuera del plano de control
Clústeres de administrador
Clúster de administrador básico
  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
Clúster de administrador con balanceo de cargas manual
  • Sin alta disponibilidad
  • Balanceo de cargas externo y configurado de forma manual
Clúster de administrador con alta disponibilidad
  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
Clústeres de usuarios
Clúster de usuarios básico
  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
Clúster de usuarios con alta disponibilidad y varios grupos de nodos
  • Anulaciones de claves SSH
  • Alta disponibilidad
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
  • Varios grupos de nodos
Clúster de usuarios con alta disponibilidad con OIDC
  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
Clúster de usuarios con alta disponibilidad con balanceo de cargas de LDAP y BGP
  • Alta disponibilidad
  • LDAP
  • Balanceo de cargas en paquetes con BGP

Clústeres independientes

Ten en cuenta las siguientes capacidades de un clúster independiente:

  • Se puede administrar automáticamente
  • Puede ejecutar cargas de trabajo
  • No puede crear ni administrar clústeres de otros clústeres o clústeres de usuario

Los clústeres independientes son adecuados para las instalaciones de clústeres que requieren una huella pequeña o en situaciones en las que deseas ejecutar clústeres en particiones aisladas de red.

Para obtener más información sobre los clústeres independientes, consulta Implementación de clústeres independientes y Crea clústeres independientes.

Perfil perimetral básico

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster independiente:

  • Nodo único
  • Perfil perimetral
  • No hay grupos de nodos
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 perimetral con alta disponibilidad

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster independiente:

  • Alta disponibilidad con tres nodos
  • Perfil perimetral
  • Balanceo de cargas de la capa 2 en paquetes
  • No hay grupos de nodos
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

Clústeres híbridos

Ten en cuenta las siguientes capacidades de un clúster híbrido:

  • Se puede administrar automáticamente
  • Puede ejecutar cargas de trabajo
  • Puede administrar otros clústeres de usuario

Los clústeres híbridos funcionan como clústeres de administrador que pueden ejecutar cargas de trabajo de los usuarios. Al igual que los clústeres de administrador, los clústeres híbridos pueden administrar otros clústeres de usuario. Para obtener más información sobre los clústeres independientes, consulta Implementación de clústeres híbridos y Crea clústeres híbridos.

Clúster híbrido básico

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster híbrido:

  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
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

Clúster híbrido con alta disponibilidad

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster híbrido:

  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
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

Clúster híbrido con alta disponibilidad con balanceo de cargas fuera del plano de control

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster híbrido:

  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes fuera del plano de control
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

Clústeres de administrador

Un clúster de administrador se usa para administrar otros clústeres de usuario. Usa clústeres de administrador si tienes una flota de clústeres en el mismo centro de datos que deseas administrar desde un lugar centralizado y para implementaciones más grandes que necesitan aislamiento entre diferentes equipos o entre cargas de trabajo de desarrollo y producción.

Para obtener más información sobre los clústeres de administrador, consulta Implementación de varios clústeres y Crea clústeres de administrador.

Clúster de administrador básico

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster de administrador:

  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
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

Clúster de administrador con balanceo de cargas manual

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster de administrador:

  • Sin alta disponibilidad
  • Balanceo de cargas externo y configurado de forma manual
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

Clúster de administrador con alta disponibilidad

Ten en cuenta las siguientes funciones y opciones en esta configuración de clúster de administrador:

  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
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

Clústeres de usuarios

Un clúster de usuarios ejecuta tus cargas de trabajo alojadas en contenedores. Los clústeres de usuarios deben contener uno o más nodos trabajadores que ejecutan cargas de trabajo de usuario. Usa clústeres de usuarios si tienes una flota de clústeres en el mismo centro de datos que deseas administrar desde un lugar centralizado. Los clústeres de usuarios también se recomiendan para implementaciones más grandes que necesitan aislamiento entre diferentes equipos o entre cargas de trabajo de desarrollo y producción.

Para obtener más información sobre los clústeres de administrador, consulta Implementación de varios clústeres y Crea clústeres de usuario.

Clúster de usuarios básico

Ten en cuenta las siguientes funciones y opciones en esta configuración del clúster de usuarios:

  • Sin alta disponibilidad
  • Balanceo de cargas de la capa 2 en paquetes
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

Clúster de usuarios con alta disponibilidad y varios grupos de nodos

Ten en cuenta las siguientes funciones y opciones en esta configuración del clúster de usuarios:

  • Anulaciones de claves SSH
  • Alta disponibilidad
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes
  • Varios grupos de nodos
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

Clúster de usuarios con alta disponibilidad con OIDC

Ten en cuenta las siguientes funciones y opciones en esta configuración del clúster de usuarios:

  • Alta disponibilidad
  • OIDC
  • Detrás de un proxy
  • Duplicación de registro
  • Repositorio privado de paquetes
  • Balanceo de cargas de la capa 2 en paquetes del plano de control
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

Clúster de usuarios con alta disponibilidad con balanceo de cargas de LDAP y BGP

Ten en cuenta las siguientes funciones y opciones en esta configuración del clúster de usuarios:

  • Alta disponibilidad
  • LDAP
  • Balanceo de cargas en paquetes 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