En este documento se explica cómo crear una estación de trabajo de administrador para Google Distributed Cloud. La estación de trabajo de administrador aloja herramientas de interfaz de línea de comandos (CLI) y archivos de configuración para aprovisionar clústeres durante la instalación, así como herramientas de CLI para interactuar con los clústeres aprovisionados después de la instalación.
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.
Las instrucciones que se indican aquí son completas. Para ver una introducción más breve sobre cómo crear una estación de trabajo de administrador, consulta el artículo Crear una estación de trabajo de administrador de la guía Crear clústeres básicos.
Elige cómo quieres crear la estación de trabajo de administrador
Hay dos formas de crear una estación de trabajo de administrador:
- Usa
gkeadm
para crear una VM de estación de trabajo de administrador en tu entorno de vSphere. - Crea una estación de trabajo de administrador gestionada por el usuario en el ordenador que quieras.
Ambos enfoques tienen ventajas e inconvenientes.
Cuando usas gkeadm
para crear tu estación de trabajo de administrador, gkeadm
hace lo siguiente, lo que simplifica la configuración:
- Crea la VM de la estación de trabajo de administrador.
- La plantilla de VM que usa
gkeadm
para crear la estación de trabajo de administrador tiene todo el software que necesitas para crear y gestionar clústeres con la herramienta de línea de comandosgkectl
. - Crea una cuenta de usuario que tú u otros administradores podéis usar para iniciar sesión en la estación de trabajo de administrador.
- Proporciona el comando SSH para iniciar sesión en la estación de trabajo del administrador con la cuenta de usuario proporcionada.
Una estación de trabajo de administrador creada por gkeadm
solo puede gestionar un clúster de administradores. Si tienes previsto crear varios clústeres de administradores, deberás crear una estación de trabajo de administrador para cada uno de ellos.
La estación de trabajo de administrador creada por gkeadm
está vinculada al ciclo de vida del clúster. Cuando actualizas un clúster de administrador o cualquiera de los clústeres de usuario gestionados por el clúster de administrador, primero debes actualizar la estación de trabajo de administrador.
Cuando configures tu propia estación de trabajo de administrador, tendrás que instalar uno de los sistemas operativos obligatorios y todo el software necesario. Esto hace que la configuración inicial lleve más tiempo, ya que crear una VM a partir de una plantilla es más rápido que instalar el software necesario en un ordenador. Sin embargo, una vez configurada, la estación de trabajo tiene las siguientes ventajas con respecto a una estación de trabajo de administrador creada con gkeadm
:
- Puedes configurar la estación de trabajo gestionada por el usuario para crear y gestionar más de un clúster de administrador.
- No es necesario actualizar una estación de trabajo de administrador gestionada por el usuario al actualizar un clúster.
- Puedes usar herramientas de CI/CD estándar para automatizar la gestión del ciclo de vida de los clústeres.
- Puedes usar métodos de autenticación estándar, como Active Directory, para controlar el acceso a la estación de trabajo de administrador.
- Puedes usar sistemas de autorización estándar para controlar a qué pueden acceder los usuarios en la estación de trabajo de administrador y para auditar sus acciones.
- Puedes elegir el software que quieras usar para crear capturas o copias de seguridad de la estación de trabajo del administrador.
Crear la estación de trabajo de administrador
gkeadm
Antes de empezar
Conoce la dirección de tu servidor de vCenter.
Conoce la ruta de tu certificado de CA.
Crea uno o varios Google Cloud proyectos tal como se describe en el artículo sobre cómo usar varios Google Cloud proyectos.
Planificar las cuentas de servicio
Cuando usas gkeadm
para crear una estación de trabajo de administrador, puedes dejar que gkeadm
cree algunas de tus cuentas de servicio y claves. En ese caso, gkeadm
también concede los roles de Gestión de Identidades y Accesos adecuados a las cuentas de servicio.
También puedes crear tus cuentas de servicio y claves manualmente. En ese caso, debes conceder manualmente roles de gestión de identidades y accesos a tus cuentas de servicio.
Crear cuentas de servicio manualmente te ofrece más flexibilidad que dejar que
gkeadm
las cree por ti:
Todas las cuentas de servicio creadas automáticamente tienen el mismo proyecto principal que tu cuenta de servicio de acceso a componentes.Google Cloud Cuando creas una cuenta de servicio manualmente, puedes elegir elGoogle Cloud proyecto principal.
Todas las cuentas de servicio creadas automáticamente tienen roles de gestión de identidades y accesos en el proyecto principal de tu cuenta de servicio de acceso a componentes. Google Cloud No hay problema si es el único proyecto de Google Cloud asociado a tus clústeres. Sin embargo, si quieres asociar tus clústeres a varios Google Cloud proyectos, necesitas la flexibilidad de asignar roles a una cuenta de servicio en elGoogle Cloud proyecto que elijas.
Si decides crear tus propias cuentas de servicio, sigue las instrucciones que se indican en el artículo Cuentas de servicio y claves.
Tanto si has configurado gkeadm
para que cree cuentas de servicio automáticamente como si no, hay una cuenta de servicio que debes crear manualmente: la cuenta de servicio de acceso a componentes. Para obtener instrucciones sobre cómo crear tu cuenta de servicio de acceso a componentes y asignarle los roles de gestión de identidades y accesos adecuados, consulta el artículo Cuenta de servicio de acceso a componentes.
Hay otra cuenta de servicio que puede que tengas que crear manualmente: la cuenta de servicio de registro de auditoría. Si quieres usar un cliente de la API GKE On-Prem para gestionar tus clústeres de usuario, debes habilitar el registro de auditoría en tu clúster de administrador.
Generar plantillas para los archivos de configuración
Descarga gkeadm
en tu directorio actual.
Generar plantillas:
./gkeadm create config
El comando anterior ha creado estos archivos en tu directorio actual:
credential.yaml
admin-ws-config.yaml
Rellenar credential.yaml
En credential.yaml
, introduce tu nombre de usuario y contraseña de vCenter. Por ejemplo:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
Rellenar admin-ws-config.yaml
Varios campos de admin-ws-config.yaml
ya están rellenos con valores predeterminados o generados. Puedes mantener los valores rellenados o hacer los cambios que quieras.
Campos que debes rellenar
Rellena los siguientes campos obligatorios. Para obtener información sobre cómo rellenar los campos, consulta Archivo de configuración de estación de trabajo de administrador.
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
Si quieres crear tu estación de trabajo de administrador en una carpeta de máquinas virtuales de vSphere, rellena el campo vCenter.folder
:
vCenter: folder: "Fill in"
Si tu estación de trabajo de administrador se encuentra detrás de un servidor proxy, rellena el campo proxyURL
:
adminWorkstation: proxyURL: "Fill in"
Si quieres que tu estación de trabajo de administrador obtenga su dirección IP de un servidor DHCP,
define ipAllocationMode
como "dhcp"
y elimina la sección hostconfig
:
adminWorkstation: network: ipAllocationMode: "dhcp"
Si quieres especificar una dirección IP estática para tu estación de trabajo de administrador, asigna el valor "static"
a ipAllocationMode
y rellena la sección hostconfig
:
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
Iniciar sesión
- Inicia sesión con cualquier cuenta de Google. De esta forma, se define la propiedad
account
de tu SDK:
gcloud auth login
- Verifica que la propiedad de tu SDK
account
esté configurada correctamente:
gcloud config list
- La cuenta de Google que se haya configurado como tu propiedad de
account
SDK se denomina cuenta de SDK. La herramienta de línea de comandosgkeadm
usa tu cuenta del SDK para descargar el archivo OVA de la estación de trabajo de administrador y habilitar los servicios en tuGoogle Cloud proyecto.
Si decides que gkeadm
cree automáticamente cuentas de servicio por ti,
gkeadm
también usará tu cuenta de SDK para crear cuentas de servicio y claves,
así como para asignar roles a las cuentas de servicio.
Por lo tanto, es importante que definas la propiedad account
del SDK antes de ejecutar
gkeadm
para crear una estación de trabajo de administrador.
En el resultado se muestran los valores de la propiedad account
de su SDK.
Por ejemplo:
[core] account = [email protected] disable_usage_reporting = False Your active configuration is: [default]
Conceder roles a tu cuenta de SDK
Tu cuenta del SDK debe tener el siguiente rol de gestión de identidades y accesos en el proyecto principal de tu cuenta de servicio de acceso a componentes. Google Cloud
De esta forma, gkeadm
puede habilitar servicios en el proyecto Google Cloud .
serviceUsage.serviceUsageAdmin
Si decides que gkeadm
cree automáticamente cuentas de servicio por ti, tu cuenta de SDK también debe tener los siguientes roles en el proyecto principal de tu cuenta de servicio de acceso a componentes. De esta forma, gkeadm
puede crear cuentas de servicio y claves.
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Para asignar roles en un Google Cloud proyecto, debes tener ciertos permisos en elGoogle Cloud proyecto. Para obtener más información, consulta Conceder, cambiar y revocar el acceso a los recursos.
Si tienes los permisos necesarios, puedes conceder los roles tú mismo. De lo contrario, otra persona de tu organización deberá asignarte los roles.
Para conceder el rol necesario a tu cuenta de SDK, sigue estos pasos:
Linux y macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin"
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto principal de tu cuenta de servicio de acceso a componentes Google CloudACCOUNT
: tu cuenta de SDK
Para conceder roles adicionales en caso de que quieras que gkeadm
cree automáticamente cuentas de servicio, sigue estos pasos:
Linux y macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountKeyAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountKeyAdmin"
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto principal de tu cuenta de servicio de acceso a componentesACCOUNT
: tu cuenta de SDK
Crear una estación de trabajo de administrador
Introduce este comando para crear tu estación de trabajo de administrador. Si quieres que se creen las cuentas de servicio
gkeadm
connect-register
y
logging-monitoring
por ti, incluye la marca
--auto-create-service-accounts
. Si quieres crear esas cuentas de servicio manualmente, omite la marca.
./gkeadm create admin-workstation [--auto-create-service-accounts]
El resultado proporciona información detallada sobre la creación de tu estación de trabajo de administrador:
... Getting ... service account... ... ******************************************************************** Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation [email protected] ********************************************************************
Obtener una conexión SSH a tu estación de trabajo de administrador
Casi al final del resultado anterior, hay un comando que puedes usar para obtener una conexión SSH a tu estación de trabajo de administrador. Introduce ese comando ahora. Por ejemplo:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation [email protected]
Lista los archivos de tu estación de trabajo de administrador:
ls -1
En el resultado, puedes ver dos archivos de configuración del clúster, el archivo de certificado de la CA y el archivo de clave JSON de tu cuenta de servicio de acceso a componentes. Si gkeadm
ha creado cuentas de servicio por ti, también puedes ver los archivos de claves JSON de esas cuentas. Por ejemplo:
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
Verifica que gkeadm
haya activado la cuenta de servicio de acceso a componentes en tu estación de trabajo de administrador:
gcloud config get-value account
Copiar archivos de claves JSON en tu estación de trabajo de administrador
Antes de crear un clúster, los archivos de clave JSON de tus cuentas de servicio deben estar en el directorio principal de tu estación de trabajo de administrador.
La clave de tu cuenta de servicio de acceso a componentes ya está en tu estación de trabajo de administrador.
Si has incluido la marca --auto-create-service-accounts
al ejecutar gkeadm create admin-workstation
, las claves de las siguientes cuentas de servicio ya estarán en tu estación de trabajo de administrador, en el directorio principal. De lo contrario, debes copiar manualmente las claves en el directorio principal de tu estación de trabajo de administrador:
- Cuenta de servicio de conexión y registro
- Cuenta de servicio de registro y monitorización
Si has creado alguna de las siguientes cuentas de servicio, debes copiar manualmente las claves de esas cuentas de servicio en el directorio principal de tu estación de trabajo de administrador:
- Cuenta de servicio de registro de auditoría
- Cuenta de servicio de Autorización binaria
Restaurar la estación de trabajo de administrador a partir de un archivo de copia de seguridad
Cuando actualizas una estación de trabajo de administrador, el comando gkeadm upgrade
guarda un archivo de copia de seguridad. Más adelante, si ya no tienes una estación de trabajo de administrador o has perdido algunos de los archivos que había en ella, puedes usar este archivo de copia de seguridad para crear una estación de trabajo de administrador que se restaure al estado en el que se encontraba inmediatamente después de la actualización.
Para crear una estación de trabajo de administrador a partir de un archivo de copia de seguridad, ejecuta este comando:
gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz
Sustituye ADMIN_WORKSTATION_NAME por el nombre de la estación de trabajo de administrador.
Gestionada por el usuario
Elige un ordenador que haga las funciones de estación de trabajo de administrador. Puedes usar Ubuntu o Red Hat Enterprise Linux (RHEL). Estos son los requisitos:
Ubuntu 20.04 LTS o 22.04 LTS
- CPU de 4 núcleos
- 8 GiB de RAM
- 100 GiB de almacenamiento
RHEL 8.6, 8.7 u 8.8
- CPU de 4 núcleos
- 12 GB de RAM
- 256 GiB de almacenamiento
Acceso a Google Cloud
Tu estación de trabajo de administrador debe tener acceso a Google Cloud para descargar e instalar herramientas, procesar solicitudes de autorización, crear cuentas de servicio y más.
Para obtener información sobre las diferentes formas de conectarse a Google Cloud, consulta Conectarse a Google.
Se puede acceder a Google Cloud directamente o a través de un servidor proxy. Para obtener información sobre las reglas de cortafuegos y la configuración de un servidor proxy, consulta Reglas de proxy y cortafuegos.
Acceso a vCenter Server
Para crear y gestionar clústeres desde tu estación de trabajo de administrador, debes tener acceso a tu instancia de vCenter Server. Para obtener más información, consulta:
- Requisitos de vSphere
- Determinar la dirección del servidor de vCenter
- Obtener el certificado raíz de la CA de vCenter
Configurar un servidor NTP
Cuando tu clúster esté configurado para usar un servidor NTP, tendrás que configurar un servicio de sincronización de hora en tu estación de trabajo de administrador para asegurarte de que timedatectl
informe de la hora sincronizada con el clúster. Esto es necesario para evitar problemas de desfase horario, que podrían provocar errores de verificación de certificados debido a fechas de vencimiento no coincidentes.
Ubuntu
Te recomendamos que uses el chrony
servidor de hora.
Para instalar chrony
, sigue estos pasos:
sudo apt-get update sudo apt install chrony
Esto proporciona dos archivos binarios:
chronyd
: el daemon para sincronizar y servir a través del protocolo de hora de redchronyc
: la interfaz de línea de comandos del daemonchrony
Para configurar chronyd
, sigue estos pasos:
Edita /etc/chrony/chrony.conf
para añadir o quitar líneas de servidor. A continuación, reinicia el dispositivo chrony
:
sudo systemctl restart chrony.service
RHEL - 6, 7
Te recomendamos que uses el chrony
servidor de hora.
Para obtener instrucciones de instalación, consulta Cómo configurar chrony.
Sudo sin contraseña
Si tu política de seguridad lo permite, habilita sudo sin contraseña para el usuario actual. De esta forma, gkectl
puede preparar un registro privado si se proporciona uno, configurar un proxy para Docker si tu red está detrás de un servidor proxy y eliminar por la fuerza el clúster de arranque que se usa para las operaciones del ciclo de vida del clúster de administrador en caso de que falle la eliminación.
Si decides no habilitar sudo sin contraseña y quieres usar un registro privado para tu clúster de administrador, haz la siguiente configuración manual antes de crear el clúster de administrador:
Coloca el certificado raíz de la AC del registro privado en este directorio:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Sustituye REGISTRY_ADDRESS por la dirección de la máquina que ejecuta el registro privado.
Para obtener más información, consulta el artículo Verificar el cliente del repositorio con certificados.
Si tu red está detrás de un servidor proxy, especifica el servidor proxy en el archivo de configuración del clúster de administrador y configura Docker para que use el servidor proxy.
Si decides no habilitar sudo sin contraseña, es posible que tengas que eliminar manualmente el clúster kind
después de crear un clúster de administrador. Para obtener más información, consulta el artículo No se elimina el clúster de Kind de la documentación sobre solución de problemas.
Instalar software
Ubuntu
Instala el siguiente software:
Docker versión 19.03 o posterior: consulta el artículo sobre cómo instalar Docker Engine en Ubuntu. Asegúrate de que el usuario que no es administrador sea miembro del grupo docker. Consulta Gestionar Docker como usuario no root.
Última versión de Google Cloud CLI: consulta Instalar gcloud CLI.
kubectl: ejecuta
gcloud components install kubectl
o usaapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL - 6, 7
Instala el siguiente software:
Docker 19.03 o versiones posteriores
Elimina cualquier versión anterior de Docker:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
Elimina podman-manpages:
sudo dnf remove podman-manpages
Instala Docker 19.03 o una versión posterior:
sudo dnf install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start docker
Comprueba que ahora estés usando la versión 19.03 o una posterior:
sudo docker version
Compara tu salida con el siguiente ejemplo para asegurarte de que las versiones del cliente y del servidor sean 19.03 o posteriores:
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Verifica que Docker se ejecuta:
docker run hello-world
Debería ver algo similar a lo siguiente:
Hello from Docker!
Este mensaje indica que tu instalación parece funcionar correctamente.
Última versión de Google Cloud CLI:
Consulta Instalar gcloud CLI.
kubectl
Ejecuta gcloud components install kubectl
.
Iniciar sesión
La cuenta de Google que se haya definido como propiedad de SDK account
se denomina cuenta de SDK. La herramienta de línea de comandos gkectl
usa tu cuenta del SDK para descargar los OVA de los nodos del clúster, extraer imágenes de contenedor y más. Por lo tanto, es importante que definas la propiedad de cuenta del SDK antes de ejecutar los comandos gkectl
.
Inicia sesión con cualquier cuenta de Google. De esta forma, se define la propiedad account
de tu SDK:
gcloud auth login
Verifica que la propiedad de tu SDK account
esté configurada correctamente:
gcloud config list
En el resultado se muestran los valores de la propiedad account
de su SDK.
Por ejemplo:
[core] account = [email protected] disable_usage_reporting = False Your active configuration is: [default]
Descargar gkectl y el paquete
Ve al directorio en el que quieras instalar gkectl
.
Descarga gkectl
:
gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Sustituye VERSION por la versión de Google Distributed Cloud. Por ejemplo: 1.16.0-gke.1
.
Descarga el paquete de Google Distributed Cloud. Asegúrate de que la versión coincida con la que usaste para descargar gkectl
:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
Claves y cuentas de servicio
Asegúrate de haber creado las siguientes cuentas de servicio y archivos de clave JSON obligatorios:
Además, asegúrate de haber creado las cuentas de servicio y los archivos de claves JSON opcionales que necesites:
Coloca todos los archivos de claves JSON en el directorio principal de tu estación de trabajo de administrador.
Solución de problemas
En la siguiente sección se vuelve a habilitar el acceso SSH a la estación de trabajo del administrador en caso de que se pierda o se dañe la clave SSH.
Recuperación de claves SSH
Usa una máquina virtual temporal para seguir estos pasos:
Para generar un nuevo conjunto de claves SSH, siga las instrucciones de la sección Crear claves SSH de la documentación de Compute Engine.
Verifica que la máquina virtual temporal y la estación de trabajo de administrador estén en estado
Powered Off
.En vSphere, conecta el disco de arranque de la estación de trabajo de administrador a la VM temporal.
El disco de arranque tiene la etiqueta
Hard disk 1
.Monta el disco de arranque en la VM ejecutando los siguientes comandos:
sudo mkdir -p /mnt/boot-disk sudo mount DISK_ID /mnt/boot-disk
Sustituye
DISK_ID
por el identificador de tu disco de arranque, que debería tener un formato similar adev/sdc1
.Edita el archivo
authorized_keys
del disco de arranque para añadir el contenido del archivo de clave pública generado en el primer paso:vi /mnt/boot-disk/.ssh/authorized_keys
Apaga la VM temporal.
Enciende la estación de trabajo de administrador.
Usa la clave privada que se ha generado para acceder a la estación de trabajo del administrador.
ssh -i ~/.ssh/new-admin-ws.key ubuntu@"${ADMIN_WS_IP}"
Usa la clave privada recién generada para seguir accediendo a tu estación de trabajo de administrador.