我已经在本地创建了一个docker镜像,并使用gcloud sdk将其推送到GCP容器注册表。镜像成功推送到容器注册表。
现在,我尝试通过选择deploy to GKE选项,从GCP手动将该镜像从容器注册中心部署到现有的私有GKE集群。在部署后,我收到一个错误消息"container有runasNonRoot,镜像将作为根appName容器运行:appName-1):CreateContainerConfigError“,任何帮助都将不胜感激。
发布于 2021-11-28 10:07:02
听起来您已经设置了pod安全策略,以避免以root身份运行容器。这是一个很好的安全策略,因为有可能进入集群中的其他应用程序或节点。
您可能希望阅读Kubernetes security context,并可能重新构建您的容器。
对于我的集群,我经常必须使用使用根的公共映像,在这种情况下,我将使用以前的映像作为基础,创建一个新的(非根)用户和新组,以获得映像中所需的任何工具的所有权。
更改Dockerfile中的默认用户:
FROM ubuntu
RUN groupadd --gid 15555 notroot \
&& useradd --uid 15555 --gid 15555 -ms /bin/false notroot\
&& chown -R notroot:notroot /home/notroot
USER notroot
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["whoami && id"]
Here's a better explanation告诉你为什么应该避免在Docker镜像中使用root。
https://stackoverflow.com/questions/70141089
复制相似问题