嵌入式DB的高可用(实验性)


从v1.0.0版本开始,K3s预览版支持在无需外部数据库的情况下运行高可用的控制平面。这意味着无需管理外部etcd或SQL数据存储即可运行可靠的生产级K3S集群。尽管此功能目前处于试验阶段,但我们希望它将来会成为运行HA K3S集群的主要体系结构。

通过在K3s server进程中嵌入dqlite数据库来实现此体系结构。DQLite是分布式SQLite的缩写。根据https://dqlite.io的描述,DQLite是快速的、嵌入式的、持久的SQL数据库,非常适合IoT和Edge设备,这使其很自然地适合K3S。

要以这种模式运行K3S,必须有奇数个server节点,我们建议从三个节点开始。

首先,启动一个带有cluster-init标志的server节点来启用集群,并启动一个令牌,该令牌将用作一个共享秘密来将其他server连接到集群。

K3S_TOKEN=SECRET k3s server --cluster-init
1

启动第一台server后,使用共享密钥将第二台和第三台server加入集群:

K3S_TOKEN=SECRET k3s server --server https://<ip or hostname of server1>:6443
1

现在,您有了一个高可用的控制平面。将其他worker节点加入集群的过程与单个server集群相同。