K3S 安装
Johann Li | October 06, 2022
省流: 参照 官方的 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_START
和INSTALL_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 -