小提示
如需本教學課程使用 Azure Kubernetes Service 的更新版本,請參閱 適用於容器的 Azure 監視器 (預覽) 概觀。
警告
Azure Container Service (ACS) 即將淘汰。 ACS 中不會新增任何新功能。 所有 API、入口網站體驗、CLI 命令和文件都會標示為已被取代。
在 2017 年,我們引進了 Azure Kubernetes Service (AKS),以簡化 Kubernetes 管理、部署和作業。 如果您使用 Kubernetes 協調器,請在 2020 年 1 月 31 日前移轉至 AKS。 若要開始使用,請參閱 遷移至 Azure Kubernetes Service。
如需詳細資訊,請參閱 Azure.com 上的 Azure Container Service 淘汰公告。
監視 Kubernetes 叢集和容器非常重要,特別是當您使用多個應用程式大規模管理生產叢集時。
您可以利用來自 Microsoft 或其他提供者的多個 Kubernetes 監控解決方案。 在本教學課程中,您會使用 Log Analytics中的容器解決方案來監視 Kubernetes 叢集,Microsoft雲端式IT管理解決方案。 (容器解決方案處於預覽狀態。
本教學課程,第七部分,涵蓋下列工作:
- 取得 Log Analytics 工作區設定
- 在 Kubernetes 節點上設定 Log Analytics 代理程式
- 在 Log Analytics 入口網站或 Azure 入口網站中存取監視資訊
開始之前
在先前的教學課程中,應用程式已打包成容器映像檔,並將這些映像檔上傳至 Azure Container Registry,此外,也已建立 Kubernetes 叢集。
如果您尚未完成這些步驟,而且想要跟著做,請返回 教學課程 1 – 建立容器映像。
取得工作區設定
當您可以存取 Log Analytics 入口網站時,請移至 [ 設定>連線的來源>Linux 伺服器]。 您可以在該處找到 工作區識別碼 和主要或次要 工作區金鑰。 請記下這些數值,因為您需要在叢集上設定 Log Analytics 代理程式。
建立 Kubernetes 機密
使用 [kubectl create secret][kubectl-create-secret] 命令,將 Log Analytics 工作區設定儲存在名為 omsagent-secret 的 Kubernetes 秘密中。 使用您的 Log Analytics 工作區識別碼更新WORKSPACE_ID,並使用工作區密鑰更新WORKSPACE_KEY。
kubectl create secret generic omsagent-secret --from-literal=WSID=WORKSPACE_ID --from-literal=KEY=WORKSPACE_KEY
設定 Log Analytics 代理程式
下列 Kubernetes 指令清單檔可用來設定 Kubernetes 叢集上的容器監視代理程式。 它會建立 Kubernetes DaemonSet,在每個叢集節點上執行一個相同的 Pod。
將下列文字儲存至名為 的 oms-daemonset.yaml檔案。
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: omsagent
spec:
template:
metadata:
labels:
app: omsagent
agentVersion: 1.4.3-174
dockerProviderVersion: 1.0.0-30
spec:
containers:
- name: omsagent
image: "microsoft/oms"
imagePullPolicy: Always
securityContext:
privileged: true
ports:
- containerPort: 25225
protocol: TCP
- containerPort: 25224
protocol: UDP
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
- mountPath: /var/log
name: host-log
- mountPath: /etc/omsagent-secret
name: omsagent-secret
readOnly: true
- mountPath: /var/lib/docker/containers
name: containerlog-path
livenessProbe:
exec:
command:
- /bin/bash
- -c
- ps -ef | grep omsagent | grep -v "grep"
initialDelaySeconds: 60
periodSeconds: 60
nodeSelector:
beta.kubernetes.io/os: linux
# Tolerate a NoSchedule taint on master that ACS Engine sets.
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Equal"
value: "true"
effect: "NoSchedule"
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: host-log
hostPath:
path: /var/log
- name: omsagent-secret
secret:
secretName: omsagent-secret
- name: containerlog-path
hostPath:
path: /var/lib/docker/containers
使用下列命令建立 DaemonSet:
kubectl create -f oms-daemonset.yaml
若要查看 DaemonSet 是否已建立,請執行:
kubectl get daemonset
輸出類似下列內容:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE
omsagent 3 3 3 0 3 <none> 5m
代理程式執行之後,Log Analytics 需要幾分鐘的時間才能內嵌和處理數據。
存取監視資料
在Log Analytics入口網站或 Azure 入口網站中使用 容器解決方案 檢視和分析容器監視數據。
若要使用 Log Analytics入口網站安裝容器解決方案,請移至 方案庫。 然後新增 容器解決方案。 或者,從 Azure Marketplace 新增容器解決方案。
在 Log Analytics 入口中,尋找儀表板上的容器摘要圖塊。 按兩下圖格以取得詳細數據,包括:容器事件、錯誤、狀態、映像清查,以及CPU和記憶體使用量。 如需更細微的資訊,請按下任何磚上的數據列,或執行 記錄搜尋。
同樣地,在 Azure 入口網站中,移至 Log Analytics 並選取您的工作區名稱。 若要查看 [容器 摘要] 圖格,請按兩下 [解決方案>容器]。 若要查看詳細數據,請按下圖格。
如需查詢和分析監視數據的詳細指引,請參閱 Azure Log Analytics 檔 。
後續步驟
在本教學課程中,您已使用Log Analytics監視 Kubernetes 叢集。 涵蓋的工作包括:
- 取得 Log Analytics 工作區設定
- 在 Kubernetes 節點上設定 Log Analytics 代理程式
- 在 Log Analytics 入口網站或 Azure 入口網站中存取監視資訊
請遵循此連結來查看容器服務預先建置的腳本範例。