metrics服务器pod应该在主节点还是工作节点上运行



我是k8s的新手,我正在尝试在主节点上部署仪表板,部署的一部分是启动度量服务器。完整的文档可以在这里找到(仪表板/度量服务器(。

我的问题与部署后我们可以立即看到的警告有关:

$ kubectl describe pods -n kube-system metrics-server-74d7f54fdc-psz5p
Name:           metrics-server-74d7f54fdc-psz5p
Namespace:      kube-system
Priority:       0
Node:           <none>
Labels:         k8s-app=metrics-server
pod-template-hash=74d7f54fdc
Annotations:    <none>
Status:         Pending
IP:
IPs:            <none>
Controlled By:  ReplicaSet/metrics-server-74d7f54fdc
Containers:
metrics-server:
Image:      my.repo.net/k8s.gcr.io/metrics-server-amd64:v0.3.6
Port:       4443/TCP
Host Port:  0/TCP
Args:
--cert-dir=/tmp
--secure-port=4443
Environment:  <none>
Mounts:
/tmp from tmp-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from metrics-server-token-d47dm (ro)
Conditions:
Type           Status
PodScheduled   False
Volumes:
tmp-dir:
Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit:  <unset>
metrics-server-token-d47dm:
Type:        Secret (a volume populated by a Secret)
SecretName:  metrics-server-token-d47dm
Optional:    false
QoS Class:       BestEffort
Node-Selectors:  kubernetes.io/arch=amd64
kubernetes.io/os=linux
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type     Reason            Age                  From               Message
----     ------            ----                 ----               -------
Warning  FailedScheduling  116s (x49 over 66m)  default-scheduler  0/1 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate.

在阅读了其他问题后,例如,在部署到Kubernetes集群时,Node有pod不能容忍错误的污点,而在Kubernete集群中有1个节点有pod不能忍受的污点,我可以理解为什么会出现这个问题,但我很困惑我们是否应该在映像上添加我们自己的关系(https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.3.7):

tolerations:
- key: "example-key"
operator: "Exists"
effect: "NoSchedule"

如果主节点应该能够自己收集度量,那么默认情况下不应该添加此参数?如果没有,那么我们应该在所有工作人员上部署UI(这没有任何意义(。

也许在这方面更有经验的人可以分享一些启示?

度量服务器可以部署到工作节点中——不必部署在主节点中以获取有关主服务器的度量。metric服务器使用kubeapi服务器获取集群的各种度量,对metric服务器的要求是:

  1. 必须可以从kubeapi服务器访问
  2. Kubelet授权集正确引用此链接

您的集群中有工作节点吗?它们有任何污点应用于这些节点吗?此外,根据您的部署,yaml节点选择器已配置为以下值,请确保您的工作节点已获得这2个标签

  • kubernetes.io/arch=amd64
  • kubernetes.io/os=linux

您可以使用以下命令将标签添加到节点(如果不存在(。

kubectl label nodes *node-name* kubernetes.io/arch=amd64

最新更新