K3s离线安装配置镜像加速时出现问题

环境信息:
K3s 版本: v1.29.3+k3s1

节点 CPU 架构、操作系统和版本::
Linux k8s-master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

集群配置:
1 servers, 2 agents

问题描述:

  1. 通过创建/etc/rancher/k3s/registries.yaml文件的方式配置镜像加速,master节点没有效果,且工作节点的/etc/rancher目录下没有k3s文件夹(不清楚是不是没有安装好,都是跟着网上的教程进行的)。
  2. 通过复制config.toml.tmpl文件的方式配置镜像加速,master节点重启服务后状态变为NotReady;工作节点重启服务卡死。

小白开始学习,可能是自己的操作问题,麻烦大佬们指点 :heart:
日志太多了,不知道放哪些才有用,篇幅太长了所以没有放,拜托大佬们了 :pray: :pray: :pray:

复现步骤:

  • 安装 K3s 的命令:
# 关闭防火墙
systemctl disable firewalld --now
# 设置selinux
yum install -y container-selinux selinux-policy-base
yum install -y https://rpm.rancher.io/k3s/latest/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm

mv k3s /usr/local/bin
chmod +x /usr/local/bin/k3s

mkdir -p /var/lib/rancher/k3s/agent/images/
cp ./k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
  • 配置master节点
#修改权限
chmod +x install.sh
#离线安装
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
#安装完成后,查看节点状态
kubectl get node
#查看token
cat /var/lib/rancher/k3s/server/node-token
  • 配置工作节点
INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_URL=https://192.168.92.141:6443 \
K3S_TOKEN=K10ac487d35eda6e15f6611643fb644939d4759d26ea92f72fba9a121427ffd3557::server:4dc7b8e392beada392345ba22f373354 \
./install.sh

预期结果:
所有节点在cat /var/lib/rancher/k3s/agent/etc/containerd/config.toml下均可找到镜像文件

实际结果:

  1. 第一种情况

master节点执行后没有效果

工作节点/etc/rancher目录下没有k3s文件
image

  1. 第二种情况

master节点镜像配置成功,但是成NotReady了

工作节点
image

附加上下文/日志:

日志


在网上查了很多方法,都没有找到能够成功复现的,麻烦各位大佬解惑

从你的操作来看,你并没有设置相关镜像加速的步骤啊

worker 节点是没有 /etc/rancher/k3s 这个文件或者目录的,你要找这个文件的目的是?

这个得看对应 worker 节点 k3s 的日志,参考:https://docs.k3s.io/zh/faq#k3s-日志在哪里

我看教程是在/etc/rancher/k3s/registries.yaml里添加镜像加速的代码,然后重启服务,就配置成功了

第一种情况是在/etc/rancher/k3s/registries.yaml文件里添加代码,然后重启服务
添加的代码

mirrors:
  "docker.io":
    endpoint:
      - "https://c712k9mp.mirror.aliyuncs.com/"

执行以后,master节点并没有什么效果,而worker节点配置不了/etc/rancher/k3s/registries.yaml文件

worker 节点没有目录和文件的话,就自己创建个,然后启动后就会加载了。

至于你说的配置不生效,可参考:Mirrors configured in /etc/rancher/k3s/registries.yaml do not take effect · Issue #9626 · k3s-io/k3s · GitHub

第二种情况是网上找的方法

cp /var/lib/rancher/k3s/agent/etc/containerd/config.toml /var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl
vi /var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl
# 文件内追加的内容
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://c712k9mp.mirror.aliyuncs.com/"]

重启服务后情况就是上面的了,我先试试您下面给的方法,谢谢您的回复 :heart:

通过您上述的方法,最后得到的结果,在hosts.toml文件中的内容如下


这个是已经配置成功了吗?

我看您的是这样的


而我的多了一行,不知道效果是否是一样的

还有一个问题就是会出现下面这种情况


不清楚是不是正常的状况,麻烦大佬看看

crashLoopBackOff 状态肯定不正常啊,得看具体的日志判断原因

重启之后好了,谢谢大佬