跳至主要内容

在 OpenShift 上使用 RabbitMQ Kubernetes 运算符

概述

本文档详细介绍了在部署 RabbitMQ Kubernetes 运算符(即 集群运算符消息拓扑运算符)时,OpenShift 特定的注意事项。需要注意的是,这些注意事项也适用于商业版 VMware Tanzu RabbitMQ Standby Replication 运算符(注意,此运算符仅限于 VMware Tanzu RabbitMQ for Kubernetes 商业版)。

在大多数情况下,在 OpenShift 上使用这些运算符的用户体验是相同的;以下指南详细介绍了利用 OpenShift 安全实践所需的其他工作,以及运算符在 OpenShift 上的工作原理。

安装运算符的 RBAC 权限

为了安装运算符,您需要以具有以下资源的 CRUD 权限的用户身份对 OpenShift 集群进行身份验证

  • 命名空间
  • 自定义资源定义
  • 部署
  • 服务帐户
  • 角色
  • 集群角色
  • 角色绑定
  • 集群角色绑定
  • 服务
  • 验证 Webhook 配置

然后,您可以使用此用户按正常方式运行 安装说明

支持任意用户 ID

OpenShift 在运行 Pod 时使用任意分配的用户 ID。每个 OpenShift 项目都分配了一系列可能的 UID,并且默认情况下,如果 Pod 以该范围之外的用户身份启动,则会失败。有关更多信息,请参阅 OpenShift 文档

在 OpenShift 上部署运算符时,用于运行运算符二进制文件的 Pod 将以 OpenShift 分配的范围内的一个任意 UID 运行。这是默认行为,无需修改运算符清单即可实现。

在部署 RabbitmqClusters 时,需要进行一些额外的工作才能利用相同的安全功能。默认情况下,RabbitMQ 集群运算符会使用固定的非 root UID 部署 RabbitmqCluster Pod。要在 OpenShift 上部署,必须覆盖这些 Pod 的安全上下文。这必须对在 override 字段下部署的每个 RabbitmqCluster 进行。

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
...
spec:
...
override:
statefulSet:
spec:
template:
spec:
containers: []
securityContext: {}

这将重置 Pod 的 securityContext 为默认值,并确保 RabbitMQ Pod 也在 OpenShift 中分配了任意用户 ID。

© 2024 RabbitMQ. All rights reserved.