当前位置: 首页 > article >正文

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: 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' /bin/bash


 


http://www.kler.cn/a/349232.html

相关文章:

  • Android TextView实现一串文字特定几个字改变颜色
  • 浅谈Java之MBus通信
  • std::function的概念和使用方法
  • 硬盘文件误删:原因、恢复方案与预防措施
  • “探索端智能,加速大模型应用” 火山引擎边缘智能x扣子技术沙龙圆满落幕!
  • 机器人研究不同模态之间的融合方法
  • OpenAI Canvas:提升编程与写作效率的全新工作界面
  • Shiro 认证(Authentication)
  • 实战篇:(二)React 创建项目并连接 MySQL 后台的实战教程
  • STM32的SPI技术介绍
  • kubernetes中的微服务
  • 开启您的财富增值之路
  • B3622 枚举子集
  • 如何查看GB28181流媒体平台LiveGBS中对GB28181实时视频数据统计的负载信息
  • js 去重的方法
  • 一篇文章带你快速了解linux中关于信号的核心内容
  • 水凝胶微型机器人,材料多样性能优
  • Multiprocessing出错没有提示was skipped without notice in python
  • 有两个水桶,容量分别为5升和3升,请问如何使用这两个桶得到4升的水?
  • vue3ElementPlu表格合并多行