我正在尝试向我的kubernetes控制器管理器中添加一些额外的标志,并且正在更新/etc/kubernetes/manifests/kube-controller-manager.yaml文件中的标志。但是我要添加的更改没有生效。 kubelet正在检测对文件的更改,并正在重新启动Pod,但是一旦重新启动,它们就会带有旧标志。
有什么想法吗?
答案 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文件。在我看来,多数民众赞成在一个错误。无论如何,很高兴发现错误。