[英]Kubeadm and the Risks of Scheduling Pods on Master Node (Pods always Pending)
在關於使用kubeadm創建群集的kubernetes文章的同時,當我嘗試安裝的AddOn pod(Nginx,Tiller,Grafana,InfluxDB,Dashboard)始終處於Pending狀態時,我被困住了。
檢查來自kubectl describe pod tiller-deploy-df4fdf55d-jwtcz --namespace=kube-system
的消息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。
該文檔指出“出於安全原因,您的群集不會在主服務器上安排pod”。 我知道這是一個非生產環境,因此在這種情況下幾乎沒有風險但是在生產集群中消除污染的風險是什么?
后續行動:如果這是一個風險,我該如何重新添加該污點,以便我可以卸載AddOn pod並嘗試讓調度程序在我的工作節點上安裝它們?
環境詳細信息:操作系統 - CentOS 7.4.1708(核心)Kubernetes版本 - 1.10
原因是我還沒有將工作節點連接到集群,以便調度程序安排pod。
100%正確。 你肯定會想要一些工作節點,否則“調度工作”的想法變得非常奇怪。
但是在生產集群中消除污染的風險是什么?
我不是kubernetes安全專家,但實際風險是主節點上的CPU,I / O和/或內存耗盡,這將對集群的運行狀況產生非常嚴重的影響。 幾乎沒有理由在主節點上運行任何工作負載,並且幾乎完全增加了風險,因此“只是不這樣做”的建議是有根據的。
如何重新添加該污點,以便我可以卸載AddOn pod並嘗試讓調度程序在我的工作節點上安裝它們?
我不確定我是否遵循了這個問題,但我肯定會先嘗試添加一個工作節點,然后再嘗試使用污點和容忍來復雜化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.