如何让控制器高可用
为确保已部署应用程序的高可用性 (HA),控制器本身必须具有高可用性。这需要创建额外的控制器,所有这些都自然地驻留在“控制器”模型中。初始控制器被称为主控制器,如果它失去与集群对等点的连接,则会发生自动故障转移。
本页涵盖以下主题:
概述
控制器 HA 使用该juju enable-ha
命令进行管理。它通过确保集群具有所需数量的控制器来做到这一点。默认情况下,这个数字是 3,但-n
可以使用开关来改变它。因此,此命令用于启用 HA 以及补偿任何丢失的控制器,例如启用 HA 然后删除一个或多个控制器的情况。
供应控制器时,API 服务器代码与 MongoDB 数据库一起安装。
控制器的数量必须是奇数,以便主节点在其对等节点中“投票”。具有偶数个成员的集群将导致随机成员变为非活动状态。后一个系统将成为“热备用”,并在其他成员出现故障时自动变为活动状态。此外,由于 HA 上下文中基础数据库的限制,该数量不能超过七个。这意味着一个集群只能有三个、五个或七个活动成员。
Juju 客户端和代理与集群中的任何控制器通信。这意味着控制器 (API) 级别的处理是分布式的。但是,在任何给定时间只有一个主数据库,所有控制器都写入它。因此,“master”实际上是指底层数据库。
启用控制器 HA
要启用控制器 HA,只需调用以下enable-ha
命令:
<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju enable-ha
</code></span></span>
由于未请求特定数量的集群机器,因此使用默认值 3。因此,我们预计会出现两个新的控制器。实际上,上述命令的输出反映了这一点:
<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash&