VMware Cloud Director service 中將 VMware Cloud Director 執行個體與 SDDC 建立關聯之後,您可能無法執行各種工作。

問題

使用 VMware Proxy ServiceVMware Cloud Director 執行個體與 SDDC 建立關聯之後,vCenter Server 可能顯示為已中斷連線。如果您嘗試重新整理或重新連線,則會導致失敗與網路例外狀況,例如 SocketTimeoutException

您無法開啟虛擬機器主控台,也無法上傳和下載 OVF 和 OVA 檔案。

您無法新增、編輯或刪除網路資源,例如網路集區、外部網路或 Edge 閘道。

VMware Cloud DirectorNSX 進行 API 呼叫時,在 vcd-debug-container.log 中,您會看到類似於 Received Response: 503 的項目。

備註: 在較新版本的 VMware Cloud Director service Proxy 用戶端應用裝置中,您可以使用 diagnose.sh 疑難排解命令,來診斷應用裝置的問題。請參閱 如何對 VMware Cloud Director service Proxy 用戶端應用裝置進行疑難排解。如果您嘗試執行 diagnose.sh 命令並導致錯誤,請遵循下面所述的疑難排解指示。

原因

發生此情況的原因是,VMware Cloud Director 執行個體無法透過 VMware Proxy ServicevCenter ServerESXi 主機或 NSX 進行通訊。

發生此情況的可能原因有兩個。

VMware Cloud DirectorVMware Proxy Service 之間的通訊失敗,或者 VMware Cloud Director 與在建立執行個體關聯至 VMware Cloud on AWS SDDC 期間部署的 Proxy 虛擬機器之間通訊成功,但 Proxy 服務與 vCenter ServerNSX 之間的連線失敗。

必要條件

  1. vCenter Server 使用者介面的資源集區中找到在執行 SDDC 與 VMware Cloud Director 執行個體關聯時部署的 VMware 反向 Proxy 用戶端虛擬機器。
  2. 使用者身分登入反向 Proxy 用戶端虛擬機器的作業系統。
    提示: 您可以在虛擬機器 vApp 內容的 root-password 下找到 使用者的密碼。

解決方案

  • 若要驗證虛擬機器是否具有網路連線,請執行 transporter-status.sh 命令。
    如果虛擬機器已連線,該命令會傳回 UP 的狀態,且 command_channel_1command_channel_2 的狀態為 CONNECTED
  • 確認 VMware 反向 Proxy 用戶端虛擬機器具有有效的 IPv4 位址。
    1. vCenter Server 的資源集區中導覽至虛擬機器,然後檢查該虛擬機器是否具有有效的 IPv4 位址。
    2. 如果虛擬機器沒有有效的 IPv4 位址,請選取下列其中一項。
      • 按一下 [網路] 索引標籤,然後選取具有有效 DHCP 設定檔的網路。
      • 登入至虛擬機器的作業系統,然後透過執行下列命令,手動為其指派 IPv4 位址。
        sudo ifconfig ens160 IPv4-address netmask mask
        sudo route add default gw gateway-address ens160
  • 對儲存 VMware 反向 Proxy 用戶端虛擬機器最新映像的 URL 執行 cURL 要求。
  • 從 VMware 反向 Proxy 用戶端虛擬機器的作業系統中,對 VMware Proxy Service 執行 cURL 要求。
    curl -v <VMware-Proxy-Service-IP-address>
    您可以在 VMware 反向 Proxy 用戶端虛擬機器 vApp 內容的 reverse-proxy-host 下找到 VMware Proxy 服務 IP 位址。
    命令傳回的結果與以下內容類似。
    Connected to <VMware-Proxy-Service-IP-address> port 80
  • 確認沒有防止 VMware 反向 Proxy 用戶端虛擬機器對 vCenter ServerNSXESXi 執行 Ping 的防火牆規則或任何其他網路問題。
    如果允許的目標清單包含 CIDR 標記法,並且您無法連線其中的一個主機,請確認您是否可以對特定主機執行 Ping。如果可以成功執行 Ping,請將主機 IP 位址或 FQDN 作為單獨的項目新增至清單中。
  • 確認 VMware 反向 Proxy 用戶端虛擬機器正在使用有效的 API Token。
    您可以在 VMware 反向 Proxy 用戶端虛擬機器 vApp 內容的 csp-token 下找到目前的 API Token。
    1. https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize 執行 POST 要求,並在要求本文中包含 refresh_token={your-api-token-value}
      例如:
      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 Token 已到期,要求將傳回 Invalid Token400 Bad Request 錯誤。請參閱如何更新 VMware 反向 Proxy 用戶端虛擬機器的 API Token

      如果您的 API Token 有效,要求將傳回包含存取 Token 的回應,例如:
      {
        "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"
      }

      相關部分為 access_token,一律以 "ey" 開頭,且為 JSON Web Token (JWT)。

    2. 複製 access_token,然後將其貼到 https://jwt.io/ 中的已編碼區段。
    3. 確認在裝載中,context_name 包含您的 VMware Cloud 組織的組織識別碼,且 Perms 區段包含 provider:network 角色。
      如果未滿足其中任何一個條件,請更新您的 API Token。請參閱 如何更新 VMware 反向 Proxy 用戶端虛擬機器的 API Token