监控
本页包含关于监控的一些常见问题。
- 如何访问 Kube AI Hub Prometheus 控制台
- Node Exporter 引起的主机端口 9100 冲突
- 与现有的 Prometheus Operator 相冲突
- GPU 监控与 ClusterConfiguration
- 如何更改监控数据保留期限
- kube-scheduler 和 kube-controller-manager 没有监控数据
- 近几分钟没有监控数据
- 节点和控制平面都没有监控数据
- Prometheus 产生错误日志:打开存储失败、没有此文件或目录
如何访问 Kube AI Hub Prometheus 控制台
Kube AI Hub 监控引擎由 Prometheus 提供支持。出于调试目的,您可能希望通过 NodePort 访问内置的 Prometheus 服务,请运行以下命令将服务类型更改为 NodePort:
kubectl edit svc -n kubesphere-monitoring-system prometheus-k8s
备注
Node Exporter 引起的主机端口 9100 冲突
如果有进程占用主机端口 9100,kubespher-monitoring-system 下的 Node Exporter 会崩溃。若要解决冲突,您需要终止进程或将 Node Exporter 换到另一个可用端口。
若要采用另一个主机端口(例如 29100),请运行以下命令将所有的 9100 替换为 29100(需要更改 5 处)。
kubectl edit ds -n kubesphere-monitoring-system node-exporter
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: kubesphere-monitoring-system
...
spec:
...
template:
...
spec:
containers:
- name: node-exporter
image: kubesphere/node-exporter:ks-v0.18.1
args:
- --web.listen-address=127.0.0.1:9100
...
- name: kube-rbac-proxy
image: kube-ai-hub/kube-rbac-proxy:v0.14.0
args:
- --logtostderr
- --secure-listen-address=[$(IP)]:9100
- --upstream=http://127.0.0.1:9100/
...
ports:
- containerPort: 9100
hostPort: 9100
...
与现有的 Prometheus Operator 相冲突
如果您已自行部署 Prometheus Operator,请确保在安装 Kube AI Hub 之前将 Prometheus Operator 删除。否则,可能会出现冲突,即 Kube AI Hub 内置的 Prometheus Operator 选择重复的 ServiceMonitor 对象。
GPU 监控与 ClusterConfiguration
控制台中的 GPU 相关监控能力,以及安装器下发的 GPU Prometheus 规则、gpu-agent ServiceMonitor、控制台大盘等,均由 ClusterConfiguration 的 spec.monitoring.gpu.enabled 控制。将其设为 true 后,请重新应用 cluster-configuration.yaml 或触发 ks-installer 协调,以便 kubesphere-config 内的 monitoring.enableGPUMonitoring 与上述监控资源生效。
如何更改监控数据保留期限
运行以下命令编辑最大保留期限。导航到 retention 字段,并设置所需保留期限(默认为 7d)。
kubectl edit prometheuses -n kubesphere-monitoring-system k8s
kube-scheduler 和 kube-controller-manager 没有监控数据
首先,请确保标志 --bind-address 设置为 0.0.0.0(默认),而不是 127.0.0.1。Prometheus 可能需要从其他主机访问这些组件。
其次,请检查 kube-scheduler 和 kube-controller-manager 的端点对象是否存在。如果缺失,请通过创建服务和选择目标 Pod 手动创建。
kubectl get ep -n kube-system | grep -E 'kube-scheduler|kube-controller-manager'
近几分钟没有监控数据
请检查计算机浏览器的本地时钟是否与互联网时间以及您的集群同步,时差可能会导致该问题。如果您的计算机连接的是内联网,尤其可能会出现这种情况。
节点和控制平面都没有监控数据
请检查您的网络插件,并确保您的主机和 Pod 网络 CIDR 之间没有 IPPool 重叠。强烈建议您使用 KubeKey 安装 Kubernetes。
中文读者可以参考 Kube AI Hub 开发者社区的讨论了解更多信息。
Prometheus 产生错误日志:打开存储失败、没有此文件或目录
如果 kubesphere-monitoring-system 中的 Prometheus Pod 崩溃并产生以下错误日志,您的 Prometheus 数据可能已经损坏,需要手动删除才能恢复。
level=error ts=2020-10-14T17:43:30.485Z caller=main.go:764 err="opening storage failed: block dir: \"/prometheus/01EM0016F8FB33J63RNHFMHK3\": open /prometheus/01EM0016F8FB33J63RNHFMHK3/meta.json: no such file or directory"
执行进入 Prometheus Pod(如果可能),并删除目录 /prometheus/01EM0016F8FB33J63RNHFMHK3:
kubectl exec -it -n kubesphere-monitoring-system prometheus-k8s-0 -c prometheus sh
rm -rf 01EM0016F8FB33J63RNHFMHK3/
或者,您可以直接从绑定到 Prometheus PVC 的持久卷中删除该目录。