欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > kubernetes自定义pod启动用户

kubernetes自定义pod启动用户

2024/10/23 21:34:31 来源:https://blog.csdn.net/happy_king_zi/article/details/142966062  浏览:    关键词: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: v1
kind: Pod
metadata:    name: pod-helloworld
spec:  securityContext: runAsNonRoot: truerunAsUser: 10000runAsGroup: 10000fsGroup: 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' /bin/bash


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com