当前位置:   article > 正文

root切换普通用户执行kubectl exec 执行pod命令_kubectl exec root

kubectl exec root

Bash命令大体可以分为两类: 第一类是可执行文件,例如ls等 第二类是Bash内建命令,常见echo,cd等

执行容器的命令exec

exec命令同样类似于docker的exec命令,为在一个已经运行的容器中执行一条shell命令,如果一个pod容器中,有多个容器,需要使用-c选项指定容器。

执行Pod的data命令,默认是用Pod中的第一个容器执行

kubectl exec <pod-name> data

指定Pod中某个容器执行data命令

kubectl exec <pod-name> -c <container-name> data

通过bash获得Pod中某个容器的TTY,相当于登录容器

kubectl exec -it <pod-name> -c <container-name> bash

格式如下

  1. #kubectl exec -it podName -c containerName -n namespace -- shell comand
  2. ###如果不设置containerName则默认是第一个containerName
  3. ###注意:
  4. shell命令前,要加-- 号,不然shell命令中的参数,不能识别

通过bash获得pod中某个容器的TTY,相当于登录容器

#kubectl exec -it <pod-name> -n <name-space> bash


1、命令行,创建一个test文件:

  1. #kubectl exec -it <podname> -c <container name> -n <namespace> \
  2. -- touch /usr/local/test

2、创建目录

#kubectl exec -it spark-master-xksl -c spark-master -n spark  -- mkdir -p /usr/local/spark 

3、执行bash可执行文件

  1. #kubectl exec nginx-6b6db56874-67pf4 -n prod -- 'ls'
  2. client_body_temp
  3. conf
  4. fastcgi_temp
  5. html
  6. logs
  7. proxy_temp
  8. sbin
  9. scgi_temp
  10. uwsgi_temp

4、执行bash内建命令,或者其他的命令

  1. #kubectl exec nginx-6b6db56874-67pf4 -n prod -- bash -c 'df -h'
  2. Filesystem Size Used Avail Use% Mounted on
  3. overlay 296G 58G 226G 21% /
  4. tmpfs 64M 0 64M 0% /dev
  5. tmpfs 7.5G 0 7.5G 0% /sys/fs/cgroup
  6. /dev/vda1 296G 58G 226G 21% /usr/share/zoneinfo/UTC
  7. #kubectl exec nginx-6b6db56874-67pf4 -n prod -- bash -c '/home/dayiops/nginx/sbin/nginx -t'
  8. nginx: the configuration file /home/dayiops/nginx/conf/nginx.conf syntax is ok
  9. nginx: configuration file /home/dayiops/nginx/conf/nginx.conf test is successful

5、root切换普通用户执行bash内建命令,或者其他的命令

  1. #su devopsadmin -c "kubectl exec nginx-6b6db56874-67pf4 -n prod -- bash -c '/home/dayiops/nginx/sbin/nginx -t'"
  2. nginx: the configuration file /home/dayiops/nginx/conf/nginx.conf syntax is ok
  3. nginx: configuration file /home/dayiops/nginx/conf/nginx.conf test is successful
  4. #su devopsadmin -c "kubectl  exec nginx-6b6db56874-67pf4 -n prod  -- bash  -c  '/home/dayiops/nginx/sbin/nginx  -s reload'"

另外这个文章写的比较蛮不错的(推荐看看)

kubectl命令大全_腾讯数据架构师的博客-CSDN博客

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号