在 Azure Kubernetes Service 中使用 Kubernetes 事件進行疑難解答 (AKS)
本文說明如何使用 Kubernetes 事件來監視和疑難解答 Azure Kubernetes Service (AKS) 叢集中的問題。
什麼是 Kubernetes 事件?
事件是在 Kubernetes 中用來監視和疑難排解問題的最重要來源之一。 其會擷取並記錄各種 Kubernetes 物件 (例如 Pod、節點、服務和部署) 的生命週期相關資訊。 透過監視事件,您可以檢視叢集的活動、識別問題,以及有效地針對問題進行疑難排解。
Kubernetes 事件不會在整個叢集生命週期中保存,因為沒有任何保留機制。 事件只能在產生事件后一小時使用。 若要在較長時間內儲存事件,請啟用 容器深入解析。
Kubernetes 事件物件
下表列出一些重要的 Kubernetes 事件物件:
欄位名稱 | 描述 |
---|---|
type | 此類型是以事件的嚴重性為基礎: 警告 事件表示可能發生問題的情況,例如 Pod 重複失敗或節點用盡資源。 它們需要注意,但可能不會導致立即失敗。 一般 事件代表例行作業,例如排程的Pod或部署相應增加。 它們通常表示良好的叢集行為。 |
reason | 產生事件的理由。 例如,FailedScheduling 或 CrashLoopBackoff。 |
message | 描述事件且一般人可閱讀的訊息。 |
命名空間 | 與事件相關聯之 Kubernetes 物件的命名空間。 |
firstSeen | 首次觀察到事件的時間戳記。 |
lastSeen | 最後一次觀察到事件的時間戳記。 |
reportingController | 報告事件的控制器名稱。 例如: kubernetes.io/kubelet 。 |
object | 與事件相關聯的 Kubernetes 物件名稱。 |
如需詳細資訊,請參閱官方 Kubernetes 文件。
檢視 Kubernetes 事件
使用
kubectl get events
命令列出叢集中的所有事件。kubectl get events
先尋找 Pod 的名稱,然後使用
kubectl describe pod
命令來查看特定 Pod 的事件。kubectl get pods kubectl describe pod <pod-name>
針對事件進行疑難排解的最佳做法
基於相關性篩選事件
您可能在 AKS 叢集中執行各種命名空間和服務。 根據物件類型、命名空間或原因篩選事件,有助於將結果縮小到最相關的資訊。
例如,您可以使用下列命令來篩選特定命名空間內的事件:
kubectl get events --namespace <namespace-name>
將事件通知自動化
為了確保會及時回應 AKS 叢集中的重大事件,請設定自動化的通知。 Azure 提供與監視和警示服務 (例如 Azure 監視器) 的整合。 您可以將警示設定為根據特定事件模式來觸發。 如此一來,您就會立即得知需要注意的重要問題。
定期檢閱事件
養成在 AKS 叢集中定期檢閱事件的習慣。 這種主動式方法可協助您找出趨勢、儘早捕捉潛在問題,以及防止升級。 透過掌控事件,您可以維護應用程式的穩定性和效能。
下一步
既然您已瞭解 Kubernetes 事件,您可以啟用容器深入解析,以繼續監視和可檢視性旅程。