Después de asociar una instancia de VMware Cloud Director a un SDDC en VMware Cloud Director service, es posible que no pueda realizar varias tareas.
Problema
Después de asociar una instancia de VMware Cloud Director a un SDDC mediante VMware Proxy Service, es posible que vCenter Server se muestre como desconectado. Cuando intenta actualizar o volver a conectar, se produce un error con una excepción de red, como SocketTimeoutException
.
No puede abrir una consola de máquina virtual ni cargar y descargar archivos OVF y OVA.
No se pueden agregar, editar ni eliminar recursos de red, como grupos de redes, redes externas o puertas de enlace Edge.
Cuando VMware Cloud Director realiza llamadas de API a NSX, en vcd-debug-container.log, se ven entradas similares a Received Response: 503
.
Causa
Esto sucede porque la instancia de VMware Cloud Director no puede comunicarse con vCenter Server, con los hosts ESXi ni con NSX a través de VMware Proxy Service.
Esto se debe a dos posibles motivos.
La comunicación entre VMware Cloud Director y VMware Proxy Service es errónea, o la comunicación entre VMware Cloud Director y la máquina virtual proxy que implementó durante la asociación de instancias con SDDC de VMware Cloud on AWS se lleva a cabo correctamente, pero se produce un error en la conexión entre el servicio de proxy y vCenter Server o NSX.
Requisitos previos
- Busque la máquina virtual cliente de VMware Reverse Proxy que implementó al realizar la asociación entre el SDDC y la instancia de VMware Cloud Director en el grupo de recursos de la interfaz de usuario de vCenter Server.
- Inicie sesión en el sistema operativo de la máquina virtual cliente de VMware Reverse Proxy como raíz.
Sugerencia: Puede encontrar la contraseña del usuario
raíz en las propiedades de vApp de la máquina virtual en
root-password
.
Solución
- Para comprobar que la máquina virtual tenga conectividad de red, ejecute el comando
transporter-status.sh
.
Si la máquina virtual está conectada, el comando devolverá el estado como
UP
y el estado de
command_channel_1
y
command_channel_2
como
CONNECTED
.
- Compruebe que la máquina virtual cliente de VMware Reverse Proxy tenga una dirección IPv4 válida.
- Desplácese hasta la máquina virtual en el grupo de recursos de vCenter Server y compruebe si la máquina virtual tiene una dirección IPv4 válida.
- Si la máquina virtual no tiene una dirección IPv4 válida, elija una de las siguientes opciones.
- Ejecute una solicitud cURL para la URL donde se almacenan las imágenes más recientes de la máquina virtual cliente de VMware Reverse Proxy.
- Desde el sistema operativo de la máquina virtual cliente de VMware Reverse Proxy, ejecute una solicitud cURL a VMware Proxy Service.
curl -v <VMware-Proxy-Service-IP-address>
Puede encontrar la dirección IP de VMware Proxy Service en las propiedades de vApp de la máquina virtual cliente de VMware Reverse Proxy, en
reverse-proxy-host
.
El comando devuelve un resultado similar al siguiente.
Connected to <VMware-Proxy-Service-IP-address> port 80
- Compruebe que no haya reglas de firewall ni ningún otro problema de red que impida que la máquina virtual cliente de VMware Reverse Proxy haga ping a vCenter Server, NSX y ESXi.
Si la lista de destinos permitidos incluye una notación CIDR y no puede acceder a uno de los hosts que contiene, compruebe que puede hacer ping al host específico. Si lo consigue, agregue la dirección IP del host o el FQDN a la lista como una entrada independiente.
- Compruebe que la máquina virtual cliente de VMware Reverse Proxy esté utilizando un token de API válido.
Puede encontrar el token de API actual en las propiedades de vApp de la máquina virtual cliente de VMware Reverse Proxy en
csp-token
.
- Ejecute una solicitud POST en https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize con
refresh_token={your-api-token-value}
en el cuerpo de la solicitud.
Por ejemplo:
curl --location --request POST 'https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize' \
--header 'Accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: incap_ses_8217_1285679=sJfafQlQfgUmPGK0X6YIckRAaWIAAAAAZ5DsTuKH0eALPsXXCrk1Lw==; nlbi_1285679=qGFfKYa/khghkd06+iiRRwAAAAA7h7npdR2O1o9/MIk2Plre' \
--data-urlencode 'refresh_token=<your-csp-token>'
Si el token de API ha caducado, la solicitud devolverá el error Invalid Token
o 400 Bad Request
. Consulte Cómo renovar el token de API para la máquina virtual cliente de VMware Reverse Proxy.
Si el token de API es válido, la solicitud devuelve una respuesta que contiene un token de acceso, por ejemplo:
{
"id_token": "eyJhbGciOiJS.......srRmGX9eYKOKMA",
"token_type": "bearer",
"expires_in": 1799,
"scope": "ALL_PERMISSIONS openid group_ids group_names",
"access_token": "eyJhbGciOiJSU.........Q6Y9Yohgw",
"refresh_token": "B4STbh2fYFmjI9ABCv..............XeRniDiO4cBJjF82sWWprZfm7OLHn"
}
La parte relevante es access_token
, que siempre comienza con "ey"
, y es un token web JSON (JWT).
- Copie
access_token
y péguelo en la sección Codificado en https://jwt.io/.
- Compruebe que en la carga útil,
context_name
contenga el identificador de organización de VMware Cloud y que la sección Perms
contenga la función provider:network.