在关注Using kubeadm to Create a Cluster上的kubernetes文章时,当我尝试安装的AddOn pod(Nginx,Tiller,Grafana,InfluxDB,Dashboard)始终处于待定<状态时,我陷入困境/ strong>即可。
检查来自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.
当我从主隔离部分kubectl taint nodes --all node-role.kubernetes.io/master-
运行命令时,AddOns将按预期安装。
此时我只能怀疑(因为它们已经安装在主节点上),原因是我还没有将工作节点连接到集群,但调度程序还没有安排pod。 / p>
文档说明&#34;出于安全原因,您的群集不会在主服务器上安排容器&#34;。我知道这是一个非生产环境,因此在这种情况下几乎没有风险,但是在生产集群中消除污染的风险是什么?
跟进:如果这是一个风险,我该如何重新添加该污点,以便我可以卸载AddOn pod并尝试让调度程序在我的工作节点上安装它们?
环境详情:操作系统 - CentOS 7.4.1708(核心)Kubernetes版本 - 1.10
答案 0 :(得分:8)
原因是我还没有将工作节点连接到群集,而调度程序也没有安排pod。
100%正确。你肯定会想要一些工作节点,否则就会想到&#34;调度工作&#34;变得非常奇怪。
但是在生产群集中删除污点的风险是什么?
我不是kubernetes安全专家,但实用风险是主节点上的CPU,I / O和/或内存耗尽,这会对健康状况产生非常严重的影响。簇。几乎没有理由在主节点上运行任何工作负载,并且几乎完全增加了风险,因此建议&#34;只是不做它&#34;是有根据的。
如何重新添加该污点,以便我可以卸载AddOn pod并尝试让调度程序在我的工作节点上安装它们?
我不确定我是否遵循了这个问题,但我肯定会先尝试添加一个工作节点,然后再尝试使用污点和容忍来做复杂的事情。