知识库

Neo4j Docker 镜像无法以非 root 用户身份在 Kubernetes 上运行

在 Kubernetes(K8S)中可以设置多种安全级别,这些级别对整个集群中运行容器的 Pod 生效。其中之一是防止 Pod 中的容器以 root 用户执行/运行的策略(runAsNonRoot)。

如果设置了此配置,但你的 K8S 集群的 Pod 定义覆盖了 securityContext>runAsUser 的值,那么当尝试启动 neo4j 容器时,你会看到类似以下的错误

Error: container has runAsNonRoot and image will run as root

要解决此问题,请确保在 K8S 集群的 Pod 定义中包含类似如下的内容

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000
# ....

runAsUser 是用于运行容器进程入口点的 UID,在本例中是 Neo4j 的。该值是一个较大的数字,旨在避免与主机的用户表冲突。

© . This site is unofficial and not affiliated with Neo4j, Inc.