当使用kubeadmin init
配置kubernetes集群时,它会创建一个集群,该集群将kube-apiserver
,etcd
,kube-controller-manager
和kube-scheduler
进程保存在docker容器中。
每当kube-apiserver
的某些配置(例如访问令牌)发生更改时,我必须重新启动相关服务器。虽然我通常可以在其他安装上运行systemctl restart kube-apiserver.service
,但我已经杀死了该安装上的docker容器或重新启动系统以重新启动它。
那么有没有更好的方法来重新启动kube-apiserver
呢?
4条答案
按热度按时间kpbpu0081#
您可以删除kube-apiserver Pod。它是一个static Pod(如果安装了kubeadm),并将立即重新创建。
如果我没记错的话,该安装的manifest目录是/etc/kubernetes/manifest,但我稍后会检查并编辑这个答案。只需在kube-apiserver.json上做一点触摸,也会重新创建Pod。
xdnvmnnf2#
实际上有一个命令:
字符串
某些配置更改将通过reload服务来应用。类似于nginx. conf中的常见指令。如果您的服务支持reload,您可以尝试以下操作:
型
这将重新加载nginx服务。
重新启动容器的主进程将使容器停止。
我已经杀死了安装上的docker容器,或者重新启动系统来重新启动它。
请不要为此重新启动整个服务器。
pdtvr36n3#
docker ps -af 'name=k8s_POD_(kube-apiserver| Kube-controller-Manager| Kube-scheduler| etcd)-*' -q|/usr/bin/xargs /bin/docker rm -f
cmssoen24#
临时重命名主节点上/etc/kubernetes/manifests下的文件会导致pod重新创建。
另一种方法是重新启动pod下运行的容器。使用containerd,您需要首先删除任务(相当于停止容器),然后删除容器:
字符串