Centos7系统初始通过tar.gz文件安装的1.28.2版本的k8s。因网络插件不支持此版本,后通过tar.gz文件安装了1.25.6版本的k8s。
操作步骤如下
备份原1.28.2版本解压的kubernetes目录
mv kubernetes kubernetes_bak
解压1.25.6版本的k8s文件
tar -zxvf tar -zxvf kubernetes-server-linux-amd64.tar.gz
停止应用
systemctl stop kube-apiserver
systemctl stop kube-controller-manager
systemctl stop kube-scheduler
systemctl stop kubelet
systemctl stop kube-proxy
将应用文件复制到其他节点
scp kube-apiserver kube-controller-manager kube-scheduler kubectl k8s-master2:/usr/local/bin/
scp kubelet kube-proxy k8s-master1:/usr/local/bin
scp kubelet kube-proxy k8s-master2:/usr/local/bin
scp kubelet kube-proxy k8s-node1:/usr/local/bin
scp kubelet kube-proxy k8s-node2:/usr/local/bin
启动
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
现kube-controller-manager无限重启
可以考虑以下几个方面:
1版本兼容性:首先,要确认1.25版本是否兼容你当前的环境和应用程序。在降级之前,最好查看Kubernetes官方文档或相关社区论坛,了解不同版本之间的差异以及潜在的兼容性问题。
2资源限制:检查Kubernetes集群的资源限制是否适当。如果资源不足,可能会导致Controller Manager无法正常启动。可以尝试增加资源限制,例如增加CPU和内存的配额。
3配置问题:检查Controller Manager的配置文件是否正确。可能是某些配置参数在降级后发生了变化,需要进行相应的调整。可以对比1.28版本和1.25版本的配置文件,找出其中的差异并进行调整。
4依赖问题:确认所有与Controller Manager相关的组件和依赖项是否正确安装并更新到兼容的版本。例如,API Server、Scheduler、ETCD等组件都需要检查是否与Controller Manager版本兼容。
5日志分析:查看Controller Manager的日志,分析具体的错误信息。日志文件通常位于/var/log/kube-controller-manager.log(具体路径可能因环境而异)。通过仔细分析日志中的错误信息,可以更准确地定位问题所在。
针对你遇到的问题,我建议按照以下步骤操作:
1确认版本兼容性,并查看官方文档了解降级注意事项。
2检查集群资源限制,适当调整资源配额。
3对比配置文件,确认是否存在配置错误。
4确认依赖项的正确安装和版本兼容性。
5查看Controller Manager的日志文件,进行详细的错误分析。