在使用kubeadmin init
配置kubernetes集群时,它会创建一个集群,使kube-apiserver
,etcd
,kube-controller-manager
和kube-scheduler
进程保留在docker容器中。< / p>
每当kube-apiserver
的某些配置(例如访问令牌)发生变化时,我都会重新启动相关服务器。虽然我通常可以在其他安装上运行systemctl restart kube-apiserver.service
,但我已经杀死了该安装上的docker容器,或者重新启动系统以重新启动它。
那么有没有更好的方法来重新启动kube-apiserver
?
答案 0 :(得分:7)
您可以删除kube-apiserver Pod。它是static Pod(如果是kubeadm安装),将立即重新创建。
如果我没记错,该安装的清单目录是/ etc / kubernetes / manifest,但我稍后会检查并编辑这个答案。只需触摸kube-apiserver.json,也可以重新创建Pod。
答案 1 :(得分:2)
实际上有一个命令:
docker restart <containername/ID>
重新加载服务将应用一些配置更改。像nginx.conf中的常见指令一样。如果您的服务支持重新加载,您可以尝试以下操作:
docker kill -s HUP <nginx container>
这将重新加载nginx服务。
重新启动容器的主进程将使容器停止。
我已杀死该安装上的docker容器或重新启动 系统重新启动它。
请不要重启整个服务器。
答案 2 :(得分:0)
如果 kube-api 作为静态 pod 运行,您可以通过在 master 上重启 kubelet 来重启它
systemctl restart kubelet
您可以在 /etc/kubernetes/manifests 位置检查默认的静态 pod 配置。