搜索

9.5. Docker 容器的 Pacemaker 支持(技术预览)

download PDF
重要
对 Docker 容器的 Pacemaker 支持仅用于技术预览。有关"技术预览"含义的详情,请参阅 技术预览功能支持范围
这个功能有一个例外是技术预览:与 Red Hat Enterprise Linux 7.4 一样,红帽完全支持在 Red Hat Openstack Platform(RHOSP)部署中使用 Pacemaker 捆绑包。
Pacemaker 支持使用任何所需的基础架构启动 Docker 容器的特殊语法:该捆绑包。创建 Pacemaker 捆绑包后,您可以创建一个捆绑包封装的 Pacemaker 资源。

9.5.1. 配置 Pacemaker 捆绑包资源

为 Docker 容器创建 Pacemaker 捆绑包的命令语法如下:此命令会创建一个捆绑包,封装其他资源。有关在捆绑包中创建集群资源的详情请参考 第 9.5.2 节 “在捆绑包中配置 Pacemaker 资源”
pcs resource bundle create bundle_id container docker [container_options] [network network_options] [port-map port_options]...  [storage-map storage_options]... [meta meta_options] [--disabled] [--wait[=n]]
所需的 bundle_id 参数必须是捆绑包的唯一名称。如果指定了 --disabled 选项,则捆绑包不会自动启动。如果指定了 --wait 选项,Pacemaker 将等待最多 n 秒以启动捆绑包,然后成功返回 0 或 1 出错。如果未指定 n,则默认为 60 分钟。
以下小节描述了您可以为 Pacemaker 捆绑包的每个元素配置的参数。

9.5.1.1. Docker 参数

表 9.6 “Docker 容器参数” 描述您可以为捆绑包设置的 docker 容器选项。
注意
在 Pacemaker 中配置 docker bundle 前,您必须安装 Docker,并在允许运行捆绑包的每个节点上提供完全配置的 Docker 镜像。
表 9.6. Docker 容器参数
默认值描述
Image
Docker 镜像标签(必需)
replicas
如果这是正则 ,则为 promote-max 值,否则为 1。
指定一个正整数,指定要启动的容器实例数
replicas-per-host
1
指定允许在一个节点上运行的容器实例的正整数
promoted-max
0
一个非负整数,如果为正,则表示容器化服务应被视为多状态服务,且此副本数允许在 master 角色中运行该服务
网络
如果指定,它将传递到 docker run 命令,作为 Docker 容器的网络设置。
run-command
如果捆绑包包含资源,则 /usr/sbin/pacemaker_remoted
启动后,该命令将在容器内运行("PID 1")。如果捆绑包中包含资源,此命令必须启动 pacemaker_remoted 守护进程(但也可以是执行其他任务的脚本)。
选项
传递给 docker run 命令的额外命令行选项

9.5.1.2. 捆绑包网络参数

表 9.7 “捆绑包资源网络参数” 描述您可以为捆绑包设置的 网络 选项。
表 9.7. 捆绑包资源网络参数
默认值描述
add-host
TRUE
如果使用 TRUE 和 ip-range-start,Pacemaker 将自动确保容器内的 /etc/hosts 文件为每个副本名称及其分配的 IP 具有条目。
ip-range-start
如果指定,Pacemaker 将为每个容器实例创建一个隐式 ocf:heartbeat:IPaddr2 资源,从这个 IP 地址开始,使用指定为 Docker 元素 replicas 参数的任意连续地址。这些地址可以从主机的网络访问容器内的服务,尽管无法在容器本身中看到。目前仅支持 IPv4 地址。
host-netmask
32
如果指定了 ip-range-start,则会使用此 CIDR 子网掩码(以位数为单位)创建 IP 地址。
host-interface
如果指定了 ip-range-start,则会在此主机接口上创建 IP 地址(默认情况下,它将从 IP 地址确定)。
control-port
3121
如果捆绑包包含 Pacemaker 资源,集群将使用这个整数 TCP 端口与容器内的 Pacemaker 远程进行通信。当容器无法侦听默认端口时(当容器使用主机的网络而不是 ip-range-start(在这种情况下,replicas- per-host 必须为 1)或捆绑包可以在已侦听默认端口的 Pacemaker 远程节点上运行时,更改此设置非常有用。在主机上或容器中设置的任何 PCMK_remote_port 环境变量都会在捆绑包连接中被忽略。
当 Pacemaker 捆绑包配置使用 control-port 参数时,如果捆绑包有其自身的 IP 地址,则需要在该 IP 地址和所有运行 corosync 的完整群集节点上打开端口。如果捆绑包设置了 network="host" 容器参数,则需要在每个集群节点的 IP 地址上打开该端口。
注意
副本通过捆绑包 ID 加上破折号和整数计数器命名,以零开头。例如,如果名为 httpd-bundle 的捆绑包配置了 replicas=2,则其容器将命名为 httpd-bundle-0httpd-bundle-1
除了网络参数外,您还可以为捆绑包指定 port-map 参数。表 9.8 “捆绑包资源端口映射参数” 描述这些 port-map 参数。
表 9.8. 捆绑包资源端口映射参数
默认值描述
id
端口映射的唯一名称(必需)
port
如果指定,则主机网络上此 TCP 端口号的连接(容器分配的 IP 地址上,如果指定了 ip-range-start )将转发到容器网络。正好一个 端口范围 必须在端口映射中指定。
internal-port
端口
如果指定了 端口 和内部 端口,则 到主机网络上的端口的连接将转发到容器网络上的此端口。
范围
如果指定了 范围,则主机网络上(如果指定了 ip -range-start,则表示为 first_port-last_port )的连接将转发到容器网络中相同的端口。正好一个 端口范围 必须在端口映射中指定。
注意
如果捆绑包包含资源,Pacemaker 将自动映射 control-port,因此不需要在端口映射中指定该端口。

9.5.1.3. 捆绑包存储参数

您可选择为捆绑包配置 storage-map 参数。表 9.9 “捆绑包资源存储映射参数” 描述这些参数。
表 9.9. 捆绑包资源存储映射参数
默认值描述
id
存储映射的唯一名称(必需)
source-dir
将映射到容器中的主机文件系统的绝对路径。在配置 storage -map 参数时,必须指定 source-dir 和 source-dir- root 参数之一。
source-dir-root
主机文件系统上的路径的开头,该路径将映射到容器,每个容器实例在主机上使用不同的子目录。子目录的名称与捆绑包名称相同,外加破折号和整数计数器(以 0 开头)。在配置 storage -map 参数时 ,必须仅指定一个 source-dir 和 source-dir- root 参数。
target-dir
映射主机存储的容器内的路径名称(必需)
选项
映射存储时使用的文件系统挂载选项
例如,如何使用 source-dir- root 参数命名主机上的子目录,如果 source-dir -root=/path/to/my/directory,target-dir=/srv/appdata,捆绑包将命名为 mybundlereplicas=2,集群将创建两个容器 主机名为 mybundle-0mybundle-1 的实例,并在运行容器的主机上创建两个目录: /path/to/my/directory/mybundle-0/path/to/my/directory/mybundle-1。每个容器将获得其中一个目录,容器内运行的任何应用程序都将该目录视为 /srv/appdata
注意
如果主机上还没有源目录,Pacemaker 不会定义行为。但是,在此情况下,容器技术或其资源代理应该会创建源目录。
注意
如果捆绑包包含 Pacemaker 资源,Pacemaker 将自动将相当于 source-dir=/etc/pacemaker/authkeytarget-dir=/etc/pacemaker/authkeysource-dir-root=/var/log/pacemaker/bundlestarget-dir=/var/log 映射到容器中,因此在配置 storage-map 参数时不需要指定其中的路径。
重要
在群集的任何节点上,PCMK_authkey_location 环境变量不得设置为 /etc/pacemaker/authkey 默认值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.