
k3s在部署server时containercd下载镜像失败,切换镜像地址为国内的在下次再次启动时会覆盖配置文件。这种问题如何解决

关注让【道友老李】来帮你解答,本回答参考通义千问大模型编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
如果答案让您满意,请采纳、关注,非常感谢!### 问题描述 在使用k3s部署server时,由于网络原因,containerd下载镜像失败。尝试切换镜像地址为国内的镜像源,但在下次启动时,配置文件被覆盖,导致需要重新设置。
为了解决这个问题,可以通过以下几种方法来持久化配置:
--docker参数,指定国内的镜像源。假设你使用的是Ubuntu系统,配置文件通常位于/etc/systemd/system/k3s.service。
打开配置文件:
sudo nano /etc/systemd/system/k3s.service
在ExecStart行中添加--docker参数,指定国内的镜像源。例如:
ExecStart=/usr/local/bin/k3s server --docker 'registry.cn-hangzhou.aliyuncs.com/google_containers'
保存并退出编辑器,然后重新加载systemd配置并重启k3s服务:
sudo systemctl daemon-reload
sudo systemctl restart k3s
编辑/etc/environment文件,添加环境变量:
sudo nano /etc/environment
添加以下内容:
export K3S_DOCKER_REGISTRY=registry.cn-hangzhou.aliyuncs.com/google_containers
使环境变量生效:
source /etc/environment
重启k3s服务:
sudo systemctl restart k3s
创建一个新的服务单元文件:
sudo nano /etc/systemd/system/k3s-custom.service
添加以下内容:
[Unit]
Description=k3s Custom Service
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/k3s server --docker 'registry.cn-hangzhou.aliyuncs.com/google_containers'
Restart=always
RestartSec=5
KillMode=process
[Install]
WantedBy=multi-user.target
重新加载systemd配置并启用新的服务单元文件:
sudo systemctl daemon-reload
sudo systemctl enable k3s-custom
sudo systemctl start k3s-custom
通过以上三种方法,可以有效地解决k3s在部署server时containerd下载镜像失败的问题,并且确保配置文件不会在下次启动时被覆盖。选择适合你的方法进行操作即可。