本文描述如何安装一个带有外部数据库的高可用的 K3s 集群。
1$ curl -sfL https://get.k3s.io | sh -s - server \
2 --datastore-endpoint='mysql://username:password@tcp(hostname:3306)/k3s'
笔者用的是 MySQL 数据库,其他数据库的格式请参阅 Cluster Datastore Options.
国内服务器安装可能会比较慢,可以利用国内镜像来安装:
1$ curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
2 --datastore-endpoint='mysql://username:password@tcp(hostname:3306)/k3s'
1# sudo k3s kubectl get nodes
2NAME STATUS ROLES AGE VERSION
3vm-0-3-ubuntu Ready control-plane,master 16s v1.23.6+k3s1
添加节点之前,我们需要在之前安装的节点上获取 TOKEN:
1$ sudo cat /var/lib/rancher/k3s/server/token
2K3S_SERVER_TOKEN
添加节点和安装命令区别不大,只需要额外指定 TOKEN:
1$ curl -sfL https://get.k3s.io | sh -s - server \
2 --token=K3S_SERVER_TOKEN \
3 --datastore-endpoint='mysql://username:password@tcp(hostname:3306)/k3s'
镜像版命令:
1$ curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
2 --token=K3S_SERVER_TOKEN \
3 --datastore-endpoint='mysql://username:password@tcp(hostname:3306)/k3s'
1$ sudo k3s kubectl get nodes
2NAME STATUS ROLES AGE VERSION
3vm-0-3-ubuntu Ready control-plane,master 20m v1.23.6+k3s1
4vm-0-15-ubuntu Ready control-plane,master 50s v1.23.6+k3s1
5vm-16-17-ubuntu Ready control-plane,master 22s v1.23.6+k3s1
至此,我们已经安装好了一个三节点的高可用 K3s 集群。