Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.5.2. 在捆绑包中配置 Pacemaker 资源

捆绑包可以选择性地包含一个 Pacemaker 集群资源。与捆绑包中未包含的资源一样,集群资源可能定义有操作、实例属性和元数据属性。如果捆绑包包含资源,容器镜像必须包含 Pacemaker Remote 守护进程,并且必须在捆绑包中配置 ip-range -start 或 control-port。Pacemaker 会为连接创建一个隐式 ocf:pacemaker:remote 资源,在容器内启动 Pacemaker Remote,并通过 Pacemaker Remote 监控和管理资源。如果捆绑包有多个容器实例(副本),Pacemaker 资源将充当隐式克隆,如果捆绑包将 提升-max 选项配置为大于零,则该克隆将是一个多状态克隆。
您可以通过为命令指定 bundle 参数以及包含该资源的捆绑包 ID,使用 pcs resource create 命令在 Pacemaker 捆绑包中创建资源。有关创建包含资源的 Pacemaker 捆绑包的示例,请参阅 第 9.5.4 节 “Pacemaker 捆绑包配置示例”
重要
包含资源的捆绑包中的容器必须具有可访问的网络环境,以便集群节点上的 Pacemaker 可以与容器内的 Pacemaker 远程联系。例如,docker 选项 --net=none 不应用于资源。默认值(使用容器内的不同网络空间)与 ip-range-start 参数相结合。如果使用 docker 选项 --net=host (使容器共享主机的网络空间),则应为每个捆绑包指定一个唯一的 control-port 参数。任何防火墙都必须允许访问 control-port

9.5.2.1. 节点属性和捆绑包资源

如果捆绑包包含集群资源,则资源代理可能需要设置节点属性,如 master 分数。但是,对于容器而言,哪一个节点应该获取 属性并不明显。
如果容器使用的共享存储相同,无论容器托管在哪个节点上,都可在捆绑包节点上使用 master 分数。另一方面,如果容器使用从底层主机导出的存储,那么在底层主机上使用 master 分数可能更为适当。由于这取决于特定的情况,因此 container-attribute-target 资源 metadata 属性允许用户指定要使用的方法。如果设置为 host,则在底层主机上检查用户定义的节点属性。如果是任何其他节点,则使用本地节点(本例中为捆绑包节点)。这个行为只适用于用户定义的属性;集群总是检查本地节点是否有集群定义的属性,如 #uname
如果将 container-attribute-target 设置为 host,集群会将额外的环境变量传递给资源代理,以便它能够适当地设置节点属性。