Kubernetes 中的內建記錄功能十分原始。 不過,有一些絕佳的選項可將記錄從 Kubernetes 中轉移,以便進行正確分析。 如果您需要監視 AKS 叢集,設定 Kubernetes 的彈性堆疊是絕佳的解決方案。
適用於容器的 Azure 監視器
適用於容器的 Azure 監視器 不僅支援取用 Kubernetes 的記錄,也支持取用其他協調流程引擎的記錄,例如 DC/OS、Docker Swarm 和 Red Hat OpenShift。
圖 7-10。 從各種容器取用記錄
Prometheus 是熱門的開放原始碼計量監視解決方案。 它是雲端原生計算基礎的一部分。 一般而言,使用 Prometheus 需要管理一個具有自有存儲的 Prometheus 伺服器。 不過, 適用於容器的 Azure 監視器會提供與 Prometheus 計量端點的直接整合,因此不需要個別的伺服器。
記錄和計量信息不僅會從叢集中執行的容器收集,也會從叢集主機本身收集。 它允許將兩者的記錄資訊相互關聯,以便更輕鬆地追蹤錯誤。
在 Windows 和 Linux 叢集上安裝記錄收集器會有所不同。 但在這兩種情況下,記錄收集都會實作為 Kubernetes DaemonSet,這表示記錄收集器會在每個節點上以容器的形式執行。
無論哪個協調器或作系統執行 Azure 監視器精靈,記錄資訊會轉送至使用者熟悉的相同 Azure 監視器工具。 此方法可確保在不同記錄來源的混合環境中,提供相同的體驗,例如混合式 Kubernetes/Azure Functions 環境。
圖 7-11。 顯示許多正在運行容器之記錄和度量資訊的範例儀表板。
Log.Finalize()
記錄是大規模部署任何應用程式的最忽略但最重要的部分之一。 隨著應用程式的大小和複雜度增加,因此難以進行偵錯。 擁有高品質的記錄可讓偵錯變得更容易,並將它從「幾乎不可能」的領域移至「令人愉快的體驗」。