k3s常见故障处理

k3s常见故障处理

1、更换IP

描述:k3s集群搭建完成后,且运行一段时间后,用户调整网络,想更改管理IP .

参考 K3s 迁移后,IP变更,导致服务无法启动 - K3s - Rancher 中文论坛

K3s 更换ip与agent改server - K3s - Rancher 中文论坛

如何从单节点 K3s 迁移到高可用 (qq.com)

经验证,在部署k3s集群后,如果改变节点IP,只需要执行以下步骤即可恢复集群状态

1)、修改文件/etc/systemd/system/k3s.service,把里面的3个设置为改变之前的IP变更为现在的IP

--advertise-address=x.x.x.x
--node-external-ip=x.x.x.x
--tls-san=x.x.x.x

2)、然后执行以下命令让k3s使用最新的ip

systemctl daemon-reload
systemctl restart k3s

3)、验证集群状态

kubectl get node -o wide
kubectl get pod -A -o wide

2、更换主机名称

参考 How to change a node name to another? · k3s-io/k3s · Discussion #6547 (github.com)

单节点改变主机名称

1)改变节点hostname

hostnamectl set-hostname xxxx-new

2)重启k3s服务,并且删除旧节点名称的实体

systemctl restart k3s
kubectl delete node xxxx-old

等待几分钟,pod会自动重启采用新的节点名称.

3、磁盘占满

删除一下不再使用的文件,释放磁盘空间,直到k3s重启可用.

systemctl restart k3s

4、更换calico为开源flannel

首先卸载calico

cd k3sappdeploy && kubectl delete -f calicov23273.yaml
#清理node上calico的配置
rm -rf /etc/cni/net.d/10-calico.conflist
rm -rf /etc/cni/net.d/calico-kubeconfig
rm -rf /var/lib/cni/results

重启k3s,并部署开源flannel。重启节点或者删除每个pod自建使用新的网络插件。

systemctl restart k3s
cd flannel && ./flannel_install.sh

开源flannel切换为calico

首先卸载flannel

cd flannel && kubectl delete -f kube-flannel.yml
# 清理节点上的flannel配置
rm -rf /etc/cni/net.d/10-flannel.conflist
rm -rf /var/lib/cni/results

重启k3s,并部署开源calico。

systemctl restart k3s
cd k3sappdeploy && kubectl apply -f calicov23273.yaml

重启节点或者删除每个pod自建使用新的网络插件。

5、更改节点时间超前 或者超后

参考

k3s证书过期解决方法(终极解决-超级简单)-优快云博客

处理过期时间(朝后)如下

注意顺序:因为如果设置系统时间已经过期,是无法调用kubectl 删除 证书的,必须要在有效期内(这个可以手动设置一下时间在有效期内)操作

1、关闭时间同步

timedatectl set-ntp no
2、查看k3s过期时间

for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done

3、删除 secret k3s-serving

kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving
4、删除系统中的文件dynamic-cert.json

rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json
3、设置时间系统时间到 2050-01-01

date -s 20500101
6、重启k3s

systemctl restart k3s
7、查看过期时间

for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done

8、打开时间同步

timedatectl set-ntp yes
执行后,再查看证书过期时间

for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done

搞定!

时间超前的话,无解(或者等着时间慢慢流逝到k3s部署时间之后吧),或者卸载重装k3s集群!!!

时间超前的话,无解(或者等着时间慢慢流逝到k3s部署时间之后吧),或者卸载重装k3s集群!!!

时间超前的话,无解(或者等着时间慢慢流逝到k3s部署时间之后吧),或者卸载重装k3s集群!!!

6、系统盘重装操作系统,恢复k3s集群应用的数据信息

参考 https://docs.k3s.io/zh/datastore/backup-restore

容器化应用的救命稻草:K3s 备份和恢复中文指南-优快云博客

13-K3S 备份和恢复_k3s "remote-peer-urls-优快云博客

k3s常见问题-liangyuanpeng 的博客 | liangyuanpeng’s Blog

参考kubekey etcd的定时备份方案,定时备份嵌入sqlite数据库文件到数据盘的目录。

此外,还需要备份/var/lib/rancher/k3s/server/token文件。

恢复

需要删除原来的token配置文件/etc/systemd/system/k3s.service.env。以及以原来的token为基础生成的证书文件和配置文件

rm -rf /etc/systemd/system/k3s.service.env
rm -rf /var/lib/rancher/k3s/server/tls #(指定的文件)
rm -rf /var/lib/rancher/k3s/server/cred #(指定的文件)
# 轮换证书
k3s certificate rotate

启动k3s

systemctl restart k3s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值