En esta página, se muestra cómo crear un clúster de administrador para usarlo en 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 Google Distributed Cloud versión 1.31 o superior 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 con la vista previa del clúster avanzado:
- Solo puedes habilitar el clúster avanzado en el momento de la creación del clúster para los clústeres nuevos de la versión 1.31.
- Después de habilitar el clúster avanzado, no podrás actualizar el clúster a la versión 1.32. Solo habilita 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 Google Cloud el contenido de, consulta Roles y tareas comunes del usuario de GKE.
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 sobre tus dominios de topología en un archivo de configuración de la infraestructura de vSphere.
- Completa el archivo de bloque 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 de SO a vSphere y envía imágenes de contenedores al registro privado, si corresponde.
- Crea un clúster de administrador.
- Usa
gkectlpara 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
kubectlpara 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 usuario 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 tu 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
privateRegistrysección 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 proxy server, 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 la
Secretsección y laVSphereInfraConfig.credentials.vCenterssección en el archivo de configuración de la infraestructura de vSphere. Consulta lo siguiente para obtener la información necesaria:
Completa el archivo de configuración del 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 este 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
Configura 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 infraConfigFilePath
campo.
vCenter
Quita toda esta sección. En su lugar, configura 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 bloque de IP.
- Toda la sección
Configura
network.ipMode.ipBlockFilePathen la ruta de acceso al archivo de bloque de IP.Configura
network.ipMode.typecomostatic.Los 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.kindcomo"ManualLB"y quita lamanualLBsección.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
cpusymemoryMBen laadminMastersección.Los clústeres de administrador deben tener tres nodos del plano de control. Configura el campo
replicasen la secciónadminMastercomo3.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
adminMaster.topologyDomainscampo. Si no especificas un nombre aquí, debes establecer un nombre envSphereInfraConfig.defaultTopologyDomainen 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
proxy
sección.
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
privateRegistrysección.
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 Google Cloud flota completando la
gkeConnect
sección. 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 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 Google Cloud consola, la
Google Cloud CLI y Terraform no son compatibles con los 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 Google Cloud proyecto, todos los clústeres
del proyecto se inscriben en la API de GKE On-Prem de forma automática 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.enabledcomofalse. 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
stackdriver
sección para habilitar
Cloud Logging y Cloud Monitoring
para tu clúster.
Ten en cuenta los siguientes requisitos:
El ID en
stackdriver.projectIDdebe ser el mismo que el ID engkeConnect.projectIDycloudAuditLogging.projectID.La Google Cloud región establecida en
stackdriver.clusterLocationdebe ser la misma que la región establecida encloudAuditLogging.clusterLocationygkeConnect.location. Además, sigkeOnPremAPI.enabledestrue, se debe establecer la misma región engkeOnPremAPI.location.
Si los IDs de proyecto y las regiones 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:
Debido a que
enableAdvancedClusterestá configurado comotrue, debes especificar la misma ruta de acceso encloudAuditLogging.serviceAccountKeyPathystackdriver.serviceAccountKeyPath.El ID en
cloudAuditLogging.projectIDdebe ser el mismo que el ID engkeConnect.projectIDystackdriver.projectID.La Google Cloud región establecida en
cloudAuditLogging.clusterLocationdebe ser la misma que la región establecida enstackdriver.clusterLocationygkeConnect.location(si el campo está incluido en tu archivo de configuración). Además, sigkeOnPremAPI.enabledestrue, se debe establecer la misma región engkeOnPremAPI.location.
Si los IDs de proyecto y las regiones no son los mismos, la creación del clúster fallará.
clusterBackup
Quita esta sección. No se admite la copia 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
Debido a que enableAdvancedCluster está configurado como true, quita esta sección.
osImageType
Configura el
osImageType.
como ubuntu_cgv2.
preparedSecrets
Quita el campo preparedSecrets.
No se admiten las credenciales preparadas
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_cgv2"
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 infraConfigFilePath
campo del archivo de configuración del clúster de administrador. Solo hay un archivo de configuración de la infraestructura de vSphere para el clúster de administrador y todos los clústeres de usuario administrados.
Secret
Completa la Secret
sección 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 vCenter Server.
VSphereInfraConfig.name
Completa el VSphereInfraConfig,name campo.
VSphereInfraConfig.credentials.vCenters
Para cada Secret, agrega una sección correspondiente
VSphereInfraConfig.credentials.vCenters.
VSphereInfraConfig,topologyDomains
Completa la
VSphereInfraConfig.topologyDomains sección para
definir los dominios de topología.
Completa el archivo de bloque de IP
Copia la plantilla del
archivo de bloque de IP en el archivo del
directorio que especificaste en el network.ipMode.ipBlockFilePath campo
del archivo de configuración del clúster de administrador. Agrega las direcciones IP de la puerta de enlace, la máscara de red 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 los dominios de topología.
Obtén imágenes de SO
Descarga el paquete normal de Google Distributed Cloud en la estación de trabajo de 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
VERSIONpor la versión de Google Distributed Cloud que deseas instalar.Este comando descarga el paquete normal. No descargues el paquete completo porque no es compatible con los clústeres avanzados.
Ejecuta
gkectl preparepara inicializar el entorno de vSphere:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Reemplaza
ADMIN_CLUSTER_CONFIGpor la ruta de acceso de la configuración del clúster de administrador.El comando
gkectl preparerealiza 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 --config ADMIN_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 lo siguiente:
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 del 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 los Pods en el dominio de topología para garantizar la alta disponibilidad y evitar la concentración excesiva en cualquier área en caso de falla.
Para obtener más información sobre la configuración de topologySpreadConstraints, consulta
Restricciones de distribución de topología de Pods
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 tu 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 tu estación de trabajo de administrador se borra por accidente, aún tendrás acceso al clúster de administrador.
También te recomendamos que crees una copia de seguridad de la clave privada SSH para 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 --kubeconfig ADMIN_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 de tu elección.
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