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

Kubeadm创建的集群的Kube控制器管理器和Kube APIServer问题

  •  0
  • codependent  · 技术社区  · 7 年前

    我使用kubeadm创建了一个k8s集群,并对kube控制器管理器和kuber apiserver组件提出了几个问题。

    • 当使用kubeadm创建时,这些组件以pods启动,而不是以systemd守护进程启动。如果我杀死了这些豆荚中的任何一个,它们就会重新启动,但是谁会重新启动它们呢?我没有看到任何复制控制器或部署负责这样做。

    • 更新配置的“正确”方法是什么?假设我想更改API服务器的授权模式。在主节点中,我们可以找到 /etc/kubernetes/manifests 文件夹 kube-apiserver.yaml 文件。我们是否应该更改这个文件并终止pod,以便它用新的配置重新启动?

    1 回复  |  直到 7 年前
        1
  •  1
  •   VAS    7 年前

    您所描述的特性称为静态pods。这是 documentation 描述了他们的行为。

    静态pods由kubelet守护进程在特定节点上直接管理, 没有API服务器的观察。它没有关联的 复制控制器和kubelet守护进程本身监视它,并且 当它崩溃时重新启动。没有健康检查。静态吊舱是 始终绑定到一个kubelet守护进程并始终在同一节点上运行 带着它。

    Kubelet自动尝试在Kubernetes上创建镜像pod 每个静态pod的api服务器。这意味着吊舱是可见的 在API服务器上,但无法从那里进行控制。

    配置文件只是JSON或 特定目录中的yaml格式。使用Kubelet --pod-manifest-path=<the directory> 开始 kubelet 守护进程,它定期扫描目录并创建/删除静态pods yaml/json文件出现/消失在那里。请注意,Kubelet将忽略 扫描指定目录时以点开始的文件。

    当Kubelet启动时,它会自动启动在 中指定的目录 --pod-manifest-path= --manifest-url= 参数,即我们的静态网络。

    通常,这些清单存储在目录中 /etc/kubernetes/manifests .
    如果对这些清单中的任何一个进行任何更改,那么该资源将像运行一样进行调整。 kubectl apply -f something.yaml 命令。

    推荐文章