代码之家  ›  专栏  ›  技术社区  ›  Flea

Kubeadm和在主节点上调度POD的风险(POD总是挂起)

  •  9
  • Flea  · 技术社区  · 6 年前

    在kubernetes的文章之后 Using kubeadm to Create a Cluster ,当我试图安装的插件(Nginx、Tiller、Grafana、InfluxDB、Dashboard)始终处于 悬而未决的

    正在检查来自的邮件 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- ,插件将按预期安装。

    此时,我只能怀疑(因为它们已经安装在主节点上),原因是我还没有将工作节点连接到集群,以便调度器在其上调度POD。

    文档中指出“出于安全原因,您的集群不会在主机上调度POD”。我知道这是一个非生产环境,因此在这种情况下风险很小,但在生产集群中消除这种污染的风险是什么?

    跟进:如果这是一个风险,我如何重新添加该污染,以便卸载插件吊舱,并尝试让调度程序将其安装到我的工作节点上?

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

    1 回复  |  直到 6 年前
        1
  •  10
  •   mdaniel    6 年前

    原因是我还没有将工作节点连接到集群,以便调度器在其上调度POD。

    完全正确。您肯定需要一些工作节点,否则“安排工作”的想法会变得非常奇怪。

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

    我不是kubernetes安全专家,而是 实用的 风险是主节点上的CPU、I/O和/或内存耗尽,这将对集群的健康造成非常严重的后果。几乎没有理由在主节点上运行任何工作负载,而且几乎完全会增加风险,因此“不要这样做”的建议是有根据的。

    我如何重新添加该污点,以便卸载插件吊舱,并尝试让调度器在我的工作节点上安装它们?

    我不确定我是否理解了这个问题,但我肯定会先添加一个worker节点,然后再尝试处理带有污染和容忍的复杂内容。