首页 文章

kubeadm创建的集群的kube-controller-manager和kube-apiserver问题

提问于
浏览
0

我使用kubeadm创建了一个k8s集群,并且有一些关于kube-controller-manager和kuber-apiserver组件的问题 .

  • 使用kubeadm创建时,这些组件将作为pod启动,而不是systemd守护程序 . 如果我杀死任何这些pod,它们会重新启动,但是谁重新启动它们?我没有看到任何replicacontroller或部署负责这样做 .

  • 更新配置的"right"方式是什么?想象一下,我想要更改api服务器的授权模式 . 在主节点中,我们可以找到带有 kube-apiserver.yaml 文件的 /etc/kubernetes/manifests 文件夹 . 我们是否应该更改此文件并删除pod以便使用新配置重新启动?

1 回答

  • 1

    您描述的功能称为静态窗格 . 以下是描述其行为的documentation的一部分 .

    静态pod由特定节点上的kubelet守护程序直接管理,而API服务器不会观察它 . 它没有关联的复制控制器,并且kubelet守护程序本身会监视它并在崩溃时重新启动它 . 没有 Health 检查 . 静态pod始终绑定到一个kubelet守护程序,并始终与它一起运行在同一节点上 . Kubelet会自动尝试在Kubernetes API服务器上为每个静态pod创建一个镜像窗格 . 这意味着pod在API服务器上可见,但无法从那里进行控制 . 配置文件只是特定目录中json或yaml格式的标准pod定义 . 使用kubelet --pod-manifest-path = <目录>启动kubelet守护程序,该程序定期扫描目录并在yaml / json文件出现/消失时创建/删除静态pod . 请注意,在扫描指定目录时,kubelet将忽略以点开头的文件 . 当kubelet启动时,它会自动启动在--pod-manifest-path =或--manifest-url = arguments中指定的目录中定义的所有pod,即我们的static-web .

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

相关问题