【问题标题】:Why kubelet is running on kubernetes master node?为什么 kubelet 在 kubernetes 主节点上运行?
【发布时间】:2020-02-17 06:32:04
【问题描述】:

我已经使用 kubeadm 在本地笔记本电脑上部署了一个 kubernetes 集群(1 个 master 和 2 个 worker)。

注意到 kubelet 也在主节点上运行。从我之前读过的文章来看,kubelet 只需要在工作节点上。谁能告诉我为什么 kubernetes 主节点运行 kubelet 服务?

【问题讨论】:

    标签: kubernetes kubernetes-pod


    【解决方案1】:

    原因是 kubeadm 使用容器(pod)来部署 etcd 和 api 服务器组件。为此,静态清单被创建为 yaml 文件,这些文件由主节点上的 kubelet 拾取以提供基础设施 pod。

    另一个好处是您可以从 kubernetes api 获得主节点指标。

    【讨论】:

    • 是否只有使用 kubeadm 进行集群部署时才会出现这种情况?也只有在初始基础设施组件部署时才需要 master 上的 kubelet?部署集群后,是否可以停止/删除 kublet?
    • 这就是 kubeadm 的工作方式,例如,其他方法可以使用本机 systemd 单元。不应停止/删除 kubelet,因为它用于确保基础设施 pod 继续运行,最后但并非最不重要的是,kubeadm 集群升级也使用静态清单。所以就继续吧。
    • 感谢托马斯提供的信息
    【解决方案2】:

    Kubelet 是用于管理 Pod 的 Kubernetes 代理。 您的主节点上也有一些 Pod 正在运行。例如,您的网络 Pod、您的 etcd Pod(如果您自己没有提供其集群)以及您在主节点上运行的任何其他 Pod(节点导出器、日志收集器等)或您没有提供的任何 DaemonSet '不容忍他们不被安排在你的主节点上是在你的主节点上运行的 Pod 的种类。所以 Kubernetes 需要 Kubelet 来管理它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 2020-03-17
      • 2019-11-23
      • 2018-03-14
      • 2018-07-21
      • 1970-01-01
      • 2019-07-24
      • 2015-03-06
      相关资源
      最近更新 更多