Crea una estación de trabajo de administrador

En esta página, se explica cómo crear la última versión de la máquina virtual (VM) de la estación de trabajo de administrador.

Para actualizar una estación de trabajo de administrador existente, consulta Actualiza GKE On-Prem.

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, sigue los siguientes pasos que se describen en este tema:

  • Descarga el archivo Open Virtual Device (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 Terraform para crear la VM.

Antes de comenzar

  1. Lee la descripción general de la estación de trabajo de administrador.
  2. Completa los pasos de Prepárate para la instalación.
  3. Comprueba que instalaste govc.
  4. Verifica que hayas instalado la versión 0.11 de Terraform.

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

Descarga la última versión del OVA de la estación de trabajo de administrador desde el tema Descargas. El archivo OVA más reciente es el siguiente:

gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova

en el que 1.1.2-gke.0 es la última versión de GKE On-Prem. 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. La última OVA incluye la última versión de estas entidades.

Guarda este archivo en algún lugar de la computadora que uses para crear la estación de trabajo de administrador.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • [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.

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.1.2-gke.0.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.1.2-gke.0.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

  1. Crea un directorio para tus archivos de Terraform:

    mkdir "[TERRAFORM_DIR]"
    

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

  2. Copia una de las siguientes configuraciones de Terraform, dependiendo de si deseas especificar una dirección IP estática para tu estación de trabajo de administrador o usar un servidor DHCP a fin de obtener una dirección IP.

    Asegúrate de copiar los archivos TF y TFVARS. El archivo TF es la configuración HCL de Terraform que realiza la creación de la VM.

  3. Guarda la configuración en [TERRAFORM_DIR]/terraform.tf y [TERRAFORM_DIR]/terraform.tfvars, respectivamente.

DHCP

IP estática

Crea una clave pública SSH

Crea una clave pública 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 del sistema). 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.0"

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 del administrador:

vm_name = "admin-workstation"

datastore

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

datastore = "MY-DATASTORE"

datacenter

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

datacenter = "MY-DATACENTER"

cluster

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

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:

resource_pool = "MY-POOL"

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

resource_pool = "MY-CLUSTER/Resources"

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 = "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:

vm_template = "gke-on-prem-admin-appliance-vsphere-[VERSION]"

Usa una dirección IP estática para tu estación de trabajo de administrador

Si deseas usar una IP estática para tu estación de trabajo de administrador, copia el archivo TF y TFVARS de la IP estática. En el archivo TFVAR, ingresa valores para las siguientes variables:

ipv4_address

Proporciona una dirección IP estática IPv4 para la estación de trabajo de administrador. Por ejemplo:

ipv4_address = "203.0.113.0"

ipv4_netmask_prefix_length

Proporciona la cantidad de bits en la máscara de subred de la red en la que deseas crear tu estación de trabajo de administrador. Por ejemplo:

ipv4_netmask_prefix_length = "22"

ipv4_gateway

Proporciona la puerta de enlace de la subred en la que se creará la estación de trabajo de administrador. Consulta la documentación de VMware vsphere_virtual_machine.

Por ejemplo:

ipv4_gateway = "198.51.100.0

dns_nameservers

Proporciona los servidores de nombres de DNS que usará la estación de trabajo de administrador separados por coma. Por ejemplo:

dns_nameservers = "8.8.8.8,8.8.4.4"

Crea la estación de trabajo de administrador

Luego de completar los pasos anteriores, estás listo para crear la VM de la estación de trabajo de administrador:

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

    cd [TERRAFORM_DIR]
    
  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 tu estación de trabajo de administrador

  1. Cambia al directorio que contiene tus 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 o expórtala como una variable en tu shell.

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

    ssh -i ~/.ssh/vsphere_workstation ubuntu@$(terraform output ip_address)

    O bien, si solo quieres usar su dirección, ejecuta lo siguiente:

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

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

Verifica que gkectl y docker estén instalados:

gkectl version
docker version

Configura el proxy para tu estación de trabajo de administrador

Si tu entorno está detrás de un proxy, sigue las secciones que se encuentran a continuación para configurar Google Cloud CLI y Docker a fin de usar tu proxy.

Configura Google Cloud CLI para usar tu proxy

Completa los siguientes pasos desde la VM de la estación de trabajo de administrador.

Si usas un proxy para conectarte a Internet desde tu laptop o estación de trabajo, debes configurar Google Cloud CLI para el proxy, de modo que puedas ejecutar los comandos de gcloud y gsutil. Si deseas obtener instrucciones, consulta Configura la CLI de gcloud para usarla detrás de un proxy o firewall.

Configura un registro de Docker para que extraiga a través de tu proxy

Completa los siguientes pasos desde la VM de la estación de trabajo de administrador.

Si quieres usar un registro de Docker y tu red se ejecuta detrás de un proxy, debes configurar el daemon de Docker que se ejecuta en tu estación de trabajo de administrador para extraer imágenes a través de tu proxy:

  1. Recopila las direcciones de tus proxies HTTP y HTTPS.

  2. Recopila las direcciones IP y los nombres de host de cada host con el que necesites comunicarte sin necesidad de un proxy, incluidos los siguientes:

    • La dirección IP del servidor de vCenter
    • Las direcciones IP de todos los hosts de ESXi
    • Direcciones IP que deseas configurar en tu balanceador de cargas
    • El rango 192.168.0.0/16

    En tu estación de trabajo de administrador, agrega estas direcciones a la variable no_proxy:

    printf -v no_proxy '%s,' [ADDRESSES];
    

    De manera opcional, puedes exportar el rango a una variable de entorno para referencia posterior. Ten en cuenta que las aplicaciones y los procesos pueden usar esta variable:

    export no_proxy="${no_proxy%,}";
  3. Abre el archivo de configuración de Docker, almacenado en /root/.docker/config.json, /home/[USER]/.docker/config.json o en otro lugar, según tu configuración.

  4. En config.json, agrega las siguientes líneas:

    "proxies": {
    
    "default": {
           "httpProxy": "[HTTP_PROXY]",
           "httpsProxy": "[HTTPS_PROXY]",
           "noProxy": "[ADDRESSES]"
               }
    }

    En el ejemplo anterior, se ilustra lo siguiente:

    • [HTTP_PROXY] es el proxy HTTP, si tienes uno.
    • [HTTPS_PROXY] es tu proxy HTTPS, si tienes uno.
    • [ADDRESSES] es una lista delimitada por comas de nombres de host y direcciones que necesitas para comunicarte sin proxy.
  5. Reinicia Docker para que se apliquen los cambios:

    sudo systemctl restart docker

Solución de problemas

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

Límite de sesiones del proveedor de vSphere de Terraform

GKE On-Prem usa el proveedor de vSphere de Terraform para abrir las VM en tu entorno de vSphere. El límite de sesiones del proveedor es de 1,000 sesiones. La implementación actual no cierra las sesiones activas después de su uso. Es posible que experimentes errores 503 si tienes demasiadas sesiones en ejecución.

Las sesiones se cierran de forma automática después de 300 segundos.

Síntomas

Si tienes demasiadas sesiones en ejecución, es posible que encuentres el siguiente error:

Error connecting to CIS REST endpoint: Login failed: body:
  {"type":"com.vmware.vapi.std.errors.service_unavailable","value":
  {"messages":[{"args":["1000","1000"],"default_message":"Sessions count is
  limited to 1000. Existing sessions are 1000.",
  "id":"com.vmware.vapi.endpoint.failedToLoginMaxSessionCountReached"}]}},
  status: 503 Service Unavailable
Causas posibles

Hay demasiadas sesiones de proveedor de Terraform en ejecución en el entorno.

Solución

Por el momento, esto funciona según lo previsto. Las sesiones se cierran de forma automática después de 300 segundos. Para obtener más información, consulta el problema n.º 618 de GitHub.

Usa un proxy para Docker: oauth2: cannot fetch token

Síntomas

Mientras uses un proxy, verás el siguiente error:

oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: proxyconnect tcp: tls: oversized record received with length 20527
Causas posibles

Es posible que hayas proporcionado un proxy HTTPS en lugar de HTTP.

Solución

En tu configuración de Docker, cambia la dirección del proxy por http:// en lugar de https://.

Verifica que las licencias sean válidas

Recuerda verificar que tus licencias sean válidas, en especial si usas licencias de prueba. Es posible que encuentres fallas inesperadas si tus licencias de F5, host de ESXi o vCenter vencieron.

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.

¿Qué sigue?