1

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

有任何想法吗?

4

2 回答 2

1

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

于 2018-11-26T14:52:50.503 回答
0

其背后的原因是容器使用旧标志启动,当您传递新标志并且kube-controller-managerpod 重新启动(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}')

希望这可以帮助。

于 2018-11-26T12:45:01.423 回答