我正在运行一个拥有1个主节点和1个节点的集群。现在,当我运行守护进程时,它只显示1个所需节点,而它应该是2.我没有在describe / logs中找到任何错误,但守护进程只选择1个节点运行。我正在使用kubernetes 1.9.1。
知道我做错了什么吗?或者如何调试呢? TIA。
答案 0 :(得分:7)
默认情况下,出于安全原因,您的群集不会在主服务器上安排pod。如果您希望能够在主服务器上安排pod,例如对于用于开发的单机Kubernetes集群,运行:
kubectl taint nodes --all node-role.kubernetes.io/master-
答案 1 :(得分:6)
如果k8s主节点只有node-role.kubernetes.io/master: NoSchedule
污点而没有容忍,就会发生这种情况。
在k8s 1.6或更高版本中需要the node-role.kubernetes.io/master: NoSchedule
容忍来在主节点上安排守护进程。
为YAML文件中的守护进程添加以下容差,以便在主节点上生成k8s调度守护进程:
...
kind: DaemonSet
spec:
...
template:
...
spec:
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
可以通过以下方式检查主节点的污点:
kubectl describe node <master node>
可以通过以下方式检查容器的容差:
kubectl describe pod <pod name>
有关守护进程的更多信息,请参见https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/。