AKS 桌面內建一個名為 Insights 的整合故障排除套件,由 Inspektor Gadget 提供支援,該工具是一款基於開源的 eBPF(擴展 Berkeley 封包過濾器)除錯工具。 無需修改程式碼或重啟任何程式,它能讓你透過直覺式介面,只需幾次點擊,就能理解 pod 間的網路流量、追蹤 DNS 失敗,並探索正在執行的程序以偵測意外或資源密集的活動。
本文將帶你了解如何啟用 Insights,並用它來診斷 AKS 叢集中常見的應用程式問題。
Important
AKS 預覽功能可透過自願加入的方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:
先決條件
- AKS 桌面 安裝並登入你的 AKS 叢集。 請參見「 為 AKS 桌面建立 AKS 叢集 」或「 使用 AKS 桌面部署應用程式」
- 目標 AKS 叢集上的叢集管理員或同等角色型存取控制 (RBAC) 權限。 安裝 Inspektor Gadget 需要建立
ClusterRole、ClusterRoleBinding和具特殊權限的DaemonSet。 - 你的叢集節點必須執行 Linux 核心版本 ≥ 5.4。 不支援 Windows 節點集區。
- 如果你的叢集使用 Azure Policy 或 OPA Gatekeeper,且限制 Pod 安全性,請為命名空間新增豁免
gadget,允許特權 Pod。 - 目標叢集必須是 AKS 標準叢集。
在 AKS 桌面啟用 Insights
啟動 AKS 桌面應用程式,確認你已登入並連接到你的 AKS 叢集。
從左側導覽中選擇 設定。
在設定選單中,選擇 插件。
在列表中找到 Insights 外掛,並選擇 啟用 切換。
取得專案洞察
在左側導覽中,選擇你想使用 Insights 的 專案 。 Insights 標籤現在會在專案檢視中顯示。
部署 Inspektor Gadget 到叢集
在 Insights 標籤中,如果 Inspektor Gadget 尚未安裝,系統會提示你部署到叢集。
- 選擇 部署 Inspektor Gadget。 AKS 桌面會將 Inspektor Gadget DaemonSet 部署到
gadget你叢集的命名空間。 - 等候部署完成。 狀態指示器會確認 Inspector Gadget 是否已準備就緒。
查看 Insights 數據
一旦 Inspektor Gadget 部署完成,Insights 標籤就會顯示來自你叢集的即時可觀察性資料。 看看 Insights 能做什麼 ,了解完整的功能。
你能用 Insights 做什麼
流程效能故障排除
程序檢視會即時顯示叢集 pod 上所有正在運行的程序,以及 CPU、記憶體和磁碟 I/O 使用情況。 使用它來:
- 找出哪些 pod 佔用過多 CPU 或記憶體。
- 偵測異常區塊 I/O 活動,例如異常高的磁碟讀寫,這可能表示應用程式設定錯誤、日誌寫入失控或儲存瓶頸。
- 偵測不該在容器中執行的意外程序。
透過追蹤傳輸控制協定(TCP)實現網路可視化
Trace TCP 在核心層級使用 eBPF 捕捉即時 TCP 連線事件,無需代理或副廠。 使用它來:
- 查看哪些 Pod 正在開啟輸出連線,以及連線到哪些目的地 IP 和連接埠。
- 偵測意外或未經授權的連線,可能代表設定錯誤或安全問題。
- 將網路異常與特定 Pod 或工作負載相關聯。
Note
完成後必須停止追蹤,選擇追蹤右上角的紅色停止按鈕。
使用 Trace DNS 解決 DNS 問題
Trace DNS 會捕捉叢集中 pod 發出的所有 DNS 查詢與回應。 使用它來:
- 找出無法解決的 DNS 查詢,這是 Pod-to-service 連線失敗的常見原因。
- 測量 DNS 延遲以判斷 CoreDNS(叢集內的 DNS 伺服器)或上游 DNS 解析器是否較慢。
- 檢查 CoreDNS 的健康狀況以及外部 DNS 解析是否正常運作。
Note
完成後必須停止追蹤,選擇追蹤右上角的紅色停止按鈕。
卸載 Inspektor Gadget
從叢集中移除 Inspektor Gadget,方法是刪除gadget命名空間。 這會移除所有 Insights 的資料和功能,所以只有當你不再需要 Insights 功能時才這麼做。
kubectl delete ns gadget
Warning
此指令移除命名空間中 gadget 的所有資源,不僅限於 Inspektor Gadget 所建立的資源。
Insights 故障排除問題
下表列出你在使用 Insights 時可能遇到的常見問題及其解決方案:
| Issue | Resolution |
|---|---|
| Insights 分頁看不到 | 確保 Insights 外掛已啟用。 到 設定>插件 ,開啟 Insights 。 |
| Inspektor 裝置部署失敗 | 確認你有足夠的 RBAC 權限在叢集中建立 DaemonSets 和 ClusterRoles。 |
| 部署後不會出現任何資料 | 確認叢集節點是否運行支援的 Linux 核心(≥ 5.4)。 請檢查Inspektor Gadget的Pod日誌是否有錯誤。 |