gpt4 book ai didi

linux - Kubernetes:Linux 用户管理

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:39 25 4
gpt4 key购买 nike

我们正在 Kubernetes 中运行 docker 容器。 Docker 允许在主机系统级别的不同用户下运行容器。

我正在研究几个 Helm 图表,例如 Prometheus以“无人”身份运行,而 Grafana正在使用 Dockerfile 中的 useradd 创建其用户(硬编码 ID)。

有什么方法可以标准化 Kubernetes 中的行为,从而确保仅存在容器所需的系统用户?一旦容器被安排在其他地方,就会被删除。

我还担心我们会遇到 userId 冲突,导致意外行为,这将很难测试......

最佳答案

容器不必拥有具有在 docker 主机上的容器内部使用的 UID 的用户。

示例如下:

On the docker host machine:

# Mongo container is running
root@docker-test:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08495ae15f44 mongo:latest "docker-entrypoint..." 23 minutes ago Up 23 minutes 27017/tcp some-mongo

# mongod process is running under UID 999
root@docker-test:~# ps aux | grep mongo | grep -v grep
999 14035 0.6 1.7 986136 67612 ? Ssl 08:56 0:01 mongod --bind_ip_all

# there is no user with UID 999 id on the docker host machine
root@docker-test:~# cat /etc/passwd | grep 999
root@docker-test:~#

Inside the container:

# attaching to container
root@docker-test:~# docker exec -it 08495ae15f44 bash

# mongod process is running with privileges of the mongodb user
root@08495ae15f44:/# ps aux | grep mongo | grep -v grep
mongodb 1 0.4 1.8 990320 70036 ? Ssl 08:56 0:02 mongod --bind_ip_all

# user mongodb is present inside the container in /etc/passwd and has UID 999
root@08495ae15f44:/# cat /etc/passwd | grep mongodb
mongodb:x:999:999::/home/mongodb:/bin/sh
root@08495ae15f44:/#

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

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