VMware Cloud Director service에서 VMware Cloud Director 인스턴스를 SDDC와 연결한 후 다양한 작업을 수행하지 못할 수 있습니다.

문제

VMware Proxy Service를 사용하여 VMware Cloud Director 인스턴스를 SDDC에 연결한 후 vCenter Server에서 연결이 끊긴 것으로 표시될 수 있습니다. 새로 고치거나 다시 연결하려고 하면 SocketTimeoutException과 같은 네트워킹 예외가 발생합니다.

VM 콘솔을 열거나 OVF 및 OVA 파일을 업로드 및 다운로드할 수 없습니다.

네트워크 풀, 외부 네트워크 또는 Edge 게이트웨이와 같은 네트워킹 리소스는 추가, 편집 또는 삭제할 수 없습니다.

VMware Cloud Director에서 NSX에 대해 API 호출을 수행하면 vcd-debug-container.log에서 Received Response: 503과 유사한 항목이 표시됩니다.

참고: VMware Cloud Director service 프록시 클라이언트 장치의 최신 버전에서는 diagnose.sh 문제 해결 명령을 사용하여 장치의 문제를 진단할 수 있습니다. VMware Cloud Director service 프록시 클라이언트 장치의 문제를 해결하는 방법 항목을 참조하십시오. diagnose.sh 명령을 실행하려고 하며 이로 인해 오류가 발생하면 아래에 설명된 문제 해결 지침을 따르십시오.

원인

이 문제는 VMware Cloud Director 인스턴스가 VMware Proxy Service를 통해 vCenter Server, ESXi 호스트 또는 NSX와 통신할 수 없기 때문에 발생합니다.

여기에는 두 가지 가능한 이유가 있습니다.

VMware Cloud DirectorVMware Proxy Service 간의 통신이 실패하거나, 인스턴스를 VMware Cloud on AWS SDDC에 연결하는 동안 배포한 VMware Cloud Director와 프록시 VM 간에 통신은 성공적으로 수행되지만 프록시 서비스와 vCenter Server 또는 NSX 간의 연결은 실패합니다.

사전 요구 사항

  1. SDDC와 vCenter Server UI의 리소스 풀에 있는 VMware Cloud Director 인스턴스 간의 연결을 수행할 때 배포한 VMware 역방향 프록시 클라이언트 VM을 찾습니다.
  2. 역방향 프록시 클라이언트 VM의 OS에 root로 로그인합니다.
    팁: root-password의 VM의 vApp 속성에서 root 사용자의 암호를 찾을 수 있습니다.

해결책

  • VM에 네트워크 연결이 있는지 확인하려면 transporter-status.sh 명령을 실행합니다.
    VM이 연결된 경우 명령은 상태를 UP으로 반환하고 command_channel_1command_channel_2의 상태를 CONNECTED로 반환합니다.
  • VMware 역방향 프록시 클라이언트 VM에 유효한 IPv4 주소가 있는지 확인합니다.
    1. vCenter Server의 리소스 풀에서 VM으로 이동하여 VM에 올바른 IPv4 주소가 있는지 확인합니다.
    2. VM에 유효한 IPv4 주소가 없는 경우 다음 중 하나를 선택합니다.
      • [네트워크] 탭을 클릭한 다음 유효한 DHCP 프로파일이 있는 네트워크를 선택합니다.
      • VM의 OS에 로그인하고 다음 명령을 실행하여 IPv4 주소를 수동으로 할당합니다.
        sudo ifconfig ens160 IPv4-address netmask mask
        sudo route add default gw gateway-address ens160
  • VMware 역방향 프록시 클라이언트 VM의 최신 이미지가 저장된 URL에 대한 cURL 요청을 실행합니다.
  • VMware 역방향 프록시 클라이언트 VM의 OS에서 VMware 프록시 서비스에 대한 cURL 요청을 실행합니다.
    curl -v <VMware-Proxy-Service-IP-address>
    VMware 프록시 서비스 IP 주소는 reverse-proxy-host에서 VMware 역방향 프록시 클라이언트 VM의 vApp 속성에서 찾을 수 있습니다.
    이 명령은 다음과 유사한 결과를 반환합니다.
    Connected to <VMware-Proxy-Service-IP-address> port 80
  • VMware 역방향 프록시 클라이언트 VM이 vCenter Server, NSXESXi를 ping하지 못하게 하는 방화벽 규칙 또는 기타 네트워킹 문제가 없는지 확인합니다.
    허용되는 대상 목록에 CIDR 표기법이 포함되어 있고 해당 목록에 포함된 호스트 중 하나에 연결할 수 없는 경우 특정 호스트를 ping할 수 있는지 확인합니다. 성공하면 호스트 IP 주소 또는 FQDN을 별도의 항목으로 목록에 추가합니다.
  • VMware 역방향 프록시 클라이언트 VM이 유효한 API 토큰을 사용하고 있는지 확인합니다.
    현재 API 토큰은 csp-token에서 VMware 역방향 프록시 클라이언트 VM의 vApp 속성에서 찾을 수 있습니다.
    1. 요청 본문에 refresh_token={your-api-token-value}을 사용하여 https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize에 대한 POST 요청을 실행합니다.
      예:
      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>'

      API 토큰이 만료된 경우 요청은 Invalid Token 또는 400 Bad Request 오류를 반환합니다. VMware 역방향 프록시 클라이언트 VM에 대한 API 토큰을 갱신하는 방법을 참조하십시오.

      API 토큰이 유효한 경우 요청은 액세스 토큰이 포함된 응답을 반환합니다. 예:
      {
        "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"
      }

      관련 부분은 항상 "ey"로 시작되는 access_token이며 JWT(JSON Web Token)입니다.

    2. access_token을 복사한 후 https://jwt.io/Encoded 섹션에 붙여넣습니다.
    3. 페이로드에서 context_nameVMware Cloud 조직의 조직 ID가 포함되어 있고 Perms 섹션에 provider:network 역할이 포함되어 있는지 확인합니다.
      이러한 조건이 충족되지 않으면 API 토큰을 갱신합니다. VMware 역방향 프록시 클라이언트 VM에 대한 API 토큰을 갱신하는 방법을 참조하십시오.