Crea una estación de trabajo de administrador mediante DHCP

En esta página, se explica cómo crear una estación de trabajo de administrador que use el protocolo de configuración dinámica de host (DHCP) para obtener la dirección IP.

Si deseas crear una estación de trabajo de administrador que tenga una dirección IP estática, consulta Crea una estación de trabajo de administrador.

Descripción general

La estación de trabajo de administrador es una VM de vSphere que contiene todas las herramientas que necesitas para crear y administrar clústeres de GKE On-Prem. Para crear la estación de trabajo de administrador, realiza los siguientes pasos que se describen en este tema:

  • Descarga el archivo Open Virtual Appliance (OVA) de la estación de trabajo de administrador, una imagen comprimida de la VM de la estación de trabajo de administrador.
  • Usa govc, la interfaz de línea de comandos para vSphere, a fin de importar el OVA a vSphere como una plantilla de VM.
  • Copia y propaga los archivos de configuración de HashiCorp Terraform.
  • Usa la versión 0.11 de Terraform para crear la VM de la estación de trabajo de administrador.

Crea una clave para tu cuenta de servicio incluida en la lista de anunciantes permitidos.

Si aún no tienes un archivo de claves JSON para la cuenta de servicio incluida en la lista de anunciantes permitidos, crea uno ahora:

  1. gcloud auth login
  2. gcloud iam service-accounts keys create whitelisted-key.json \
    --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]
    

En el ejemplo anterior, [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] es la dirección de correo electrónico de la cuenta de servicio incluida en la lista de anunciantes permitidos.

Descarga el OVA de la estación de trabajo de administrador

El OVA de la estación de trabajo de administrador incluye todos los componentes del clúster, las herramientas de línea de comandos y otras entidades necesarias para instalar y administrar clústeres de GKE On-Prem.

Activa tu cuenta de servicio incluida en la lista de anunciantes permitidos:

gcloud auth activate-service-account --key-file [KEY_ALLOWLISTED_ACCOUNT]

En el ejemplo anterior, [KEY_ALLOWLISTED_ACCOUNT] es la ruta de acceso del archivo de claves JSON de la cuenta de servicio incluida en la lista de anunciantes permitidos.

Descarga la versión más reciente del OVA de la estación de trabajo de administrador y su archivo de firma:

gsutil cp gs://gke-on-prem-release/admin-appliance/1.3.2-gke.1/gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1.{ova,ova.1.sig} ./

Verifica el OVA mediante openssl

Verifica el archivo OVA que descargaste con la clave pública mediante openssl:

openssl dgst -verify - -signature gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1.ova.1.sig gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1.ova <<'EOF'
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
-----END PUBLIC KEY-----
EOF

El resultado de este comando debería ser Verified OK.

Usa govc para importar el OVA a vSphere y marcarlo como una plantilla de VM

En las siguientes secciones, harás lo siguiente:

  1. Crear algunas variables que declaren elementos de vCenter Server y del entorno de vSphere
  2. Importar el OVA de la estación de trabajo de administrador a vSphere y marcarlo como una plantilla de VM

Crea variables para govc

Antes de importar el OVA de la estación de trabajo de administrador a vSphere, debes proporcionar a govc algunas variables que declaren los elementos de vCenter Server y el entorno de vSphere:

export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk
export GOVC_USERNAME=[VCENTER_SERVER_USERNAME]
export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD]
export GOVC_DATASTORE=[VSPHERE_DATASTORE]
export GOVC_DATACENTER=[VSPHERE_DATACENTER]
export GOVC_INSECURE=true

Puedes elegir usar el grupo de recursos predeterminado de vSphere o crear el tuyo:

# If you want to use a resource pool you've configured yourself, export this variable:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources

Donde:

  • [VCENTER_SERVER_ADDRESS] es la dirección IP o el nombre de host de vCenter Server.
  • [VCENTER_SERVER_USERNAME] es el nombre de usuario de una cuenta que contiene la función de administrador o privilegios equivalentes en vCenter Server.
  • [VCENTER_SERVER_PASSWORD] es la contraseña de la cuenta de vCenter Server.
  • [VSPHERE_DATASTORE] es el nombre del almacén de datos que configuraste en el entorno de vSphere.
  • [VSPHERE_DATACENTER] es el nombre del centro de datos que configuraste en el entorno de vSphere.
  • [VSPHERE_CLUSTER] es el nombre del clúster que configuraste en el entorno de vSphere.
  • Para usar un grupo de recursos no predeterminado
  • [VSPHERE_RESOURCE_POOL] es el nombre del grupo de recursos que configuraste en el entorno de vSphere.

Crea variables para el proxy

Si usas un proxy, exporta las variables de la dirección HTTP y HTTPS, en las que [PROXY_ADDRESS] es la dirección IP o el nombre de host del proxy:

export HTTP_PROXY=http://[PROXY_ADDRESS]
export HTTPS_PROXY=https://[PROXY_ADDRESS]

Importa el OVA a vSphere: Interruptor estándar

Si usas un interruptor estándar vSphere, importa el archivo OVA a vSphere mediante este comando:

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true
}
EOF

Importa el archivo OVA a vSphere: Interruptor distribuido

Si usas un interruptor distribuido vSphere, importa el OVA a vSphere mediante este comando, en el que [YOUR_DISTRIBUTED_PORT_GROUP_NAME] es el nombre del grupo de puertos distribuido:

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true,
  "NetworkMapping": [
      {
          "Name": "VM Network",
          "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]"
      }
  ]
}
EOF

Copia los archivos de configuración de Terraform

Crea un directorio para los archivos de Terraform:

mkdir [TERRAFORM_DIR]

En el ejemplo anterior, [TERRAFORM_DIR] es la ruta de acceso del directorio en el que quieres almacenar los archivos de Terraform.

Copia los siguientes archivos TF y TFVARS y, luego, guárdalos en [TERRAFORM_DIR]/terraform.tf y [TERRAFORM_DIR]/terraform.tfvars, respectivamente.

El archivo TF es el archivo de configuración de HCL de Terraform que realiza la creación de la VM.

Crea una clave SSH

Crea una clave SSH para que puedas establecer una conexión SSH a la estación de trabajo de administrador desde tu laptop o estación de trabajo local. En los sistemas operativos basados en Linux, puedes usar ssh-keygen:

ssh-keygen -t rsa -f ~/.ssh/vsphere_workstation -N ""

Modifica el archivo TFVARS

Abre terraform.tfvars en un editor de texto y proporciona valores para las siguientes variables. Puedes acceder a vCenter Client para encontrar muchos de estos valores:

vcenter_user

Proporciona una cuenta de usuario de vCenter Server como una string. La cuenta de usuario debe tener la función de administrador o privilegios equivalentes (consulta los requisitos de vSphere).

Por ejemplo:

vcenter_user = "administrator@vsphere.local"

vcenter_password

Proporciona la contraseña de la cuenta de usuario de vCenter Server como una string. Por ejemplo:

vcenter_password = "#STyZ2T#Ko2o"

vcenter_server

Proporciona la dirección de vCenter Server (IP o nombre de host) como una string. Por ejemplo:

vcenter_server = "198.51.100.2"

ssh_public_key_path

Proporciona la ruta de acceso a la clave pública SSH. La creaste en un paso anterior:

ssh_public_key_path = "~/.ssh/vsphere_workstation.pub"

vm_name

Proporciona un nombre de tu elección para la estación de trabajo de administrador. Por ejemplo:

vm_name = "my-admin-workstation"

datastore

Proporciona el nombre del almacén de datos de vSphere como una string. Por ejemplo:

datastore = "MY-DATASTORE"

datacenter

Proporciona el nombre del centro de datos de vSphere como una string. Por ejemplo:

datacenter = "MY-DATACENTER"

cluster

Proporciona el nombre del clúster de vSphere como una string. Por ejemplo:

cluster = "MY-CLUSTER"

resource_pool

Si usas un grupo de recursos que no sea el predeterminado, proporciona el nombre del grupo de recursos de vSphere como una string. Por ejemplo:

resource_pool = "MY-POOL"

Si usas el grupo de recursos predeterminado, proporciona el siguiente valor:

resource_pool = "[MY_CLUSTER]/Resources"

En el ejemplo anterior, [MY_CLUSTER] es el nombre de tu clúster de vSphere.

Consulta Specifying the root resource pool for a standalone host (Especifica el grupo de recursos raíz de un host independiente).

network

Proporciona la red de vSphere en la que deseas crear la estación de trabajo de administrador como una string. Por ejemplo:

network = "MY-VM-NETWORK"

vm_template

Proporciona el nombre de la plantilla de VM como una string. Creaste e importaste el OVA y lo marcaste como una plantilla en un paso anterior. Ten en cuenta que el nombre de la plantilla no tiene la extensión .ova.

vm_template = "gke-on-prem-admin-appliance-vsphere-1.3.2-gke.1"

Crea la estación de trabajo de administrador

Ahora estás listo para crear la VM de la estación de trabajo de administrador. Usa la versión 0.11 de Terraform para los pasos de esta sección.

  1. Ve al directorio que contiene los archivos de configuración de Terraform (TF y TFVARS):

  2. Inicializa Terraform en el directorio y aplica la configuración. Esto puede tomar algunos minutos:

    terraform init && terraform apply -auto-approve -input=false

Establece una conexión SSH en la estación de trabajo de administrador

  1. Ve al directorio que contiene los archivos de configuración de Terraform.

  2. Recupera la dirección IP de la estación de trabajo de administrador:

    terraform output ip_address

    Toma nota de la dirección IP de la estación de trabajo de administrador.

  3. Establece una conexión SSH a la estación de trabajo de administrador mediante la clave SSH y la dirección IP:

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[ADMIN_WORKSTATION_IP_ADDRESS]
    

Verifica que la estación de trabajo de administrador esté configurada de manera correcta

Verifica que gkectl y docker estén instalados en la estación de trabajo de administrador:

gkectl version
docker version

Configura el servidor de NTP en la estación de trabajo de administrador

De forma predeterminada, la estación de trabajo de administrador usa ntp.ubuntu.com como su servidor de protocolo NTP. Si la organización usa un servidor de hora diferente, configura la estación de trabajo de administrador para que use el mismo servidor de NTP que el resto de la organización.

Ingresa los siguientes comandos para configurar el servidor de NTP en la estación de trabajo de administrador:

sudo mkdir -p /etc/systemd/timesyncd.conf.d/

sudo bash -c "cat >> /etc/systemd/timesyncd.conf.d/cloud-init.conf" << EOF
[Time]
NTP=[NTP_SERVER]
EOF

sudo systemctl restart systemd-timesyncd
timedatectl status

En el ejemplo anterior, [NTP_SERVER] es el nombre de host o la dirección IP del servidor de NTP.

Para verificar que el servidor de NTP esté funcionando, ingresa el siguiente comando:

timedatectl

El resultado es similar al siguiente ejemplo:

                      Local time: Tue 2019-12-17 00:21:50 UTC
                  Universal time: Tue 2019-12-17 00:21:50 UTC
                        RTC time: Tue 2019-12-17 00:21:50
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Soluciona problemas

Se muestra el error AccessDeniedException mientras se descarga el OVA

Síntomas

Si intentas descargar el OVA y la firma de la estación de trabajo de administrador, se muestra el siguiente error:

AccessDeniedException: 403 whitelisted-service-account@project.iam.gserviceaccount.com does not have storage.objects.list access to gke-on-prem-release
Causas posibles

Tu cuenta de servicio incluida en la lista de anunciantes permitidos no está activada.

Solución

Asegúrate de haber activado tu cuenta de servicio incluida en la lista de anunciantes permitidos. Si el problema persiste, comunícate con Google para obtener asistencia.

openssl no puede validar el OVA de la estación de trabajo de administrador

Síntomas

Si ejecutas openssl dgst en el archivo OVA de la estación de trabajo de administrador, no se muestra el mensaje Verified OK.

Causas posibles

Hay un problema en el archivo OVA que impide que la validación se realice con éxito.

Solución

Vuelve a descargar y a implementar el OVA de la estación de trabajo de administrador, como se indica en Descarga el OVA de la estación de trabajo de administrador. Si el problema persiste, comunícate con Google para obtener asistencia.

Para obtener más información, consulta Soluciona problemas.