Share via


針對虛擬網路外部端點的連線進行疑難解答

本文討論如何針對虛擬網路 (外部端點的連線進行疑難解答,也就是透過來自 Microsoft Azure Kubernetes Service (AKS) 叢集的公用因特網) 。

必要條件

疑難解答檢查清單

步驟 1:執行基本疑難解答

請確定您可以連線到因特網上的公用端點。 如需指示,請參閱 輸出 AKS 叢集連線的基本疑難解答

步驟 2:判斷 AKS 叢集的輸出類型

若要識別 AKS 叢集的輸出類型,請執行 az aks show 命令:

az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"

如果輸出類型為 loadBalancer,請確定與 AKS 節點相關聯的路由表具有因特網的預設路由。 下表顯示詳細數據。

來源 地址前綴 下一個躍點類型
預設 0.0.0.0/0 網際網路

如果輸出類型為 userDefinedRouting,請確定符合下列條件:

  • 可連線到防火牆或 Proxy) (輸出裝置。

  • 輸出裝置允許來自叢集 的必要輸出流量

    若要取得 AKS 叢集允許的 FQDN 清單,請執行 az aks egress-endpoints list 命令:

    az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
    

如果輸出類型為 managedNATGateway,請執行 az network nat gateway show 命令,檢查 AKS 子網是否與 NAT 閘道相關聯:

az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"

如需如何搭配 AKS 使用 NAT 閘道的詳細資訊,請參閱 受控 NAT 閘道

步驟 3:當您連線到叢集時,檢查 cURL 輸出

cURL 回應碼可協助您識別問題類型。 回應碼可用之後,請嘗試進一步瞭解問題的行為。 如需 HTTP 狀態代碼和問題基礎行為的詳細資訊,請參閱下表。

資訊來源 連結
IANA) (因特網指派的數位授權單位 超文本傳輸通訊協定 (HTTP) 狀態代碼登錄
Mozilla HTTP 回應狀態代碼
維琪 百科 HTTP 狀態代碼清單

下列 HTTP 狀態代碼可能表示列出的問題。

HTTP 狀態代碼 問題 範例
4xx
  1. 問題會影響用戶端要求。
  2. 用戶端與伺服器之間存在網路封鎖程式。
  1. 要求的頁面不存在,或客戶端沒有存取頁面的許可權。
  2. 網路安全組或防火牆正在封鎖流量。
5xx 問題會影響伺服器。 應用程式已關閉,或閘道無法運作。

步驟 4:判斷如果輸出流量通常會透過虛擬設備移動,但您改為略過它,會發生什麼事

若要快速測試以判斷輸出裝置 (虛擬設備是否) 造成問題,您可以暫時允許所有流量通過因特網。 若要設定此設定,您可以透過虛擬設備變更的 0.0.0.0/0 預設IP位址和埠路由,以改為通過因特網。

問題是否間歇?

您可能會因為許多原因而遇到間歇性輸出問題。 針對間歇性輸出連線問題進行疑難解答,請嘗試下列檢查:

資源上的Pod或節點是否已耗盡?

執行下列程式代碼來檢查資源的使用方式:

kubectl top pods
kubectl top nodes

操作系統磁碟是否大量使用?

若要檢查作業系統磁碟是否大量使用,請遵循下列步驟:

  1. Azure 入口網站 中,搜尋並選取 [虛擬機擴展集]

  2. 在擴展集清單中,選取用於 AKS 叢集的擴展集。

  3. 在擴展集瀏覽窗格中,移至 [ 監視 ] 區段,然後選取 [ 計量]

  4. 尋找下列欄位,從 [ 計量 ] 區段檢視擴展集的磁碟計量。

    欄位
    範圍 VMSS 名稱
    計量命名空間 虛擬機主機
    度量 OS 和數據磁碟計量

如需計量的詳細資訊,請參閱 OS 磁碟和數據磁碟計量

若要檢視有關磁碟使用率的 AKS 建議,請遵循下列步驟:

  1. Azure 入口網站 中,搜尋並選取 [Kubernetes 服務]

  2. 在 Kubernetes 服務清單中,選取 AKS 叢集的名稱。

  3. 在 [AKS 叢集] 瀏覽窗格中,移至 [ 監視 ] 區段,然後選取 [ Advisor 建議]

  4. 檢閱列出的磁碟使用量建議。

如果大量使用OS磁碟,請考慮使用下列補救措施:

如果這些補救措施無法解決問題,請分析在磁碟上執行大量讀取/寫入作業的程式。 然後,檢查您是否可以將動作移至數據磁碟,而不是OS磁碟。

來源網路位址轉譯埠是否已用盡?

如果應用程式進行許多輸出連線,它們可能會耗盡輸出裝置IP位址上的可用埠數目。 遵循 標準負載平衡器診斷與計量、警示和資源健康情況, 以監視現有負載平衡器 的來源網路位址轉譯 (SNAT) 埠的使用方式和配置。 監視以確認或判斷 SNAT 埠耗盡的風險。

您是否達到或超過配置的 SNAT 埠數目上限? 在此情況下,您可以檢查您的應用程式,以判斷其是否正在重複使用現有的連線。 如需詳細資訊,請 參閱設計應用程式以有效率地使用連線

如果您覺得應用程式已正確設定,而且需要比預設配置埠數目更多的 SNAT 連接埠,請遵循下列步驟:

  1. 增加輸出裝置上的公用IP數目。 如果輸出裝置是負載平衡器,您可以 增加負載平衡器上的公用IP位址數目

  2. 增加 AKS 背景工作節點的每個節點埠

協力廠商連絡資訊免責聲明

Microsoft 提供第三方連絡資訊,協助您尋找有關本主題的其他資訊。 此連絡資訊如有變更,恕不另行通知。 Microsoft 不保證第三方聯繫人信息的正確性。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群