知识库

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

在 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 是用于运行容器进程入口点(在本例中是 Neo4j)的用户 ID (UID)。该值是一个较高的数字,旨在避免与主机用户表发生冲突。

© . All rights reserved.