En este documento, se muestra cómo crear una estación de trabajo de administrador para Google Distributed Cloud. Una estación de trabajo de administrador aloja las herramientas de la interfaz de línea de comandos (CLI) y archivos de configuración para aprovisionar clústeres durante la instalación, así como las herramientas de la CLI con el fin de interactuar con los clústeres aprovisionados después de la instalación.
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.
Las instrucciones que aparecen aquí están completas. Para obtener una introducción más breve a fin de crear una estación de trabajo de administrador, consulta Crea una estación de trabajo de administrador en la guía Crea clústeres básicos.
Existen dos maneras 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 administrada por el usuario en la computadora que elijas.
gkeadm
Antes de comenzar
Conoce la dirección del servidor de vCenter.
Conoce tu ruta de acceso del certificado de CA.
Crea uno o más proyectos de Google Cloud como se describe en Usa varios proyectos de Google Cloud.
Planifica tus cuentas de servicio
Cuando usas gkeadm
para crear una estación de trabajo de administrador, tienes la opción de dejar que gkeadm
cree la mayoría de las cuentas de servicio y claves por ti. En ese caso, gkeadm
también otorga las funciones adecuadas de Identity and Access Management a las cuentas de servicio.
Como alternativa, puedes crear tus cuentas de servicio y claves de forma manual. En ese caso, debes otorgar de forma manual las funciones de IAM a tus cuentas de servicio.
Cuando creas cuentas de servicio de forma manual, tienes más flexibilidad que permitir que gkeadm
las cree por ti:
Todas las cuentas de servicio creadas automáticamente tienen el mismo proyecto superior de Google Cloud que tu cuenta de servicio de acceso a los componentes. Cuando creas una cuenta de servicio de forma manual, puedes elegir el proyecto de Google Cloud superior.
A todas las cuentas de servicio creadas automáticamente se les otorgan roles de IAM en el proyecto superior de Google Cloud de tu cuenta de servicio de acceso a los componentes. Esto es correcto si ese es el único proyecto de Google Cloud asociado con tus clústeres. Pero si deseas asociar tus clústeres a varios proyectos de Google Cloud, necesitas la flexibilidad de otorgar roles a una cuenta de servicio en un proyecto de Google Cloud de tu elección.
Si decides crear tus propias cuentas de servicio, sigue las instrucciones que se brindan en Claves y cuentas de servicio.
Independientemente de que gkeadm
cree cuentas de servicio de forma automática por ti, hay una cuenta de servicio que debes crear de forma manual: la cuenta de servicio de acceso a componentes. A fin de obtener instrucciones para crear tu cuenta de servicio de acceso a componentes y otorgarle las funciones de IAM adecuadas, consulta Cuenta de servicio de acceso a componentes.
Hay otra cuenta de servicio que es posible que debas crear de forma manual: la cuenta de servicio de registro de auditoría. Si deseas usar un cliente de la API de GKE On-Prem para administrar tus clústeres de usuario, debes habilitar el registro de auditoría en tu clúster de administrador.
Genera plantillas para tus archivos de configuración
Descarga gkeadm
en tu directorio actual.
Genera plantillas:
./gkeadm create config
El comando anterior creó estos archivos en el directorio actual:
credential.yaml
admin-ws-config.yaml
Completa credential.yaml
En credential.yaml
, completa tu nombre de usuario y contraseña de vCenter. Por ejemplo:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
Completa admin-ws-config.yaml
Varios campos en admin-ws-config.yaml
ya se llenaron con valores predeterminados o generados. Puedes conservar los valores propagados o realizar los cambios que prefieras.
Campos que debes completar
Completa los siguientes campos obligatorios. Si deseas obtener información para completar los campos, consulta Archivo de configuración de la 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 deseas crear tu estación de trabajo de administrador dentro de una carpeta de VM de vSphere, completa el campo vCenter.folder
:
vCenter: folder: "Fill in"
Si tu estación de trabajo de administrador estará detrás de un servidor proxy, completa 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, configura ipAllocationMode
como "dhcp"
y quita la sección hostconfig
:
adminWorkstation: network: ipAllocationMode: "dhcp"
Si deseas especificar una dirección IP estática para tu estación de trabajo de administrador, configura ipAllocationMode
como "static"
y completa la sección hostconfig
:
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
Accede a Google Cloud
- Accede con cualquier Cuenta de Google. Esto establece la propiedad
account
de tu SDK:
gcloud auth login
- Verifica que la propiedad
account
de tu SDK esté configurada correctamente:
gcloud config list
- La Cuenta de Google configurada como tu propiedad de
account
de SDK se llama Cuenta de SDK. La herramienta de línea de comandos degkeadm
usa la cuenta de SDK para descargar el OVA de la estación de trabajo de administrador y habilitar los servicios en el proyecto de Google Cloud.
Si eliges hacer que gkeadm
cree cuentas de servicio automáticamente por ti, entonces gkeadm
también usa tu cuenta de SDK para crear claves y cuentas de servicio, y otorgar roles a las cuentas de servicio.
Por lo tanto, es importante que establezcas la propiedad account
de tu 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 tu SDK.
Por ejemplo:
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Otorga roles a tu cuenta del SDK
Tu cuenta de SDK debe tener el siguiente rol de IAM en el proyecto superior de Google Cloud de tu cuenta de servicio de acceso a los componentes.
El objetivo es que gkeadm
pueda habilitar servicios en el proyecto de Google Cloud.
serviceUsage.serviceUsageAdmin
Si eliges que gkeadm
cree cuentas de servicio automáticamente por ti, la cuenta del SDK también debe tener los siguientes roles en el proyecto superior de la cuenta de servicio de acceso a los componentes. Esto es para que gkeadm
pueda crear cuentas de servicio y claves.
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Para otorgar roles en un proyecto de Google Cloud, debes tener ciertos permisos en el proyecto de Cloud. Para obtener detalles, consulta Otorga, cambia y revoca el acceso a los recursos.
Si tienes los permisos necesarios, puedes otorgar las funciones tú mismo. De lo contrario, alguien de tu organización deberá otorgar las funciones por ti.
Para otorgar el rol necesaria a tu cuenta del SDK, ejecuta lo siguiente:
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto superior de Google Cloud de la cuenta de servicio de acceso a los componentes.ACCOUNT
: Es tu cuenta del SDK.
Para otorgar roles adicionales en caso de que quieras que gkeadm
cree de forma automática cuentas de servicio:
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto superior de tu cuenta de servicio de acceso a los componentes.ACCOUNT
: Es tu cuenta del SDK.
Crea tu estación de trabajo de administrador
Ingresa este comando para crear tu estación de trabajo de administrador. Si deseas que gkeadm
cree las cuentas de servicio de registro de conexión y supervisión de registros por ti, incluye la marca --auto-create-service-accounts
. Si deseas crear esas cuentas de servicio de forma manual, omite la marca.
./gkeadm create admin-workstation [--auto-create-service-accounts]
En el resultado, se 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 ubuntu@172.16.5.1 ********************************************************************
Obtén una conexión SSH a tu estación de trabajo de administrador
Cerca del final del resultado anterior, hay un comando que puedes usar para obtener una conexión SSH a tu estación de trabajo de administrador. Ingresa ese comando ahora. Por ejemplo:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
Enumera los archivos en tu estación de trabajo de administrador:
ls -1
En el resultado, puedes ver dos archivos de configuración de clúster, el archivo de certificado de CA y el archivo de claves JSON para tu cuenta de servicio de acceso a componentes. Si gkeadm
creó cuentas de servicio por ti, también puedes ver los archivos de claves JSON para esas cuentas de servicio. Por ejemplo:
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
Verifica que gkeadm
haya activado tu cuenta de servicio de acceso de componentes en la estación de trabajo de administrador:
gcloud config get-value account
Copia los archivos de claves JSON a tu estación de trabajo de administrador
Antes de crear un clúster, los archivos de claves JSON para tus cuentas de servicio deben estar en tu estación de trabajo de administrador en el directorio principal.
La clave para tu cuenta de servicio de acceso a componentes ya se encuentra en tu estación de trabajo de administrador.
Si incluiste la marca --auto-create-service-accounts
cuando ejecutaste gkeadm create admin-workstation
, las claves para las siguientes cuentas de servicio ya se encuentran en tu estación de trabajo de administrador en el directorio principal. De lo contrario, debes copiar de forma manual las claves en el directorio principal de tu estación de trabajo de administrador:
- Cuenta de servicio del registro de Connect
- Cuenta de servicio de supervisión de registros
Si creaste alguna de las siguientes cuentas de servicio, debes copiar de forma manual las claves de esas cuentas en el directorio principal de tu estación de trabajo de administrador:
- Cuenta de servicio de medición de uso
- Cuenta de servicio de registro de auditoría
- Cuenta de servicio de autorización binaria
Restablece 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 si perdiste algunos de los archivos que estaban en la estación de trabajo de administración actualizada, puedes usar este archivo de copia de seguridad para crear una estación de trabajo de administrador en la que se restaure lo que se perdió 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
Reemplaza ADMIN_WORKSTATION_NAME por el nombre de la estación de trabajo de administrador.
Administrada por el usuario
Elige una computadora que funcione como 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
- 4 núcleos de CPU
- 8 GiB RAM
- 100 GiB de almacenamiento
RHEL 8.6, 8.7 o 8.8
- 4 núcleos de CPU
- 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 y instalar herramientas, procesar solicitudes de autorización, crear cuentas de servicio y mucho más.
Para obtener información sobre las diferentes formas de conectarse a Google Cloud, consulta Conéctate a Google.
El acceso a Google Cloud puede ser directo o a través de un servidor proxy. Para obtener información sobre las reglas de firewall y la configuración de un servidor proxy, consulta Reglas de proxy y firewall.
Acceso a vCenter Server
Para crear y administrar clústeres desde tu estación de trabajo de administrador, necesitas acceso a tu instancia de vCenter Server. Para obtener información, consulta los siguientes recursos:
- Requisitos de vSphere
- Determina tu dirección del servidor de vCenter
- Obtén tu certificado raíz de CA de vCenter
Configura un servidor NTP
Cuando tu clúster está configurado para usar un servidor NTP, debes configurar un servicio de sincronización de hora en tu estación de trabajo de administrador para asegurarte de que timedatectl
informe la hora que está sincronizada con el clúster. Esto es necesario para evitar problemas de derivación del reloj grandes, que podrían causar fallas en la verificación de certificados debido a fechas de vencimiento que no coinciden.
Ubuntu
Te recomendamos que uses el servidor de hora chrony
.
Para instalar chrony
:
sudo apt-get update sudo apt install chrony
Esto proporciona dos objetos binarios:
chronyd
: Es el daemon que se sincroniza y entrega a través del protocolo NTP.chronyc
: Es la interfaz de línea de comandos del daemonchrony
.
Para configurar chronyd
, haz lo siguiente:
Edita /etc/chrony/chrony.conf
para agregar o quitar líneas de servidor. Luego, reinicia chrony
:
sudo systemctl restart chrony.service
RHEL
Te recomendamos que uses el servidor de hora chrony
.
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. Esto permite que gkectl
prepare un registro privado si se proporciona uno, configure el proxy para Docker si tu red está detrás de un servidor proxy y elimine de forma forzosa el clúster de arranque que se usa para las operaciones del ciclo de vida del clúster de administrador en caso de que la eliminación falle.
Si decides no habilitar sudo sin contraseña y deseas usar un registro privado para tu clúster de administrador, realiza la siguiente configuración manual antes de crearlo:
Coloca el certificado raíz de la AC del registro privado en este directorio:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Reemplaza REGISTRY_ADDRESS por la dirección de la máquina que ejecuta el registro privado.
Para obtener más información, consulta Verifica 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 debas borrar manualmente el clúster kind
después de crear un clúster de administrador. Para obtener más información, consulta El clúster de Kind no se borra en la documentación de solución de problemas.
Instale el software
Ubuntu
Instala el siguiente software:
Docker versión 19.03 o posterior: Consulta Instala Docker Engine en Ubuntu. Asegúrate de que el usuario no raíz sea miembro del grupo docker. Consulta Administra Docker como un usuario no raíz.
Versión más reciente de Google Cloud CLI: Consulta Instala gcloud CLI.
kubectl: Ejecuta
gcloud components install kubectl
o usaapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Instala el siguiente software:
Docker 19.03 o una versión posterior
Quita 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
Quita podman-manpages:
sudo dnf remove podman-manpages
Instala Docker 19.03+:
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
Verifica que se esté ejecutando la versión 19.03+:
sudo docker version
Compara tu resultado con el siguiente ejemplo para garantizar que las versiones de cliente y servidor sean 19.03+:
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Verifica que se ejecute Docker:
docker run hello-world
Deberías ver un resultado similar a este:
Hello from Docker!
This message shows that your installation appears to be working correctly.
La versión más reciente de Google Cloud CLI:
Consulta Instala gcloud CLI.
kubectl
Ejecuta gcloud components install kubectl
.
Acceder
La Cuenta de Google configurada como tu propiedad de account
de SDK se llama Cuenta de SDK. La herramienta de línea de comandos de gkectl
usa tu cuenta de SDK para descargar OVAs de nodos de clúster, extraer imágenes de contenedores y mucho más. Por lo tanto, es importante que configures la propiedad de tu cuenta de SDK antes de ejecutar los comandos de gkectl
.
Accede con cualquier Cuenta de Google. Esto establece la propiedad account
de tu SDK:
gcloud auth login
Verifica que la propiedad account
de tu SDK esté configurada correctamente:
gcloud config list
En el resultado, se muestran los valores de la propiedad account
de tu SDK.
Por ejemplo:
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Descarga gkectl y el paquete
Navega al directorio en el que deseas instalar gkectl
.
Descarga gkectl
.
gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Reemplaza 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 ./
Cuentas de servicio y claves
Asegúrate de haber creado las siguientes cuentas de servicio y archivos de claves JSON necesarios:
Además, asegúrate de haber creado las cuentas de servicio opcionales y los archivos de claves JSON que necesites:
Coloca todos tus archivos de claves JSON en el directorio principal de tu estación de trabajo de administrador.
Soluciona problemas
En la siguiente sección, se vuelve a habilitar el acceso SSH a la estación de trabajo de administrador en caso de que se pierda o se dañe la clave SSH.
Recuperación de claves SSH
Usa una VM temporal para realizar los siguientes pasos:
Para generar un nuevo conjunto de claves SSH, sigue las instrucciones que se indican en Crea claves SSH en la documentación de Compute Engine.
Asegúrate de que la VM 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 del administrador a la VM temporal.
El disco de arranque tiene la etiqueta
Hard disk 1
.Ejecuta los siguientes comandos para activar el disco de arranque dentro de la VM:
sudo mkdir -p /mnt/boot-disk sudo mount DISK_ID /mnt/boot-disk
Reemplaza
DISK_ID
por el identificador de disco de arranque, que debería tener un formato similar adev/sdc1
.Edita el archivo
authorized_keys
en el disco de arranque para agregar el contenido del archivo de clave pública que se generó 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 recién generada para acceder a la estación de trabajo de 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.
¿Qué sigue?
Crear un clúster de administrador