Linux离线安装k3s步骤

k3s 是一个实现轻量级和小型化 k8s 集群的软件,支持安装脚本一键安装,有点类似 k8s官方提供的 minikube,但k3s更接近原生的k8s集群,是快速搭建k8s开发学习环境的首选,缺点是只支持Linux环境。

Slogan:

k3s - Kubernetes, but small and simple

由于 k3s 的服务器在国外,我们通过一键安装脚本安装时有时速度会特别慢,或者失败的情况,这时我们可以选择离线安装的方式。

  1. 从 https://github.com/k3s-io/k3s/releases 下载对应架构的 k3s-airgap-images-$ARCH.tar 的以 .tar 为结尾的镜像文件并放到 /var/lib/rancher/k3s/agent/images/目录下,这里以 x64 为例,下同:
wget https://github.com/k3s-io/k3s/releases/download/v1.27.2%2Bk3s1/k3s-airgap-images-amd64.tar
mkdir -p /var/lib/rancher/k3s/agent/images/
sudo mv ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
  1. 从 https://github.com/k3s-io/k3s/releases 下载相同版本的k3s可执行文件( k3s-airgap-images-$ARCH.tar.gz )解压后放到 /usr/local/bin 目录下,
wget https://github.com/k3s-io/k3s/releases/download/v1.27.2%2Bk3s1/k3s-airgap-images-amd64.tar.gz
tar zxvf k3s-airgap-images-amd64.tar.gz
sudo mv k3s /usr/local/bin
sudo chmod +x /usr/local/bin/k3s
  1. 从 https://get.k3s.io/ 获取安装脚本。
curl -SL -o install.sh https://get.k3s.io/
sudo chmod +x install.sh
  1. 添加路由
ip link add dummy0 type dummy
ip link set dummy0 up
ip addr add 169.254.255.254/31 dev dummy0
ip route add default via 169.254.255.255 dev dummy0 metric 1000
  1. 执行安装脚本(设置 INSTALL_K3S_SKIP_DOWNLOAD 环境变量为 true 以执行离线安装)。
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
  1. 默认的单节点,如有需要,可以向集群添加更多节点,在其他机器上重复相同的操作,最后一步改成如下命令:
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://<SERVER_IP>:6443 K3S_TOKEN=<YOUR_TOKEN> ./install.sh

token 存储在 /var/lib/rancher/k3s/server/token 文件中。

  1. 设置国内docker镜像仓库。

k3s默认使用containerd作为容器运行时, k3s可以很方便的设置容器镜像的拉取仓库,新建文件/etc/rancher/k3s/registries.yaml并写入以下内容,然后重启 k3s 服务。

mirrors:
  docker.io:
    endpoint:
      - "https://qbd2mtyh.mirror.aliyuncs.com"
      - "https://mirror.ccs.tencentyun.com"
      - "https://hub-mirror.c.163.com"

重启k3s可以使用命令 systemctl restart k3s.service

$ sudo systemctl restart k3s.service
$ crictl info | grep 'docker.io' -A 10
        "docker.io": {
          "endpoint": [
            "https://qbd2mtyh.mirror.aliyuncs.com",
            "https://mirror.ccs.tencentyun.com",
            "https://hub-mirror.c.163.com"
          ],
          "rewrite": null
        }
      },
      "configs": null,
      "auths": null,

crictl info 输出能看到以上信息说明设置成功。

你可能感兴趣的:(linux,kubernetes,运维,容器,docker)