Kubernetes 监控
监控容器基础设施的不同组件,全面了解 Kubernetes 集群的健康状况和性能。
添加监视器
Site24x7 支持以下云平台中的 Kubernetes 监控:本地、Azure(Azure Kubernetes Engine)、AWS(Elastic Kubernetes Service)和 GCP(Google Kubernetes Engine)。
- 登录到您的 Site24x7 帐户,然后转到服务器> Kubernetes> Clusters (+) > 添加Kubernetes监视器。
- 选择运行 Kubernetes 集群的平台 - OnPremises 、 Azure(AKS)、Google Cloud Platform(GKE) 或Amazon Web Services(EKS)。
- 配置基于角色的访问控制(RBAC)权限并将 Site24x7 代理安装为 DaemonSet:
- 从Site24x7 Web 客户端 的添加Kubernetes监视器页面下载 site24x7-agent.yaml 文件。
- 复制下载的文件并将其保存在您的 Azure CLI/GCP Cloud Shell/AWS 控制平面/本地主节点终端中。
- 替换Site24x7 Web 客户端中提供 的设备密钥。
- 如果您有代理,请参阅以下部分进行配置。
- 然后,执行以下命令:
kubectl apply -f site24x7-agent.yaml
- 配置kube-state-metrics: 下载 site24x7-kube-state-metrics.yaml文件并将其保存在您的 Azure CLI/GCP Cloud shell/AWS 控制平面/本地主节点终端中。执行以下命令以应用 YAML。
kubectl apply -f site24x7-kube-state-metrics.yaml或者,您可以执行以下命令来下载和配置kube-state-metrics:curl -L -o kube-state-metrics-1.9.7.zip https://github.com/kubernetes/kube-state-metrics/archive/v1.9.7.zip && unzip kube-state-metrics-1.9.7 .zip && kubectl apply -f kube-state-metrics-1.9.7/examples/standard这是一个可选步骤。但是,此文件对于查看节点、pod、容器、部署和其他功能(如健康状况仪表板)的完整性能指标集至关重要。
确保已创建 site24x7-agent pod 并处于运行状态。请等待几分钟,以便将所有节点、容器、Pod、部署、HPA 和 ReplicaSet 添加到 Site24x7 的 Web 客户端中。发现完成后,您将被定向到健康状况仪表板。
value: http://192.108.100.100:1118
- name: https_proxy
value: https://192.108.100.100:1118
仪表板
Site24x7 中有两个 Kubernetes 专用仪表板。您还可以创建自定义仪表板。
健康状况仪表板
成功添加 Kubernetes 监视器后,您将被定向到健康状况仪表板。这代表了 Kubernetes 基础架构的所有关键组件的单一视图。
强调:
- 在一个视图中查看所有节点、Pod、服务、DaemonSet、部署、ReplicaSet 和作业的总数。
- 作为单独的 NOC 仪表板查看所有节点、pod 和服务的当前状态。单击 NOC 框以转到该特定资源的摘要页面。
- 通过根据状态查看故障的节点和 Pod 的数量来更快地识别问题:停机、危急、故障、维护。
- 分析排名靠前的 CPU 和内存密集型节点和 Pod,以立即解决性能问题并避免未来的性能下降。
资源清单仪表板
转到服务器> Kubernetes> 单击集群 > 资源清单仪表板。资源清单仪表板为您提供 Kubernetes 基础设施中各种资源的列表视图,包括节点、Pod、DaemonSet、部署、端点、ReplicaSet 和服务的计数。单击资源类型可查看详细的清单报表,包括其各自的标签、注释、操作系统类型等。
业务视图
添加 Kubernetes 监视器后,将为您的整个集群创建一个业务视图。在基础架构视图和服务视图之间切换以发现异常值并检测 Kubernetes 集群中的异常监控模式。了解更多。
基础设施视图:
此视图从节点的角度显示您的整个 Kubernetes 集群 - 从 Kubernetes 集群、节点、pod 和容器。
服务查看:
此视图从服务的角度显示您的整个 Kubernetes 集群 - 从 Kubernetes 集群、服务、pod 和容器。
性能指标
对于在 Site24x7 中发现和监控的每个组件,请在下方找到我们提供的各种性能指标,以确保 Kubernetes 集群的持续运行。
服务的性能指标
转到服务器> Kubernetes> 单击集群 >服务> 单击监视器以查看性能指标。
指标名称 | 描述 |
概括 | |
配置详情 | 提供负载均衡和集群的名称、类型、注释、ID、标签和 IP 地址。 |
资源清单详情 | |
相关组件 | 列出与此服务关联的其他组件,例如部署、节点和 Pod。单击资源类型可查看详细的资源清单报表。 |
节点的性能指标
转到服务器> Kubernetes> 单击集群 >节点> 单击监视器以查看性能指标。
指标名称 | 描述 |
概括 | |
配置详情 | 提供名称、创建时间、唯一 ID、标签、注释等 |
身份标识 | 列出与节点关联的标签和注释 |
条件 | 列出节点运行的各种条件。可以为这些条件中的每一个设置阈值 |
资源 | 给出该节点的资源容量和使用情况 |
依赖项 | 列出此特定节点中 pod 的详细信息 |
性能 | |
CPU 内核上的资源利用率 | 节点总CPU资源 |
内存字节的资源利用率 | 节点总内存资源 |
非计划节点 | 节点是否可以调度新的 Pod |
Pod 的性能指标
转到服务器> Kubernetes> 单击集群 > Pods > 单击监视器以查看性能指标。
指标名称 | 描述 |
概括 | |
配置详情 | 提供名称、主机 IP、DNS 策略、标签等。 |
条件 | 列出 pod 运行的各种条件。可以为这些条件中的每一个设置阈值。 |
性能 | |
pod状态 | 给定阶段的 Pod 状态 |
Pod 状态就绪 | 告知 pod 是否准备好为请求提供服务 |
已计划的 Pod 状态 | Pod 的调度进程状态 |
容器的性能指标
转到服务器> Kubernetes> 单击集群 > 容器 > 单击监视器以查看性能指标。
指标名称 | 描述 |
端口绑定 | 容器暴露的所有端口的详细信息及其与主机的映射 |
卷绑定 | 附加到容器的所有卷的详细信息 |
CPU 利用率 | pod 规范中该容器的 CPU 利用率 |
网络统计 | 容器接口接收和传输的字节总数 |
I/O 利用率 | 容器从磁盘读取、写入、完成的 I/O 数 |
匿名内存统计 | 分别被内核识别为活动和非活动的匿名内存量 |
文件统计 | 被内核分别识别为活动和非活动的缓存 |
缓存大小 | 此控制组的进程使用的内存量。 |
页面统计 | 每次将一个页面“计费”(添加到帐户中)到 Cgroup 时,PgPin 都会增加。当页面“不收费”(不再向 Cgroup“收费”)时,PgOut 增加 |
缓存内存大小 | 进程的非高速缓存内存 |
总内存 | 与磁盘上的任何内容都不对应的容器内存量:堆栈、堆和匿名内存映射。 |
交换内存 | 当容器用尽所有可用的 RAM 时对磁盘的额外内存需求。 |
Unevictable内存 | 无法回收的内存量。通常,这说明了已使用 mlock 锁定的内存。加密框架经常使用它来确保密钥和其他敏感材料永远不会被交换到磁盘。 |
部署的性能指标
转到服务器> Kubernetes> 单击集群 > 部署 > 单击监视器以查看性能指标。
指标名称 | 描述 |
配置详情 | 提供名称、创建时间、唯一 ID、标签、注释等。 |
ReplicaSet 的状态 | 每个 ReplicaSet 的副本状态 |
当前的 Pod 数量 | 当前节点中的 pod 资源数量 |
可用和不可用 Pod 的状态 | 一个节点的可用于调度和不可调度的pod资源 |
所需的 Pod 数量 | 健康pod的最小期望数量 |
暂停部署的状态 | 判断部署是否暂停 |
滚动更新期间的最大不可用副本数 | 滚动更新期间不可用副本的最大数量 |
ReplicaSet 的性能指标
转到服务器> Kubernetes> 单击集群 > ReplicaSets > 单击监视器以查看性能指标。
指标名称 | 描述 |
配置详情 | 提供名称、创建时间、唯一 ID、标签、注释等。 |
总副本 | 每个部署的副本总数 |
完全标记的副本 | 每个 ReplicaSet 的完全标记副本数 |
准备好的副本 | 每个 ReplicaSet 准备好的副本数 |
ReplicaSet 上所需的 Pod | ReplicaSet 所需的 pod 数量 |
DaemonSet 的性能指标
转到服务器> Kubernetes> 单击集群 > DaemonSets > 单击监视器以查看性能指标。
指标名称 | 描述 |
配置详情 | 提供名称、创建时间、唯一 ID、标签、注释等。 |
可用的 DaemonSet 计数 | 每个部署的可用守护程序集数量 |
当前计划的 DaemonSets | 当前运行至少一个守护程序 pod 的节点数 |
准备部署的 DaemonSet | 正在运行守护程序 pod 并且有一个或多个正在运行并准备就绪的节点数 |
更新的守护程序集 | 运行更新的守护程序 pod 规范的节点 |
端点的性能指标
转到服务器> Kubernetes> 单击集群 > 端点 > 单击监视器以查看性能指标。
指标名称 | 描述 |
配置详情 | 提供端点和命名空间的名称、唯一 ID 和创建时间。 |
创建的端点 | 在 Kubernetes 集群中创建的网络端点 |
可用地址 | 端点中可用的 IP 地址数 |
地址未准备好 | 端点中未准备好的 IP 地址数 |
Horizontal Pod Autoscaler (HPA) 的性能指标
转到服务器> Kubernetes> 单击集群 > HPA > 单击监视器以查看性能指标。
指标名称 | 描述 |
配置详情 | 给出 HPA 和命名空间的名称、唯一 ID、规模集类型和创建时间。 |
当前副本 | 此自动扩缩器管理的 Pod 的当前副本数 |
当前与目标 CPU 利用率 | 所有 pod 的当前和目标平均 CPU 利用率,以请求 CPU 的百分比表示。例如,70 表示平均 pod 正在使用其请求的 CPU 的 70%。 |
当前和所需的副本 | 此自动扩缩器管理的 Pod 副本的当前和所需数量 |
状态条件 | 此自动缩放器的状况 |
StatefulSet 的性能指标
转到服务器> Kubernetes> 单击集群 > StatefulSet > 单击监视器以查看性能指标。
指标名称 | 描述 |
StatefulSet 详细信息 | 给出 StatefulSet 的名称、命名空间、创建时间和唯一 ID。 |
配置详情 | 提供当前和更新的修订、服务名称、pod 管理策略、更新策略等。 |
StatefulSet 状态副本 | StatefulSet 创建的副本总数。 |
StatefulSet 当前副本 | 当前版本的 StatefulSet 创建的副本总数。 |
StatefulSet 就绪副本 | 此 StatefulSet 创建的就绪副本数。 |
StatefulSet 更新的副本 | 更新到此 StatefulSet 新版本的副本数。 |
复制 | 每个 StatefulSet 所需的副本数。 |
冲突计数 | 此 StatefulSet 的哈希冲突计数。 |
持久卷声明的性能指标
转到服务器> Kubernetes> 单击集群 > Persistent Volume Claim (PVC) > 单击监视器以查看性能指标。
指标名称 | 描述 |
持久卷声明详细信息 | 给出 PVC 名称、命名空间、创建时间和唯一 ID 的名称。 |
配置详情 | 提供卷名、模式、存储类、终结器等。 |
持久卷声明状态阶段 | 给出 PVC 的当前信息/状态。 |
安全
Site24x7 代理使用 Kubernetes API 收集配置数据和基本性能数据。使用的 API 版本是 apps/v1。Site24x7 代理使用 RBAC 授权访问 API。作为 RBAC 授权的一部分,在应用site24x7-agent.yaml文件时会创建以下具有下述权限的对象:
- 在“默认”命名空间下名为“site24x7”的 ServiceAccount。
- ClusterRole 名为“site24x7”,仅包括对节点、pod 等 API 的“列表”和“监视”权限。
- ClusterRoleBinding 名为“site24x7”。
一旦应用了site24x7-agent.yaml 文件,就会创建 RBAC 授权令牌并自动挂载到通过 Daemonset 创建的 Site24x7 代理容器中。使用此令牌,代理点击 API 来收集数据。
Site24x7 代理的 DaemonSet 配置:
一旦应用了site24x7-agent.yaml 文件,就会创建一个名为site24x7-agent 的 DaemonSet 。RollingUpdate 策略用于 DaemonSet。
- Pod使用相同的名称创建site24x7-agent。
- 创建具有“store/site24x7/docker-agent:<version>”图像的容器。
注意:ImagePullPolicy 设置为“始终”。 - 这些卷安装在容器内:/etc/、/var/、/proc/ 和 /var/run/docker.sock
性能指标的收集:
kube-state-metrics用于收集深入的性能数据。这仅在应用 kube-state-metrics.yaml文件时启用。性能数据将通过点击 API 来收集:
<KUBE_STATE_IP> -> kube state pod ip
<KUBE_STATE_PORT> -> 默认为 8080
Site24x7 代理的访问权限:
如site24x7-agent.yaml文件中所指定,Site24x7 代理将仅具有 Kubernetes API 的 List 或 Watch 权限。代理只能通过 Kubernetes API 读取 Kubernetes 对象数据,不能执行写操作。代理无法创建或更新任何 Kubernetes 对象。代理仅通过 Kubernetes 推荐的授权方法收集数据。
报表
在 Site24x7 Web 客户端中,转到报表> Kubernetes。以下报表可用于 Kubernetes 监视器:
- 汇总报表
- 可用性汇总报表
- 忙时报表
- 健康趋势报表
- 性能报表
容器日志
通过 Linux 服务器上运行的 AppLogs 代理 收集和监控 Kubernetes 环境中的容器日志。
编辑监视器
您可以在编辑 Kubernetes 监视器页面中选择修改 Kubernetes 集群的配置。
- 在 Site24x7 Web 客户端中,转到服务器> Kubernetes> 单击集群 > 集群详情。
- 将鼠标悬停在显示名称旁边的三横杠图标上。点击编辑。
- 选择编辑显示名称、与监视器组、标签、IT 自动化模板的关联、排除/包含命名空间、选择/取消选择资源组以及编辑配置文件。
- 在资源终止下,使用静默资源终止告警选项在资源终止时使告警静默,并使用自动移除资源终止按钮切换删除已终止的资源。您还可以指定终止资源在永久删除之前应在 Site24x7 Web 控制台中保留多长时间(以天为单位)。
- 保存您的更改。
许可
主 Kubernetes 集群是一个基本的监视器。欲了解更多信息,请阅读这篇文章。