kubernetes自定义pod启动用户

网友投稿 508 2022-09-08

kubernetes自定义pod启动用户

一、kubernetes自定义pod启动用户

一)以root用户启动pod

containers: - name: ... image: ... securityContext: runAsUser: 0

二)以普通用户启动pod

1、从构建镜像角度修改

# RUN命令执行创建用户和用户组(命令创建了一个用户newuser设定ID为10000,并指定了用户登录后使用的主目录和shell)RUN groupadd --gid 10000 newuser \ && useradd --home-dir /home/newuser --create-home --uid 10000 --gid 10000 --shell /bin/sh --skel /dev/null newuser# 指定用户,从这一行往下开始的每个命令都是以newuser身份而不是root身份运行(比如后面的CMD、EntryPoint)USER newuser

2、从容器启动方式角度修改

可以使用Pod安全上下文,将Pod的执行限制为特定的非root用户。

通过Pod构建文件中添加securityContext来配置Pod的安全设置

apiVersion: v1kind: Podmetadata: name: pod-helloworldspec: securityContext: runAsNonRoot: true runAsUser: 10000 runAsGroup: 10000 fsGroup: 10000

runAsUser指定Pod内的任何容器仅以userID为10000的运行,runAsGroup指定的容器内所有进程的组ID(组ID不指定默认为0)。你可以先进入容器,然后使用 ps 命令查看进程的用户。

三)以root用户进入pod

1、首先找到你需要进入对应namespace的pod名

kubectl get pod|grep podname

2、找到pod所在的节点以及容器id

kubectl describe pod “pod名”在所给信息中找到以下字段:Node:所查pod所在的节点Container ID:所查pod的容器id,形如docker://...,注意Container ID 不包括docker://

3、ssh到pod对应节点

4、以root用户权限进入pod

docker exec -it -u root 'Container ID'

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes(一)组件概况
下一篇:妄想营销“人性弱点”,是营销人最大的“人性弱点”!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~