跳至主内容

在 OpenShift 上使用 RabbitMQ Kubernetes Operator

概述

本文档详细介绍了在部署 RabbitMQ Kubernetes Operator(即 Cluster operatorMessaging Topology Operator)时 OpenShift 特有的注意事项。需要注意的是,这些注意事项同样适用于商业版的 VMware Tanzu RabbitMQ Standby Replication Operator(请注意,此运算符仅适用于 VMware Tanzu RabbitMQ for Kubernetes 商业产品)。

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

安装运算符的 RBAC 权限

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

  • Namespace
  • CustomResourceDefinition
  • Deployment
  • ServiceAccount
  • Role
  • ClusterRole
  • RoleBinding
  • ClusterRoleBinding
  • Service
  • ValidatingWebhookConfiguration

然后,您可以使用该用户正常运行 安装说明

对任意用户 ID 的支持

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

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

在部署 RabbitmqClusters 时,需要进行一些额外的工作来利用相同的安全功能。默认情况下,RabbitMQ Cluster Operator 会以固定的非 root UID 部署 RabbitmqCluster Pod。要在 OpenShift 上部署,必须覆盖这些 Pod 的 Security Context。这必须为在 `override` 字段下部署的每个 RabbitmqCluster 进行。

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

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

© . This site is unofficial and not affiliated with VMware.