小提示
有关本教程使用 Azure Kubernetes 服务的更新版本,请参阅 用于容器的 Azure Monitor(预览版)概述。
警告
Azure 容器服务 (ACS) 正在被弃用。 不会向 ACS 添加新特性或功能。 所有 API、门户体验、CLI 命令和文档都标记为已弃用。
2017 年,我们引入了 Azure Kubernetes 服务(AKS),用于简化 Kubernetes 管理、部署和作。 如果使用 Kubernetes 业务流程协调程序,请在 2020 年 1 月 31 日前迁移到 AKS。 若要开始,请参阅 迁移到 Azure Kubernetes 服务。
有关详细信息,请参阅 Azure.com 上的 Azure 容器服务弃用声明。
监视 Kubernetes 群集和容器至关重要,尤其是在使用多个应用大规模管理生产群集时。
您可以利用来自 Microsoft 或其他提供程序的多个 Kubernetes 监控解决方案。 在本教程中,你将使用 Log Analytics 中的容器解决方案(Microsoft基于云的 IT 管理解决方案)监视 Kubernetes 群集。 (容器解决方案为预览版)。
本教程第七部分(共七部分)介绍了以下任务:
- 获取 Log Analytics 工作区设置
- 在 Kubernetes 节点上设置 Log Analytics 代理
- 在 Log Analytics 门户或 Azure 门户中访问监视信息
开始之前
在前面的教程中,应用程序已打包到容器映像中,这些映像上传到 Azure 容器注册表,并创建了 Kubernetes 群集。
如果尚未执行这些步骤,并且想要继续学习,请返回教程1:创建容器镜像。
获取工作区设置
访问 Log Analytics 门户时,请转到 “设置>连接的源>Linux 服务器”。 在那里,可以找到 工作区 ID 和主工作区或辅助 工作区密钥。 请注意这些值,它们是您在群集上设置 Log Analytics 代理时需要的。
创建 Kubernetes Secret 对象
使用 [kubectl create secret][kubectl-create-secret] 命令将 Log Analytics 工作区设置存储在名为 omsagent-secret 的 Kubernetes 机密中。 将WORKSPACE_ID替换为您的 Log Analytics 工作区 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 市场添加容器解决方案。
在 Log Analytics 门户的仪表板上查找 容器 概要图块。 单击磁贴了解详细信息,包括:容器事件、错误、状态、映像清单以及 CPU 和内存使用情况。 有关更加详细的信息,请单击任何图块上的行,或执行 日志搜索。
同样,在 Azure 门户中,转到 Log Analytics 并选择工作区名称。 若要查看 “容器 摘要”磁贴,请单击“ 解决方案>容器”。 若要查看详细信息,请单击磁贴。
有关查询和分析监视数据的详细指南,请参阅 Azure Log Analytics 文档 。
后续步骤
在本教程中,你使用 Log Analytics 监视了 Kubernetes 群集。 涵盖的任务包括:
- 获取 Log Analytics 工作区设置
- 在 Kubernetes 节点上设置 Log Analytics 代理
- 在 Log Analytics 门户或 Azure 门户中访问监视信息
按照此链接查看容器服务的预生成脚本示例。