2.5. Operator 部署备注
本节论述了规划基于 Operator 的部署时的一些重要注意事项
- 部署 AMQ Broker Operator 附带的自定义资源定义(CRD)需要 OpenShift 集群的集群管理员特权。部署 Operator 时,非管理员用户可以通过对应的自定义资源(CR)创建代理实例。要让常规用户部署 CR,集群管理员必须首先为 CRD 分配角色和权限。如需更多信息,请参阅 OpenShift Container Platform 文档中的 为自定义资源定义创建集群角色。
- 当您使用最新 Operator 版本的 CRD 更新集群时,此更新会影响 集群中的所有 项目。从以前版本的 Operator 中部署的所有代理 Pod 都可能无法更新其状态。当您点击 OpenShift Container Platform Web 控制台中正在运行的代理 Pod 的 Logs 选项卡时,您会看到指出"UpdatePodStatus"失败的信息。但是,该项目中的 broker Pod 和 Operator 会象预期一样工作。要修复受影响的项目的此问题,还必须将该项目升级为使用最新版本的 Operator。
虽然您可以通过部署多个自定义资源(CR)实例,在给定的 OpenShift 项目中创建多个代理部署,但通常在项目中创建单个代理部署,然后为地址部署多个 CR 实例。
红帽建议在不同的项目中创建代理部署。
如果要使用持久性存储部署代理,且在 OpenShift 集群中没有容器原生虚拟化存储,则需要手动置备持久性卷(PV),并确保 Operator 可以声明这些卷可用。例如,如果要创建一个包含两个代理的集群,且带有持久性存储(也就是说,在 CR 中设置
persistenceEnabled=true),则需要有两个持久性卷可用。默认情况下,每个代理实例都需要存储 2 GiB。如果您在 CR 中指定了
persistenceEnabled=false,部署的代理会使用 临时存储。临时存储意味着,每次重启代理 Pod 时,任何现有数据都会丢失。有关在 OpenShift Container Platform 中置备持久性存储的更多信息,请参阅:
- 了解持久性存储 (OpenShift Container Platform 4.5)
在 首次部署 CR 前,您必须将以下列出的项目的配置添加到主代理 CR 实例中。您无法 将这些项目的配置添加到已在运行的代理部署中。
下一节中的步骤演示了如何安装 Operator,并使用自定义资源(CR)在 OpenShift Container Platform 上创建代理部署。成功完成这些步骤后,您将让 Operator 在单个 Pod 中运行。您创建的每个代理实例都将在与 Operator 相同的项目中作为 StatefulSet 的独立 Pod 运行。稍后,您将了解如何使用专用寻址 CR 在代理部署中定义地址。