goldpinger
用于诊断k8s
集群节点之间的网络连通性,非常小巧。只有16MB
。
Goldpinger
来对集群的网络层进行故障排除、可视化和警报。它已经成为查看连接性和缓慢问题的常用工具。
文件准备goldpinger.yaml
和goldpinger.tar.xz
。
部署,在Rong
任意k8s master
节点上执行以下命令
docker load -i goldpinger.tar.xz
docker push bloomberg/goldpinger:v3.0.0
kubectl apply -f goldpinger.yaml
polaris
可以探测集群内哪些工作负载不符合最佳实践,Polaris
仪表盘是获得 Kubernetes
工作负载当前状态的简单可视化概览以及可改进的路线图的一种方式。该仪表板提供了一个集群范围的概述,以及按类别、命名空间和工作负载划分的结果。
Polaris
中的默认标准相当高,所以如果你的分数低于你的预期,不要感到惊讶。Polaris
的一个关键目标是设定一个高标准,并以默认配置为目标。
文件准备polaris-dashboard.yaml
和polaris.tar.xz
部署,在Rong
任意k8s master
节点上执行以下命令
docker load -i polaris.tar.xz
docker push quay.io/fairwinds/polaris:3.1
kubectl apply -f polaris-dashboard.yaml
node-problem-detector
的目的是让集群管理栈中的上游层看到各种节点问题。它是一个运行在每个节点上的守护进程,检测节点问题并向apiserver
报告。补救系统是一个或多个进程,旨在尝试补救节点-问题检测器检测到的问题。补救系统观察节点-问题检测器发出的事件和/或节点状况,并采取行动使Kubernetes
集群恢复到健康状态。descheduler
是一个存在的补救系统。
文件准备:node-problem-detector.tar.xz
、node-problem-detector-config.yaml
、node-problem-detector.yaml
部署,在Rong
任意k8s master
节点上执行以下命令
docker load -i node-problem-detector.tar.xz
docker push k8s.gcr.io/node-problem-detector/node-problem-detector:v0.8.7
kubectl apply -f node-problem-detector-config.yaml -f node-problem-detector.yaml
当一个新的pod
出现时,调度器的决策会受到它对Kubernetes
集群的看法的影响。由于Kubernetes
集群是非常动态的,它们的状态会随着时间的推移而变化,可能会因为各种原因而希望将已经运行的pod
移到其他一些节点上。
一些节点的利用率不足或过高。
原来的调度决策不再成立,因为污点或标签被添加到节点上或从节点上删除,pod/节点的亲和力要求不再满足。
有些节点失败了,它们的豆荚移到了其他节点上。
新的节点被添加到集群中。
因此,在集群中可能会有几个豆荚安排在不太需要的节点上。Descheduler
根据其策略,找到可以移动的pod
,并驱逐它们。请注意,在当前的实现中,descheduler
并不安排替换被驱逐的pods
,而是依靠默认的调度器来实现。
文件准备:deschedulerv0200.tar.xz
、descheduler-rbac.yaml
、descheduler-configmap.yaml
、descheduler-cronjob.yaml
部署:
docker load -i deschedulerv0200.tar.xz
docker push k8s.gcr.io/descheduler/descheduler:v0.20.0
kubectl apply -f descheduler-rbac.yaml -f descheduler-configmap.yaml -f descheduler-cronjob.yaml
KubeEye
旨在发现 Kubernetes
上的各种问题,比如应用配置错误(使用Polaris)、集群组件不健康和节点问题(使用Node-Problem-Detector)。除了预定义的规则,它还支持自定义规则。
KubeEye
可以发现你的集群控制平面的问题,包括kube-apiserver/kube-controller-manager/etcd
等。KubeEye
可以帮助你检测各种节点问题,包括内存/CPU
/磁盘压力,意外的内核错误日志等。KubeEye
根据行业最佳实践验证你的工作负载yaml
规范,帮助你使你的集群稳定。
文件准备:二进制文件ke
部署:
mv ke /usr/bin && chmod a+x /usr/bin/ke