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 administra los clústeres de usuario que ejecutan tus cargas de trabajo. Se requiere la versión 1.31 o una posterior de Google Distributed Cloud para usar dominios de topología.
Para configurar un dominio de topología, debes habilitar el clúster avanzado. Ten en cuenta las siguientes limitaciones de la vista previa del clúster avanzado:
- Puedes habilitar el clúster avanzado en el momento de la creación del clúster solo para clústeres nuevos de 1.31.
- Una vez que se habilite el clúster avanzado, no podrás actualizarlo a la versión 1.32. Habilita solo el clúster avanzado en un entorno de prueba.
Esta página está destinada a administradores, arquitectos y operadores que configuran, supervisan y administran la infraestructura tecnológica. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.
Para obtener más detalles 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 que se deben seguir para crear un clúster de administrador:
- Completa el archivo de configuración de administrador
- Especifica los detalles de tu clúster de administrador nuevo completando un archivo de configuración del clúster de administrador.
- Completa el archivo de configuración de la infraestructura de vSphere
- Especifica los detalles de tus dominios de topología en un archivo de configuración de la infraestructura de vSphere.
- Completa el archivo de bloqueo de IP
- Especifica las direcciones IP de la puerta de enlace, la máscara de red y los nodos del plano de control en un archivo de bloque de IP.
- Obtén imágenes de SO
- Descarga el paquete normal de Google Distributed Cloud. Luego, ejecuta
gkectl prepare
, que importa las imágenes del SO a vSphere y envía imágenes de contenedores al registro privado, si corresponde.
- Crea un clúster de administrador.
- Usa
gkectl
para crear un clúster de administrador nuevo como se especifica en los archivos de configuración completos. Cuando Google Distributed Cloud crea un clúster de administrador, implementa un clúster de Kubernetes en Docker (similar) para alojar de forma temporal los controladores de Kubernetes necesarios para crear el clúster de administrador. Este clúster transitorio se denomina clúster de arranque. El administrador que los administra crea y actualiza los clústeres de usuario sin usar un clúster de arranque.
- Verifica que el clúster de administrador esté en ejecución.
- Usa
kubectl
para ver los nodos del clúster.
Al final de este procedimiento, tendrás un clúster de administrador en ejecución que puedes usar para crear y administrar clústeres de usuarios en dominios de topología.
Antes de comenzar
Asegúrate de haber configurado tu estación de trabajo de administrador y de poder acceder a ella como se describe en Crea una estación de trabajo de administrador. La estación de trabajo de administrador tiene las herramientas que necesitas para crear el clúster de administrador. Realiza todos los pasos de este documento en la estación de trabajo de administrador.
Revisa el documento de planificación de direcciones IP. Asegúrate de tener suficientes direcciones IP disponibles para los tres nodos del plano de control y una VIP del plano de control.
Configura el balanceador de cargas para el balanceo de cargas manual. Debes configurar el balanceador de cargas antes de crear el clúster de administrador.
Mira la sección
privateRegistry
y decide si deseas usar un registro público o privado para los componentes de Google Distributed Cloud.Mira el campo osImageType y decide qué tipo de sistema operativo deseas ejecutar en los nodos del 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 entidades permitidas las APIs requeridas y la dirección de Artifact Registry.
Recopila la información que necesitas para acceder a cada instancia de vCenter Server. Necesitas esta información para completar las secciones
Secret
yVSphereInfraConfig.credentials.vCenters
del archivo de configuración de la infraestructura de vSphere. Consulta la siguiente información para obtener la información necesaria:
Completa el archivo de configuración de tu clúster de administrador
Si usaste gkeadm
para crear tu estación de trabajo de administrador, se generó un archivo de configuración llamado admin-cluster.yaml
.
Si no usaste gkeadm
para crear tu estación de trabajo de administrador, genera admin-cluster.yaml
ejecutando el siguiente comando en tu estación de trabajo de administrador:
gkectl create-config admin
Este archivo de configuración sirve para crear tu clúster de administrador.
Familiarízate con el archivo de configuración mediante el análisis del documento del archivo de configuración del clúster de administrador. Se recomienda mantener este documento abierto en una pestaña o ventana separada, ya que harás referencia a él a medida que completes los siguientes pasos.
name
Si deseas especificar un nombre para el clúster de administrador, completa el campo name
.
bundlePath
El paquete es un archivo comprimido que contiene componentes del clúster. Se incluye en la estación de trabajo de administrador. Ya se completó este campo.
enableAdvancedCluster
Establece enableAdvancedCluster
como true
. Esto habilita los clústeres avanzados, que son necesarios para configurar
dominios de topología.
infraConfigFilePath
Agrega la ruta de acceso completa al archivo de configuración de la infraestructura de vSphere en el campo infraConfigFilePath
.
vCenter
Quita toda esta sección. En su lugar, configuras la información de vCenter Server en el archivo de configuración de la infraestructura de vSphere.
network
Quita 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 puerta de enlace, la máscara de red y los nodos del plano de control se configuran en un archivo de bloques de IP.
- Toda la sección
Establece
network.ipMode.ipBlockFilePath
en la ruta de acceso al archivo de bloque de IP.Establece
network.ipMode.type
comostatic
.Los campos network.podCIDR y network.serviceCIDR tienen valores prepropagados que puedes dejar sin modificar, a menos que entren en conflicto con direcciones que ya se usan en tu red. Kubernetes usa estos rangos para asignar direcciones IP a Pods y objetos Service en tu clúster.
loadBalancer
Configura
loadBalancer.kind
como"ManualLB"
y quita la secciónmanualLB
.Reserva una VIP para el servidor de la API de Kubernetes del clúster de administrador. Proporciona tu VIP como el valor de
loadBalancer.vips.controlPlaneVIP
.
Para obtener más información, consulta VIP en la subred del clúster de administrador.
antiAffinityGroups
Configura antiAffinityGroups.enabled
como false
.
Las reglas de antiafinidad de Distributed Resource Scheduler (DRS) no son compatibles con los dominios de topología.
adminMaster
Si deseas especificar la CPU y la memoria para los nodos del plano de control del clúster de administrador, completa los campos
cpus
ymemoryMB
en la secciónadminMaster
.Los clústeres de administrador deben tener tres nodos de plano de control. Establece el campo
replicas
en la secciónadminMaster
como3
.Si deseas especificar un dominio de topología específico para que usen los nodos del plano de control, agrega el nombre del dominio de topología al campo
adminMaster.topologyDomains
. Si no especificas un nombre aquí, debes establecer uno envSphereInfraConfig.defaultTopologyDomain
en el archivo de configuración de la infraestructura de vSphere.
proxy
Si la red que tendrá los nodos del clúster de administrador está detrás de un servidor proxy, completa la sección proxy
.
privateRegistry
Decide dónde deseas conservar las imágenes de contenedor para los componentes de Google Distributed Cloud. Las opciones son las siguientes:
Artifact Registry
Tu propio registro privado de Docker.
Si deseas usar tu propio registro privado, completa la sección
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud usa tu cuenta de servicio de acceso a los componentes para descargar los componentes del clúster desde Artifact Registry. Este campo contiene la ruta de acceso de un archivo de claves JSON para tu cuenta de servicio de acceso a los componentes.
Ya se completó este campo.
gkeConnect
Registra tu clúster de administrador en una flota de Google Cloud completando la sección
gkeConnect
. El ID en gkeConnect.projectID
debe ser el mismo que el ID establecido en stackdriver.projectID
y cloudAuditLogging.projectID
. Si los IDs de proyecto no son los mismos, la creación del clúster fallará.
De forma opcional, puedes especificar una región en la que se ejecutan los servicios de la flota y de conexión en gkeConnect.location
. Si no incluyes este campo, el clúster usará las instancias globales de estos servicios.
Si incluyes gkeConnect.location
, la región que especifiques debe ser la misma que la región configurada en cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
y gkeOnPremAPI.location
. Si las regiones no son las mismas, la creación del clúster fallará.
gkeOnPremAPI
En esta sección, se describe cómo se inscriben los clústeres en la API de GKE On-Prem.
La herramienta de línea de comandos de gkectl
es la única herramienta de administración del ciclo de vida del clúster disponible para los clústeres que usan dominios de topología. Aunque la consola de Google Cloud , Google Cloud CLI y Terraform no son compatibles con clústeres que usan dominios de topología, puedes inscribir el clúster en la API de GKE On-Prem de forma opcional cuando se crea.
Si la API de GKE On-Prem está habilitada en tu proyecto de Google Cloud , todos los clústeres
del proyecto se inscriben en la API de GKE On-Prem automáticamente en la región
configurada en stackdriver.clusterLocation
. La región gkeOnPremAPI.location
debe ser la misma que la región especificada en cloudAuditLogging.clusterLocation
, gkeConnect.location
y stackdriver.clusterLocation
. Si las regiones no son las mismas, la creación del clúster fallará.
Si deseas inscribir todos los clústeres del proyecto en la API de GKE On-Prem, asegúrate de seguir los pasos que se indican en Antes de comenzar para activar y usar la API de GKE On-Prem en el proyecto.
Si no deseas inscribir el clúster en la API de GKE On-Prem, incluye esta sección y configura
gkeOnPremAPI.enabled
comofalse
. Si no deseas inscribir ningún clúster en el proyecto, inhabilitagkeonprem.googleapis.com
(el nombre del servicio para la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilita servicios.
stackdriver
Completa la sección
stackdriver
para habilitar
Cloud Logging y Cloud Monitoring
para tu clúster.
Ten en cuenta los siguientes requisitos:
El ID en
stackdriver.projectID
debe ser el mismo que el degkeConnect.projectID
ycloudAuditLogging.projectID
.La región Google Cloud configurada en
stackdriver.clusterLocation
debe ser la misma que la región configurada encloudAuditLogging.clusterLocation
ygkeConnect.location
. Además, sigkeOnPremAPI.enabled
estrue
, se debe configurar la misma región engkeOnPremAPI.location
.
Si los IDs y las regiones de los proyectos no son los mismos, la creación del clúster fallará.
cloudAuditLogging
Si deseas integrar los registros de auditoría del servidor de la API de Kubernetes del clúster a los registros de auditoría de Cloud, completa la sección cloudAuditLogging
.
Ten en cuenta los siguientes requisitos para los clústeres nuevos:
Como
enableAdvancedCluster
está configurado comotrue
, debes especificar la misma ruta de acceso encloudAuditLogging.serviceAccountKeyPath
ystackdriver.serviceAccountKeyPath
.El ID en
cloudAuditLogging.projectID
debe ser el mismo que el degkeConnect.projectID
ystackdriver.projectID
.La región Google Cloud configurada en
cloudAuditLogging.clusterLocation
debe ser la misma que la región configurada enstackdriver.clusterLocation
ygkeConnect.location
(si el campo se incluye en tu archivo de configuración). Además, sigkeOnPremAPI.enabled
estrue
, se debe configurar la misma región engkeOnPremAPI.location
.
Si los IDs y las regiones de los proyectos no son los mismos, la creación del clúster fallará.
clusterBackup
Quita 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 deseas habilitar la reparación automática de nodos para el clúster de administrador, configura autoRepair.enabled
como true
.
secretsEncryption
Como enableAdvancedCluster
está configurado en true
, quita esta sección.
osImageType
Establece osImageType
.
a ubuntu_cgroupv2
y ubuntu_containerd
.
preparedSecrets
Quita el campo preparedSecrets
.
Las credenciales preparadas no se admiten cuando se habilitan los dominios de topología.
Ejemplo de archivos de configuración completados
Este es un ejemplo de un archivo de configuración de clúster de administrador completo. La configuración habilita algunas funciones, pero no todas las disponibles.
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"
Completa el archivo de configuración de la infraestructura de vSphere
Copia la plantilla del archivo de configuración de la infraestructura de vSphere en el archivo del directorio que especificaste 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 usuario administrados.
Secret
Completa la sección Secret
en el archivo de configuración de la infraestructura de vSphere. En esta sección, se describe el secreto de credenciales de vSphere, que almacena las credenciales de cada servidor de vCenter.
VSphereInfraConfig.name
Completa el campo VSphereInfraConfig,name
.
VSphereInfraConfig.credentials.vCenters
Para cada Secret
, agrega una sección VSphereInfraConfig.credentials.vCenters
correspondiente.
VSphereInfraConfig,topologyDomains
Completa la sección VSphereInfraConfig.topologyDomains
para definir los dominios de topología.
Completa el archivo de bloqueo de IP
Copia la plantilla del archivo de bloque de IP en el archivo del directorio que especificaste en el campo network.ipMode.ipBlockFilePath
del archivo de configuración del clúster de administrador. Agrega las direcciones IP de la puerta de enlace, la máscara de subred y los tres nodos del plano de control. Para cada dirección IP del nodo del plano de control, agrega isControlPlane: true
como se muestra en el ejemplo de dominios de topología.
Obtén 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
Reemplaza
VERSION
por la versión de Google Distributed Cloud que deseas 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 el entorno de vSphere:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Reemplaza
ADMIN_CLUSTER_CONFIG
por la ruta de acceso de la configuración del clúster de administrador.El comando
gkectl prepare
realiza las siguientes tareas de preparación:Importa las imágenes de SO a vSphere y las marca como plantillas de VM.
Si usas un registro privado de Docker, envía las imágenes de contenedor a tu registro.
De manera opcional, valida las certificaciones de compilación de las imágenes de contenedor a fin de verificar que las imágenes hayan sido compiladas y firmadas por Google y que estén listas para la implementación.
Crea el clúster de administrador:
Crea el clúster de administrador:
gkectl create admin --configADMIN_CLUSTER_CONFIG
Reanuda la creación del clúster de administrador después de una falla
Si la creación del clúster de administrador falla o se cancela, puedes volver a ejecutar el comando create
:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Ubica 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
En el resultado, se muestra el nombre del clúster. Por ejemplo:
NAME gke-admin-tqk8x
Si lo deseas, puedes cambiar el nombre y la ubicación de tu archivo kubeconfig.
Verifica que el clúster de administrador esté en ejecución
Verifica que el clúster de administrador esté en ejecución:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Reemplaza ADMIN_CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster de administrador.
En el resultado, se muestran 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 ...
Configura tu PodTemplate
La etiqueta de topología se propaga a las etiquetas de los nodos en el dominio de topología.
A menos que la configuración de tu dominio de topología haya usado la restricción predeterminada, "topology.kubernetes.io/zone"
como la 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 definiste la clave en la etiqueta de topología como "topology.examplepetstore.com/zone"
. En PodTemplate
, especificas la clave
como el valor del campo topologySpreadConstraints.topologyKey
. Esto permite que el programador de Kubernetes distribuya Pods en el dominio de topología para garantizar una alta disponibilidad y evitar la sobreconcentración en una sola área en caso de falla.
Para obtener más información sobre la configuración de topologySpreadConstraints
, consulta Restricciones de propagación de topología de pod en la documentación de Kubernetes.
Crea una copia de seguridad de tus archivos
Te recomendamos que crees una copia de seguridad del archivo kubeconfig del clúster de administrador. Es decir, copia el archivo kubeconfig de la estación de trabajo de administrador a otra ubicación. Luego, si pierdes el acceso a la estación de trabajo de administrador o si el archivo kubeconfig de la estación de trabajo de administrador se borra accidentalmente, seguirás teniendo acceso al clúster de administrador.
También te recomendamos que crees una copia de seguridad de la clave privada SSH de tu clúster de administrador. Luego, si pierdes el acceso al clúster de administrador, podrás usar SSH para conectarte a los nodos del clúster de administrador. Esto te permitirá solucionar e investigar cualquier problema de conectividad con el clúster de administrador.
Extrae la clave SSH del clúster de administrador a 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.
Soluciona problemas
Consulta Soluciona problemas de creación y actualización de clústeres.
¿Qué sigue?
Crea un clúster de usuario para usarlo en el dominio de topología