主要观点:在小型 3 节点 ARM 集群上设置高可用的 k3s 集群,通过 keepalived 提供高可用 IP,MariaDB Galera 集群作为数据库,Longhorn 提供高可用块存储,实现节点故障时集群和工作负载不中断。
关键信息:
- 集群至少需 3 节点,2 节点易出现脑裂,超过 3 节点需奇数个集群组件。
- keepalived 用于提供高可用 IP,各节点配置不同优先级和密码等参数,通过 VRRP 实现主备切换。
- MariaDB Galera 集群用于数据库,需添加仓库、设置配置文件等,可自动同步新节点。
- k3s 安装时需添加特定参数指定数据库和高可用 IP。
- Longhorn 用于提供高可用块存储,需安装相关软件、应用部署文件等,并设置默认存储类和 Pod 删除策略。
重要细节:
- 集群节点 IP 分别为 192.0.2.60、192.0.2.61、192.0.2.62 及一个 worker 节点 192.0.2.63,高可用 IP 为 192.0.2.50。
- keepalived 配置文件中需修改 interface、auth_pass、virtual_ipaddress 等参数,其他节点配置类似但优先级等不同。
- MariaDB Galera 集群配置文件中需修改 wsrep_cluster_name、wsrep_cluster_address 等参数,各节点需保持一致。
- k3s 安装时需指定 --tls-san 和 --datastore-endpoint 等参数,包含高可用 IP 和数据库信息。
- Longhorn 安装后需暴露 dashboard 端口,修改默认存储类,设置 Pod 删除策略为 delete-both-statefulset-and-deployment-pod 以实现存储自动故障转移。
- 测试高可用需进行节点断电、拔网线等操作,观察 kubectl get nodes 和集群状态,5 分钟后工作负载应恢复。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。