gpt4 book ai didi

linux - 如何使用Kubernetes管理Linux用户?

转载 作者:行者123 更新时间:2023-12-02 11:59:34 25 4
gpt4 key购买 nike

我想使用SecurityContext.RunAsUser保护我的集群。问题很简单:我应该使用哪个用户?
我知道容器内具有UID 1001(例如)的用户是主机上具有UID 1001的用户。那么,是否应该在所有主机上创建一个UID为1001且名为pod_user的用户,并强制所有Pod使用该用户?还是应该验证所有主机上都没有使用此UID的用户?我没有找到关于此的最佳做法指南。
关于Dockerfile,我有相同类型的问题:我应该在Dockerfile中使用特定UID声明用户,然后在SecurityContext.RunAsUser中重用它吗?一些正式镜像在Dockerfile中使用特定的硬编码用户运行,而其他一些则以无人运行。我发现了这个有趣的帖子,但没有明确的答案:Kubernetes: Linux user management

最佳答案

我的理想建议是:

  • 您的Dockerfile RUN adduser将创建一个非root用户,并在完成所有软件安装
  • 之后将 USER切换到该用户。
  • 您无需在Kubernetes配置
  • 中明确指定用户ID
  • 不管用户名或数字ID是什么,或者是否与另一个容器或主机上存在的用户ID相同,只要数字uid不为0即可。

  • 唯一存在实际问题的地方是容器是否尝试将数据存储在卷中。同样,理想的情况是完全避免这种情况。如果可能的话,最好使用数据库或云存储。
    如果确实需要使用本地卷,则可以使用补充的 fsGroup:专门使用 configure a security policy。那是一个任意的数字组ID(不是用户ID),它将拥有卷中的文件,也将被添加到主容器进程的组列表中。
    apiVersion: v1
    kind: Pod
    spec:
    securityContext:
    fsGroup: 12345 # or any numeric gid
    根本不要使用 hostPath卷:如果重新安排Pod的时间,则不能保证每个节点上的内容都是相同的;如果节点发生故障,仅位于该节点上的内容将丢失。

    关于linux - 如何使用Kubernetes管理Linux用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64065725/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com