針對虛擬網路外部端點的連線進行疑難解答
本文討論如何針對虛擬網路 (外部端點的連線進行疑難解答,也就是透過來自 Microsoft Azure Kubernetes Service (AKS) 叢集的公用因特網) 。
必要條件
Kubernetes kubectl 工具,或連線到叢集的類似工具。 若要使用 Azure CLI 安裝 kubectl,請執行 az aks install-cli 命令。
疑難解答檢查清單
步驟 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 |
|
|
5xx |
問題會影響伺服器。 | 應用程式已關閉,或閘道無法運作。 |
步驟 4:判斷如果輸出流量通常會透過虛擬設備移動,但您改為略過它,會發生什麼事
若要快速測試以判斷輸出裝置 (虛擬設備是否) 造成問題,您可以暫時允許所有流量通過因特網。 若要設定此設定,您可以透過虛擬設備變更的 0.0.0.0
/0
預設IP位址和埠路由,以改為通過因特網。
問題是否間歇?
您可能會因為許多原因而遇到間歇性輸出問題。 針對間歇性輸出連線問題進行疑難解答,請嘗試下列檢查:
資源上的Pod或節點是否已耗盡?
執行下列程式代碼來檢查資源的使用方式:
kubectl top pods
kubectl top nodes
操作系統磁碟是否大量使用?
若要檢查作業系統磁碟是否大量使用,請遵循下列步驟:
在 Azure 入口網站 中,搜尋並選取 [虛擬機擴展集]。
在擴展集清單中,選取用於 AKS 叢集的擴展集。
在擴展集瀏覽窗格中,移至 [ 監視 ] 區段,然後選取 [ 計量]。
尋找下列欄位,從 [ 計量 ] 區段檢視擴展集的磁碟計量。
欄位 值 範圍 VMSS 名稱 計量命名空間 虛擬機主機 度量 OS 和數據磁碟計量
如需計量的詳細資訊,請參閱 OS 磁碟和數據磁碟計量。
若要檢視有關磁碟使用率的 AKS 建議,請遵循下列步驟:
在 Azure 入口網站 中,搜尋並選取 [Kubernetes 服務]。
在 Kubernetes 服務清單中,選取 AKS 叢集的名稱。
在 [AKS 叢集] 瀏覽窗格中,移至 [ 監視 ] 區段,然後選取 [ Advisor 建議]。
檢閱列出的磁碟使用量建議。
如果大量使用OS磁碟,請考慮使用下列補救措施:
增加 OS 磁碟大小。
切換至 暫時 OS 磁碟。
如果這些補救措施無法解決問題,請分析在磁碟上執行大量讀取/寫入作業的程式。 然後,檢查您是否可以將動作移至數據磁碟,而不是OS磁碟。
來源網路位址轉譯埠是否已用盡?
如果應用程式進行許多輸出連線,它們可能會耗盡輸出裝置IP位址上的可用埠數目。 遵循 標準負載平衡器診斷與計量、警示和資源健康情況, 以監視現有負載平衡器 的來源網路位址轉譯 (SNAT) 埠的使用方式和配置。 監視以確認或判斷 SNAT 埠耗盡的風險。
您是否達到或超過配置的 SNAT 埠數目上限? 在此情況下,您可以檢查您的應用程式,以判斷其是否正在重複使用現有的連線。 如需詳細資訊,請 參閱設計應用程式以有效率地使用連線。
如果您覺得應用程式已正確設定,而且需要比預設配置埠數目更多的 SNAT 連接埠,請遵循下列步驟:
增加輸出裝置上的公用IP數目。 如果輸出裝置是負載平衡器,您可以 增加負載平衡器上的公用IP位址數目。
協力廠商連絡資訊免責聲明
Microsoft 提供第三方連絡資訊,協助您尋找有關本主題的其他資訊。 此連絡資訊如有變更,恕不另行通知。 Microsoft 不保證第三方聯繫人信息的正確性。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應