Skip to content

Latest commit

 

History

History
91 lines (56 loc) · 4.19 KB

k8s诊断工具.md

File metadata and controls

91 lines (56 loc) · 4.19 KB

k8s诊断工具

goldpinger

goldpinger用于诊断k8s集群节点之间的网络连通性,非常小巧。只有16MB

Goldpinger来对集群的网络层进行故障排除、可视化和警报。它已经成为查看连接性和缓慢问题的常用工具。

文件准备goldpinger.yamlgoldpinger.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可以探测集群内哪些工作负载不符合最佳实践,Polaris 仪表盘是获得 Kubernetes 工作负载当前状态的简单可视化概览以及可改进的路线图的一种方式。该仪表板提供了一个集群范围的概述,以及按类别、命名空间和工作负载划分的结果。

Polaris中的默认标准相当高,所以如果你的分数低于你的预期,不要感到惊讶。Polaris的一个关键目标是设定一个高标准,并以默认配置为目标。

文件准备polaris-dashboard.yamlpolaris.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

02

node-problem-detector

node-problem-detector的目的是让集群管理栈中的上游层看到各种节点问题。它是一个运行在每个节点上的守护进程,检测节点问题并向apiserver报告。补救系统是一个或多个进程,旨在尝试补救节点-问题检测器检测到的问题。补救系统观察节点-问题检测器发出的事件和/或节点状况,并采取行动使Kubernetes集群恢复到健康状态。descheduler是一个存在的补救系统。

文件准备:node-problem-detector.tar.xznode-problem-detector-config.yamlnode-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

descheduler

当一个新的pod出现时,调度器的决策会受到它对Kubernetes集群的看法的影响。由于Kubernetes集群是非常动态的,它们的状态会随着时间的推移而变化,可能会因为各种原因而希望将已经运行的pod移到其他一些节点上。

一些节点的利用率不足或过高。
原来的调度决策不再成立,因为污点或标签被添加到节点上或从节点上删除,pod/节点的亲和力要求不再满足。
有些节点失败了,它们的豆荚移到了其他节点上。
新的节点被添加到集群中。

因此,在集群中可能会有几个豆荚安排在不太需要的节点上。Descheduler根据其策略,找到可以移动的pod,并驱逐它们。请注意,在当前的实现中,descheduler并不安排替换被驱逐的pods,而是依靠默认的调度器来实现。

文件准备:deschedulerv0200.tar.xzdescheduler-rbac.yamldescheduler-configmap.yamldescheduler-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

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