K3S 安装

省流: 参照 官方的 K3S 安装部署方式即可

这几只是简单记录一下,有着单个 server 多个 agent 的环境如何部署。

部署 server

简单来说,指定如下命令即可:

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

sh - 这个部分可以增加,一些环境变量,来进行配置,详细的环境变量在 官方文档 中有说明,其中有用的是

  • INSTALL_K3S_SKIP_DOWNLOAD 用来通知安装脚本,机子上已经安装好了 k3s,(比如 TrueNAS scale 系统),不要去覆盖系统里面已经安装好的 k3s 二进制文件。需要将这个环境变量设置为 true
  • INSTALL_K3S_SKIP_STARTINSTALL_K3S_SKIP_ENABLE 告诉启动脚本不要启动 k3s 相关服务,如果你要在安装完成之后,西安修改一些配置,比如 /var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl
  • INSTALL_K3S_VERSION 指定安装的版本或者 channel,参考这里
  • INSTALL_K3S_EXEC 指定了 server (或者 agent) 运行的时候,需要转嘀给 k3s 的额外的参数。其中:
    • --write-kubeconfig ~/.kube/config 可以让 安装脚本在 ~/.kube/config 创建一个访问 k8s 的数据;
    • --cluster-cidr 172.30.0.0/16 指定 集群 IP 分配空间;
    • --service-cidr 172.31.0.0/16 指定 服务 IP 分配空间;
    • --cluster-domain k3s.qinka.pro 指定 集群的域名(前缀);
    • --tls-san xxx.qinka.pro 创建签名的时候,添加额外的域名;
    • --snapshotter=fuse-overlayfs 在 TrueNAS scale 上面遇见的存储中的问题的解决方法。
  • K3S_NODE_NAME 指定了 server (或者 agent)的节点的名字,就是在 kubectl get node 中显示的名称。

例如:

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--write-kubeconfig ~/.kube/config --cluster-cidr 172.30.0.0/16 --service-cidr 172.31.0.0/16 --cluster-domain k3s.qinka.pro --tls-san xxx.qinka.pro " K3S_NODE_NAME='xxx' sh -

部署 agent

部署 agent 的话,和上面的命令是一样的,只不过是多了几个必须增加的参数:

  • K3S_URL 指定了 server 的 URL, URL 的格式,一般是 https://example.domain:6443 (如果你没有修改过端口的话),其中的域名也可以换成 IP,比如 https://123.45.6.7:6443
  • K3S_TOKEN 就是从 server 服务器端,文件 /var/lib/rancher/k3s/server/node-token 里面的内容。

例如

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_NODE_NAME=aabb INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--snapshotter=fuse-overlayfs" K3S_URL=https://xxx.qinka.pro:6443 K3S_TOKEN=xxyyzz sh -