Kubernetes控制器管理器Pod不更新

时间:2018-11-26 12:22:23

标签: kubernetes kube-controller-manager

我正在尝试向我的kubernetes控制器管理器中添加一些额外的标志,并且正在更新/etc/kubernetes/manifests/kube-controller-manager.yaml文件中的标志。但是我要添加的更改没有生效。 kubelet正在检测对文件的更改,并正在重新启动Pod,但是一旦重新启动,它们就会带有旧标志。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

其背后的原因是,当您传递新标志并且kube-controller-manager容器已重新启动(pod restart doesn't mean container restart)但kube-controller-manager container仍在使用旧标志时,容器是从旧标志开始的

使用以下命令进行检查:

docker ps --no-trunc | grep "kube-controller-manager --"
dcc828aa22aae3c6bb3c4ba31d0cfcac669b9c47e4cf50af580ebbb334bfea9f   sha256:40c8d10b2d11cbc3db2e373a5ffce60dd22dbbf6236567f28ac6abb7efbfc8a9                                          "kube-controller-manager --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt --cluster-signing-key-file=/etc/kubernetes/pki/ca.key --pod-eviction-timeout=30s --leader-elect=true --use-service-account-credentials=true --controllers=*,bootstrapsigner,tokencleaner --root-ca-file=/etc/kubernetes/pki/ca.crt --address=127.0.0.1 --kubeconfig=/etc/kubernetes/controller-manager.conf --service-account-private-key-file=/etc/kubernetes/pki/sa.key --allocate-node-cidrs=true --cluster-cidr=192.168.13.0/24 --node-cidr-mask-size=24"                                                  

一旦您更新/etc/kubernetes/manifests/kube-controller-manager.yaml文件中的标志,请重新启动kube-controller-manager的docker容器,更改将生效。您可以使用以下命令来重新启动kube-controller-manager容器:

docker restart $(docker ps --no-trunc | grep "kube-controller-manager --" | awk '{print $1}')

希望这会有所帮助。

答案 1 :(得分:0)

因此,似乎/ etc / kubernetes / manifests下的任何文件都由kubelet加载。因此,当我添加新标志时,我正在备份扩展名为.bak的现有文件,但kubelet仍在加载.bak文件而不是新的.yaml文件。在我看来,多数民众赞成在一个错误。无论如何,很高兴发现错误。