首页 文章

Kubeadm和主节点上的Pod调度风险(Pod总是等待)

提问于
浏览
5

在关注Using kubeadm to Create a Cluster上的kubernetes文章时,当我尝试安装的AddOn pod(Nginx,Tiller,Grafana,InfluxDB,Dashboard)始终保持 Pending 状态时,我被卡住了 .

检查 kubectl describe pod tiller-deploy-df4fdf55d-jwtcz --namespace=kube-system 中的消息导致以下消息:

Type     Reason            Age                From               Message
----     ------            ----               ----               -------
Warning  FailedScheduling  51s (x15 over 3m)  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

当我从 Master Isolation 部分 kubectl taint nodes --all node-role.kubernetes.io/master- 运行命令时,AddOns将按预期安装 .

此时我只能怀疑(因为它们已经安装在主节点上),原因是我还没有将工作节点连接到集群,而调度程序还没有安排pod .

该文档指出“出于安全原因,您的群集不会在主服务器上安排pod” . 我知道这是一个非 生产环境 环境,因此在这种情况下几乎没有风险但是在 生产环境 集群中消除污染的风险是什么?

后续行动:如果这是一个风险,我该如何重新添加该污点,以便我可以卸载AddOn pod并尝试让调度程序在我的工作节点上安装它们?

环境详细信息:操作系统 - CentOS 7.4.1708(核心)Kubernetes版本 - 1.10

1 回答

  • 6

    原因是我还没有将工作节点连接到集群,以便调度程序安排pod .

    100%正确 . 你肯定会想要一些工作节点,否则“调度工作”的想法变得非常奇怪 .

    但是在 生产环境 集群中消除污染的风险是什么?

    我不是kubernetes安全专家,但实际风险是主节点上的CPU,I / O和/或内存耗尽,这将对集群的运行状况产生非常严重的后果 . 几乎没有理由在主节点上运行任何工作负载,并且几乎完全增加了风险,因此建议"just don't do it"是有根据的 .

    如何重新添加该污点,以便我可以卸载AddOn pod并尝试让调度程序在我的工作节点上安装它们?

    我不确定我是否遵循了这个问题,但我肯定会先尝试添加一个工作节点,然后再尝试使用污点和容忍来复杂化 .

相关问题