我正在尝试向kubernetes控制器管理器添加一些额外的标志,并且正在更新/etc/kubernetes/manifests/kube-controller-manager.yaml文件中的标志。但我添加的更改并未生效。kubelet正在检测文件的更改并重新启动pod,但是一旦重新启动,它们就会带着旧的标志返回。
有什么想法吗?
发布于 2018-11-26 14:52:51
因此,/etc/kubernetes/manifests下的任何文件似乎都是由kubelet加载的。因此,当我添加新标志时,我备份了扩展名为.bak的现有文件,但kubelet仍在加载.bak文件,而不是新的.yaml文件。在我看来这是个bug。无论如何,很高兴发现了这个错误。
发布于 2018-11-26 12:45:01
这背后的原因是,当您传递新标志时,容器是使用旧标志启动的,kube-controller-manager
pod重新启动(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}')
希望这能有所帮助。
https://stackoverflow.com/questions/53481043
复制