En esta página se muestra cómo crear un clúster de administrador para usarlo en los dominios de topología de Google Distributed Cloud. El clúster de administrador gestiona los clústeres de usuarios que ejecutan tus cargas de trabajo. Para usar dominios de topología, se necesita la versión 1.31 o una posterior de Google Distributed Cloud.
Para configurar un dominio de topología, debes habilitar el clúster avanzado. Ten en cuenta las siguientes limitaciones de la vista previa de clústeres avanzados:
- Solo puedes habilitar clústeres avanzados al crear clústeres 1.31 nuevos.
- Una vez que se haya habilitado el clúster avanzado, no podrás actualizarlo a la versión 1.32. Habilita el clúster avanzado solo en un entorno de prueba.
Esta página está dirigida a administradores, arquitectos y operadores que configuran, monitorizan y gestionan la infraestructura tecnológica. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.
Para obtener más información sobre el clúster de administrador, consulta la descripción general de la instalación.
Descripción general del procedimiento
Estos son los pasos principales para crear un clúster de administradores:
- Rellena el archivo de configuración de administrador
- Especifica los detalles del nuevo clúster de administrador completando un archivo de configuración de clúster de administrador.
- Rellena el archivo de configuración de tu infraestructura de vSphere
- Especifica los detalles sobre los dominios de tu topología en un archivo de configuración de infraestructura de vSphere.
- Rellena el archivo de bloque de IP
- Especifica las direcciones IP de la pasarela, la máscara de red y los nodos del plano de control en un archivo de bloque de IP.
- Obtener imágenes de SO
- Descarga el paquete normal de Google Distributed Cloud. A continuación, ejecuta
gkectl prepare
, que importa las imágenes del SO a vSphere e inserta las imágenes de contenedor en el registro privado, si procede.
- Crea un clúster de administrador.
- Usa
gkectl
para crear un clúster de administrador tal como se especifica en los archivos de configuración completados. Cuando Google Distributed Cloud crea un clúster de administrador, implementa un clúster de Kubernetes en Docker (kind) para alojar temporalmente los controladores de Kubernetes necesarios para crear el clúster de administrador. Este clúster transitorio se denomina clúster de arranque. El administrador encargado crea y actualiza los clústeres de usuarios sin usar un clúster de arranque.
- Comprueba que tu clúster de administrador esté en funcionamiento.
- Usa
kubectl
para ver los nodos del clúster.
Al final de este procedimiento, tendrás un clúster de administrador en funcionamiento que podrás usar para crear y gestionar clústeres de usuarios en dominios de topología.
Antes de empezar
Asegúrate de haber configurado tu estación de trabajo de administrador y de poder iniciar sesión en ella tal como se describe en el artículo Crear una estación de trabajo de administrador. La estación de trabajo de administrador tiene las herramientas que necesitas para crear tu clúster de administrador. Sigue todos los pasos de este documento en tu estación de trabajo de administrador.
Consulta el documento de planificación de direcciones IP. Asegúrate de que tienes suficientes direcciones IP disponibles para los tres nodos del plano de control y una IP virtual del plano de control.
Configura el balanceador de carga para el balanceo de carga manual. Debes configurar el balanceador de carga antes de crear el clúster de administrador.
Consulta la sección
privateRegistry
y decide si quieres usar un registro público o privado para los componentes de Google Distributed Cloud.Consulta el campo osImageType y decide qué tipo de sistema operativo quieres ejecutar en los nodos de tu clúster de administrador.
Si tu organización requiere que el tráfico saliente pase por un servidor proxy, asegúrate de incluir en la lista de permitidos las APIs necesarias y la dirección de Artifact Registry.
Reúna la información que necesita para acceder a cada instancia de vCenter Server. Necesitará esta información para rellenar la sección
Secret
y la secciónVSphereInfraConfig.credentials.vCenters
del archivo de configuración de la infraestructura de vSphere. Consulta la siguiente información para saber cómo obtenerla:
Rellena el archivo de configuración del clúster de administrador
Si has usado gkeadm
para crear tu estación de trabajo de administrador, se habrá generado un archivo de configuración llamado admin-cluster.yaml
.
Si no has usado gkeadm
para crear tu estación de trabajo de administrador, genera
admin-cluster.yaml
ejecutando este comando en tu estación de trabajo de administrador:
gkectl create-config admin
Este archivo de configuración se usa para crear el clúster de administrador.
Familiarízate con el archivo de configuración consultando el documento Archivo de configuración de clúster de administradores. Te recomendamos que mantengas este documento abierto en otra pestaña o ventana, ya que lo consultarás cuando completes los pasos siguientes.
name
Si quieres especificar un nombre para tu clúster de administrador, rellena el campo name
.
bundlePath
El paquete es un archivo comprimido que contiene componentes de clúster. Se incluye con la estación de trabajo de administrador. Este campo ya está rellenado.
enableAdvancedCluster
Asigna el valor true
a enableAdvancedCluster
. Esto habilita los clústeres avanzados, que son necesarios para configurar dominios de topología.
infraConfigFilePath
Añade la ruta completa al archivo de configuración de la infraestructura de vSphere en el campo infraConfigFilePath
.
vCenter
Elimina toda esta sección. En su lugar, debe configurar la información de vCenter Server en el archivo de configuración de la infraestructura de vSphere.
network
Elimina lo siguiente del archivo de configuración:
- Toda la sección
network.hostConfig
. Esta información se configura en el archivo de configuración de la infraestructura de vSphere por dominio de topología. - El campo
network.vCenter.networkName
. Este campo se configura en el archivo de configuración de la infraestructura de vSphere por dominio de topología. - Toda la sección
network.controlPlaneIPBlock
. Las direcciones IP de la pasarela, la máscara de red y los nodos del plano de control se configuran en un archivo de bloque de IPs.
- Toda la sección
Asigna a
network.ipMode.ipBlockFilePath
la ruta al archivo de bloque de IP.Asigna el valor
static
anetwork.ipMode.type
.Los campos network.podCIDR y network.serviceCIDR tienen valores predefinidos que puedes dejar sin modificar, a menos que entren en conflicto con direcciones que ya se estén usando en tu red. Kubernetes usa estos intervalos para asignar direcciones IP a los pods y servicios de tu clúster.
loadBalancer
Asigna el valor
"ManualLB"
aloadBalancer.kind
y elimina la secciónmanualLB
.Reserva una dirección IP virtual para el servidor de la API de Kubernetes de tu clúster de administrador. Proporciona tu VIP como valor de
loadBalancer.vips.controlPlaneVIP
Para obtener más información, consulta VIPs in the admin cluster subnet (VIPs en la subred del clúster de administración).
antiAffinityGroups
Asigna el valor false
a antiAffinityGroups.enabled
.
Las reglas de antiafinidad de Distributed Resource Scheduler (DRS) no se admiten con dominios de topología.
adminMaster
Si quieres especificar la CPU y la memoria de los nodos del plano de control del clúster de administrador, rellena los campos
cpus
ymemoryMB
de la secciónadminMaster
.Los clústeres de administrador deben tener tres nodos del plano de control. En el campo
replicas
de la secciónadminMaster
, introduzca el valor3
.Si quieres especificar un dominio de topología concreto para que lo usen los nodos del plano de control, añade el nombre del dominio de topología al campo
adminMaster.topologyDomains
. Si no especificas ningún nombre aquí, debes definirlo envSphereInfraConfig.defaultTopologyDomain
en el archivo de configuración de la infraestructura de vSphere.
proxy
Si la red que tendrá los nodos de tu clúster de administrador está detrás de un servidor proxy, rellena la sección proxy
.
privateRegistry
Decide dónde quieres conservar las imágenes de contenedor de los componentes de Google Distributed Cloud. Las opciones disponibles son:
Artifact Registry
Tu propio registro de Docker privado.
Si quieres usar tu propio registro privado, rellena la sección
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud usa tu cuenta de servicio de acceso a componentes para descargar componentes de clúster de Artifact Registry. Este campo contiene la ruta de un archivo de clave JSON de tu cuenta de servicio de acceso a componentes.
Este campo ya está rellenado.
gkeConnect
Registre su clúster de administrador
en una flota Google Cloud rellenando la sección
gkeConnect
. El ID de gkeConnect.projectID
debe ser el mismo que el ID definido en stackdriver.projectID
y cloudAuditLogging.projectID
. Si los IDs de proyecto no son los mismos, no se podrá crear el clúster.
También puedes especificar una región en la que se ejecuten la flota y los servicios de Connect en gkeConnect.location
. Si no incluyes este campo, el clúster usará las instancias globales de estos servicios.
Si incluye gkeConnect.location
, la región que especifique debe ser la misma que la configurada en cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
y gkeOnPremAPI.location
. Si las regiones no son las mismas, no se podrá crear el clúster.
gkeOnPremAPI
En esta sección se describe cómo se registran los clústeres en la API de GKE On-Prem.
La herramienta de línea de comandos gkectl
es la única herramienta de gestión del ciclo de vida de clústeres disponible para clústeres que usan dominios de topología. Aunque la consola, la CLI de Google Cloud y Terraform no son compatibles con los clústeres que usan dominios de topología, puedes registrar el clúster en la API de GKE On-Prem cuando se cree. Google Cloud
Si la API de GKE On-Prem está habilitada en tu Google Cloud proyecto, todos los clústeres
del proyecto se registrarán automáticamente en la API de GKE On-Prem en la región
configurada en stackdriver.clusterLocation
. La región gkeOnPremAPI.location
debe ser la misma que la especificada en cloudAuditLogging.clusterLocation
, gkeConnect.location
y stackdriver.clusterLocation
. Si las regiones no son las mismas, no se podrá crear el clúster.
Si quieres registrar todos los clústeres del proyecto en la API de GKE On-Prem, sigue los pasos que se indican en la sección Antes de empezar para activar y usar la API de GKE On-Prem en el proyecto.
Si no quieres registrar el clúster en la API GKE On-Prem, incluye esta sección y asigna el valor
false
agkeOnPremAPI.enabled
. Si no quieres registrar ningún clúster en el proyecto, inhabilitagkeonprem.googleapis.com
(el nombre del servicio de la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilitar servicios.
stackdriver
Rellena la sección stackdriver
para habilitar Cloud Logging y Cloud Monitoring en tu clúster.
Ten en cuenta los siguientes requisitos:
El ID de
stackdriver.projectID
debe ser el mismo que el degkeConnect.projectID
ycloudAuditLogging.projectID
.La región definida en
stackdriver.clusterLocation
debe ser la misma que la definida encloudAuditLogging.clusterLocation
ygkeConnect.location
. Google Cloud Además, sigkeOnPremAPI.enabled
estrue
, se debe definir la misma región engkeOnPremAPI.location
.
Si los IDs de proyecto y las regiones no son los mismos, no se podrá crear el clúster.
cloudAuditLogging
Si quieres integrar los registros de auditoría del servidor de la API de Kubernetes de tu clúster con los registros de auditoría de Cloud, rellena la sección cloudAuditLogging
.
Ten en cuenta los siguientes requisitos para los clústeres nuevos:
Como
enableAdvancedCluster
se ha definido comotrue
, debe especificar la misma ruta encloudAuditLogging.serviceAccountKeyPath
ystackdriver.serviceAccountKeyPath
.El ID de
cloudAuditLogging.projectID
debe ser el mismo que el degkeConnect.projectID
ystackdriver.projectID
.La región definida en Google Cloud y
cloudAuditLogging.clusterLocation
debe ser la misma que la definida enstackdriver.clusterLocation
ygkeConnect.location
(si el campo se incluye en el archivo de configuración). Además, sigkeOnPremAPI.enabled
estrue
, se debe definir la misma región engkeOnPremAPI.location
.
Si los IDs de proyecto y las regiones no son los mismos, no se podrá crear el clúster.
clusterBackup
Elimina esta sección. No se admite la creación de copias de seguridad del clúster de administrador en un almacén de datos de vSphere.
autoRepair
Si quieres habilitar la reparación automática de nodos en tu clúster de administrador, define autoRepair.enabled
en true
.
secretsEncryption
Como enableAdvancedCluster
está definido como true
, elimina esta sección.
osImageType
Define el osImageType
.
a ubuntu_cgroupv2
o ubuntu_containerd
.
preparedSecrets
Elimina el campo preparedSecrets
.
Las credenciales preparadas no se admiten cuando los dominios de topología están habilitados.
Ejemplo de archivos de configuración rellenados
A continuación, se muestra un ejemplo de un archivo de configuración de clúster de administradores rellenado. La configuración habilita algunas de las funciones disponibles, pero no todas.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.1-full.tgz" enableAdvancedCluster: true infraConfigFilePath: "/my-config-folder/vsphere-infrastructure-config.yaml" network: serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" ipMode: type: "static" ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "ManualLB" antiAffinityGroups: enabled: false adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 topologyDomains: "admin-cluster-domain" componentAccessServiceAccountKeyPath: "sa-key.json" gkeConnect: projectID: "my-project-123" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" disableVsphereResourceMetrics: false autoRepair: enabled: true osImageType: "ubuntu_containerd"
Rellena el archivo de configuración de tu infraestructura de vSphere
Copia la plantilla del archivo de configuración de la infraestructura de vSphere en el archivo del directorio que hayas especificado en el campo infraConfigFilePath
del archivo de configuración del clúster de administrador. Solo hay un archivo de configuración de infraestructura de vSphere para el clúster de administrador y todos los clústeres de usuarios gestionados.
Secret
Rellena la sección Secret
del archivo de configuración de la infraestructura de vSphere. En esta sección se describe el secreto de las credenciales de vSphere, que almacena las credenciales de cada servidor vCenter.
VSphereInfraConfig.name
Rellena el campo VSphereInfraConfig,name
.
VSphereInfraConfig.credentials.vCenters
Por cada Secret
, añade una sección VSphereInfraConfig.credentials.vCenters
correspondiente.
VSphereInfraConfig,topologyDomains
Rellena la sección VSphereInfraConfig.topologyDomains
para definir los dominios de topología.
Rellena el archivo de bloque de IP
Copia la plantilla del archivo de bloqueo de IPs en el archivo del directorio que hayas especificado en el campo network.ipMode.ipBlockFilePath
del archivo de configuración del clúster de administrador. Añade las direcciones IP de la pasarela, la máscara de subred y los tres nodos del plano de control. Por cada dirección IP del nodo del plano de control, añada isControlPlane: true
tal como se muestra en el ejemplo de dominios de topología.
Obtener imágenes de SO
Descarga el paquete normal de Google Distributed Cloud en la estación de trabajo del administrador:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz /var/lib/gke/bundles/gke-onprem-vsphere-VERSION.tgz
Sustituye
VERSION
por la versión de Google Distributed Cloud que quieras instalar.Este comando descarga el paquete normal. No descargues el paquete completo, ya que no es compatible con los clústeres avanzados.
Ejecuta
gkectl prepare
para inicializar tu entorno de vSphere:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Sustituye
ADMIN_CLUSTER_CONFIG
por la ruta de la configuración del clúster de administrador.El comando
gkectl prepare
realiza las siguientes tareas preparatorias:Importa imágenes de SO a vSphere y las marca como plantillas de VM.
Si usas un registro de Docker privado, envía las imágenes de contenedor a tu registro.
Opcionalmente, valida las atestaciones de compilación de las imágenes de contenedor, lo que permite verificar que Google ha compilado y firmado las imágenes, y que están listas para el despliegue.
Crear el clúster de administrador
Crea el clúster de administrador:
gkectl create admin --configADMIN_CLUSTER_CONFIG
Reanudar la creación del clúster de administradores tras un fallo
Si se produce un error al crear el clúster de administrador o se cancela, puedes volver a ejecutar el comando create
:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Localizar el archivo kubeconfig del clúster de administrador
El comando gkectl create admin
crea un archivo kubeconfig llamado kubeconfig
en el directorio actual. Necesitarás este archivo kubeconfig más adelante para interactuar con tu clúster de administrador.
El archivo kubeconfig contiene el nombre de tu clúster de administrador. Para ver el nombre del clúster, puedes ejecutar el siguiente comando:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
El resultado muestra el nombre del clúster. Por ejemplo:
NAME gke-admin-tqk8x
Si quieres, puedes cambiar el nombre y la ubicación del archivo kubeconfig.
Verificar que el clúster de administrador se está ejecutando
Comprueba que tu clúster de administrador se está ejecutando:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Sustituye ADMIN_CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig de tu clúster de administrador.
El resultado muestra los nodos del clúster de administrador. Por ejemplo:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
Configurar tu PodTemplate
La etiqueta de topología se rellena con las etiquetas de los nodos del dominio de topología.
A menos que la configuración del dominio de tu topología haya usado la restricción predeterminada,
"topology.kubernetes.io/zone"
como clave de topología, debes configurar la clave de topología en la plantilla de pod de tu Deployment, StatefulSet o ReplicaSet, según corresponda.
Por ejemplo, supongamos que ha definido la clave en la etiqueta de topología como
"topology.examplepetstore.com/zone"
. En PodTemplate
, especifica la clave
como valor del campo topologySpreadConstraints.topologyKey
. Esto permite que el programador de Kubernetes distribuya los pods en el dominio de topología para asegurar la alta disponibilidad y evitar la concentración excesiva en una sola zona en caso de fallo.
Para obtener más información sobre cómo configurar topologySpreadConstraints
, consulta el artículo sobre restricciones de distribución de topología de pods de la documentación de Kubernetes.
Crear copias de seguridad de archivos
Te recomendamos que hagas una copia de seguridad del archivo kubeconfig de tu clúster de administrador. Es decir, copia el archivo kubeconfig de tu estación de trabajo de administrador a otra ubicación. De esta forma, si pierdes el acceso a la estación de trabajo del administrador o si el archivo kubeconfig de tu estación de trabajo del administrador se elimina por error, seguirás teniendo acceso al clúster de administrador.
También te recomendamos que hagas una copia de seguridad de la clave SSH privada de tu clúster de administrador. De esta forma, si pierdes el acceso al clúster de administrador, podrás seguir usando SSH para conectarte a los nodos del clúster de administrador. De esta forma, podrá solucionar e investigar cualquier problema de conectividad con el clúster de administrador.
Extrae la clave SSH del clúster de administrador en un archivo llamado
admin-cluster-ssh-key
:
kubectl --kubeconfigADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
Ahora puedes crear una copia de seguridad de admin-cluster-ssh-key
en otra ubicación que elijas.
Solución de problemas
Consulta Solucionar problemas de creación y actualización de clústeres.
Siguientes pasos
Crear un clúster de usuarios para usarlo en el dominio de topología