Crear una estación de trabajo de administrador

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 comandos gkectl.
  • 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.

Instala Google Cloud CLI.

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

  1. Inicia sesión con cualquier cuenta de Google. De esta forma, se define la propiedad account de tu SDK:
gcloud auth login
  1. Verifica que la propiedad de tu SDK account esté configurada correctamente:
gcloud config list
  1. 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 comandos gkeadm 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 Cloud

  • ACCOUNT: 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 componentes

  • ACCOUNT: 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:

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 red
  • chronyc: la interfaz de línea de comandos del daemon chrony

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:

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:

sudo apt-get update
sudo apt-get -y install kubectl

RHEL - 6, 7

Instala el siguiente software:

Docker 19.03 o versiones posteriores

  1. 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
    
  2. Elimina podman-manpages:

    sudo dnf remove podman-manpages
    
  3. 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
    
  4. Comprueba que ahora estés usando la versión 19.03 o una posterior:

    sudo docker version
    
  5. 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
    
  6. 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:

  1. 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.

  2. Verifica que la máquina virtual temporal y la estación de trabajo de administrador estén en estado Powered Off.

  3. 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.

  4. 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 a dev/sdc1.

  5. 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
    
  6. Apaga la VM temporal.

  7. Enciende la estación de trabajo de administrador.

  8. 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.

Siguientes pasos