如何将 bitnami/kafka 部署到 OPenShift 集群

How to deploy bitnami/kafka to OPenShift cluster

我正在尝试将 bitnami/kafka Helm Chart 部署到 Codeready Containers OpenShift 集群。

我创建了一个新的“kafka”项目,将以下 scc 添加到服务帐户,然后部署了 bitnami helm 版本:

$ oc new-project kafka

$ oc adm policy add-scc-to-user anyuid system:serviceaccount:kafka:default

$ helm install kafka -f values.yaml bitnami/kafka

kafka-zookeeper pod 正常启动,但是kafka pod 未启动,报告以下事件:

''create Pod kafka-0 in StatefulSet kafka failed error: pods "kafka-0" is forbidden: unable to validate against any security context constraint: [provider "anyuid": Forbidden: not usable by user or serviceaccount, provider restricted: .spec.securityContext.fsGroup: Invalid value: []int64{1001}: 1001 is not an allowed group, spec.containers[0].securityContext.runAsUser: Invalid value: 1001: must be in the ranges: [1000680000, 1000689999], provider "nonroot": Forbidden: not usable by user or serviceaccount, provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount, provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount, provider "hostnetwork": Forbidden: not usable by user or serviceaccount, provider "hostaccess": Forbidden: not usable by user or serviceaccount, provider "node-exporter": Forbidden: not usable by user or serviceaccount, provider "privileged": Forbidden: not usable by user or serviceaccount]''

有人知道如何将 Kafka helm chart 部署到 OpenShift 集群吗? 服务帐户是否需要任何其他安全设置?

谢谢。

这是一个您在使用 OpenShift 时会多次偶然发现的问题。由于您没有在此处提供“values.yaml”的内容,我不得不假设您没有为“runAsUser”和“fsGroup”提供任何特定值。 因此,图表正在使用其默认值,这两个值似乎都是 1001。 https://github.com/bitnami/charts/tree/master/bitnami/kafka 官方图表文档指定:

podSecurityContext.fsGroup
podSecurityContext.runAsUser

因此,对于您的 values.yaml,您应该添加类似

的内容
podSecurityContext:
  fsGroup: 1000680000
  runAsUser: 1000680000

OpenShift 中的 UID/GID 范围是按命名空间定义的,您收到的错误消息甚至会告诉他们。您还可以通过读取命名空间 Kubernetes 对象本身的元数据字段来找到它们。