1、在线安装方式

1.1 K3S集群搭建

1.1.1 主机安装

  1. #安装脚本
  2. curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
  3. 停用命令:systemctl start k3s
  4. 停用命令:systemctl start k3s

运行此安装后:

  • K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
  • 将安装其他实用程序,包括kubectl、crictl、ctr、k3s-killall.sh 和 k3s-uninstall.sh。
  • kubeconfig文件写入到/etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件

1.1.2 客户端安装

要在工作节点上安装并将它们添加到集群,请使用K3S_URL和K3S_TOKEN环境变量运行安装脚本。以下示例演示了如何加入 worker 节点:

  1. curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.11.132:6443 K3S_TOKEN=mynodetoken sh -

设置K3S_URL参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册。K3S_TOKEN使用的值存储在你的服务器节点上的/var/lib/rancher/k3s/server/node-token路径下。

注意 每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。

1.2 Rancher安装

  1. docker run -d --privileged --restart=unless-stopped -p 8480:80 -p 8443:443 rancher/rancher:latest
  2. docker run -itd --privileged -p 8480:80 -p 8443:443 --name rancher --restart=unless-stopped -e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.6.2" registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.2

1.3 racher 中添加 k3s 及基本设置

添加k3s

  • 登录 rancher server:8480
  • 右下角:切换简体中文
  • Global —> Add Cluster —> import an existing cluster
  • 填写名字: k3s , create , 到达界面 Add Cluster - Import
  • 选最后一行的命令:类似于 curl —insecure -sfL https://192.168.5.10:8443/v3/import/52hmtkfq26f52fkn969jg7dbmrmxl6f27fkgcn8dgckb5tq4j5chm7.yaml | kubectl apply -f -

    注意:因为是k3s 所以要在 kubectl 前面添加 k3s

  • 等一会, k3s 就会显示启动了。

    2、离线安装方式

    2.1 手动部署镜像

    2.1.1 前提条件

    我们假设您已经在离线环境中创建了节点。这种方法需要您手动将必要的镜像部署到每个节点,适用于运行无法部署镜像仓库的边缘部署场景。

    2.1.2 操作步骤

    请按照以下步骤准备镜像目录和 K3s 二进制文件。

  1. K3s GitHub Release页面获取你所运行的 K3s 版本的镜像 tar 文件。
  2. 将 tar 文件放在images目录下,例如:

    1. sudo mkdir -p /var/lib/rancher/k3s/agent/images/
    2. sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/
  3. 将 k3s 二进制文件放在 /usr/local/bin/k3s路径下,并确保拥有可执行权限。完成后,现在可以转到下面的安装 K3s部分,开始安装 K3s

    2.2 安装K3S

    2.2.1 操作步骤

  4. K3s GitHub Release页面获取 K3s 二进制文件,K3s 二进制文件需要与离线镜像的版本匹配。

  5. 获取 K3s 安装脚本:https://get.k3s.io
  6. 将二进制文件放在每个节点的/usr/local/bin中,并确保拥有可执行权限。将安装脚本放在每个节点的任意位置,并将其命名为install.sh。

    2.2.2 安装选项

    您可以在离线环境中执行单节点安装,在一个 server(节点)上安装 K3s,或高可用安装,在多个 server(节点)上安装 K3s
    单节点安装

  7. 在 server 节点上运行以下命令:

    1. INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
  8. 然后,要选择添加其他 agent,请在每个 agent 节点上执行以下操作。注意将 myserver 替换为 server 的 IP 或有效的 DNS,并将 mynodetoken 替换 server 节点的 token,通常在/var/lib/rancher/k3s/server/node-token

    INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken ./install.sh
    

    高可用安装
    您需要调整安装命令,以便指定INSTALL_K3S_SKIP_DOWNLOAD=true并在本地运行安装脚本。您还将利用INSTALL_K3S_EXEC=’args’为 k3s 提供其他参数。
    例如,使用外部数据库实现高可用安装指南的第二步提到了以下内容:

    curl -sfL https://get.k3s.io |sh -s - server \
    --datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"
    

    由于在离线环境中无法使用curl命令进行安装,所以您需要参考以下示例,将这条命令行修改为离线安装:

    INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --datastore-endpoint=mysql://username:password@tcp(hostname:3306)/database-name' ./install.sh
    

    注意 K3s 还为 kubelets 提供了一个—resolv-conf标志,这可能有助于在离线网络中配置 DNS。