我正在尝试使用两个树莓派 4s 为 k3s 设置高可用性,但无法让第二个服务器链接到第一个服务器。
感谢您为使其正常工作提供的任何帮助。
我已经尝试过嵌入式数据库和外部数据库(mariadb)
第一个服务器节点使用以下命令设置良好:
#embedded db - server 1
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--log k3s.log --bind-address 192.168.X.XXX --write-kubeconfig-mode 644 --docker --cluster-init" sh -
#external db - server 1
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--log k3s.log --bind-address 192.168.X.XXX --write-kubeconfig-mode 644 --docker --cluster-init --datastore-endpoint mysql://username:password@tcp(192.168.X.Y:3307)/k3s" sh -
从服务器 1 获取令牌并添加到服务器 2
#get token from server 1
pi@rpi4:~ $ sudo cat /var/lib/rancher/k3s/server/node-token
K10b598b7a839cb4d2351f77b7d7c18f12345678bd7f68603434248b4cdf1b333fd::server:4b7b5a1b8b05271298150f008e1b804e
#on server 2...
export K3S_TOKEN="K10b598b7a839cb4d2351f77b7d7c18f12345678bd7f68603434248b4cdf1b333fd::server:4b7b5a1b8b05271298150f008e1b804e"
然后我尝试使用以下方法让第二台服务器加入集群:
#embedded db - server 2
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--log k3s.log --server https://192.168.X.X:6443 --write-kubeconfig-mode 644 --docker" sh -
#external db - server 2
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--log k3s.log --server https://192.168.X.X:6443 --write-kubeconfig-mode 644 --datastore-endpoint mysql://user:password@tcp(192.168.X.X:3307)/k3s --docker" sh -
服务在两个 rpi 上都运行没有错误,但第二个服务器没有显示为连接到第一个
编辑
必须使用一些变体才能使其与嵌入式数据库一起使用,这可以让第二/第三台服务器加入初始集群
(带K3S_TOKEN
和K3S_URL
设置)
curl -fL https://get.k3s.io | INSTALL_K3S_EXEC="--log k3s.log --flannel-iface=eth0 --write-kubeconfig-mode 644 --no-deploy servicelb --docker" sh -s - server
但是,服务器 2 和服务器 3 上的 pod 无法与连接到服务器 1 的 pod 通信。
我已经为此提出了一个单独的问题,因为我最初认为这是一个不同的问题