pod对象相关操作命令

 一、创建(增加)命令
1、创建pod
  • kubectl apply -f pod.yml   #创建和更新
    kubectl create -f pod.yml   #只创建,一般不更新的对象用
2、添加label
  • kubectl label pod pod-name key=value    #给指定pod添加标签key,标签的值是value
3、创建namespace(ns)
  • kubectl create namespace  ns-name
    kubectl create ns  ns-name

二、删除命令
1、删除pod
  • kubectl delete -f pod.yml   #删除pod
    kubectl delete pod pod-name   #根据pod名称删除pod,因为可能会忘记使用哪个yaml文件创建的pod
    kubectl delete pod pod-name --force --grace-period=0    #强制删除指定pod
    ​
    kubectl delete pods -l key=value   #使用标签选择器删除改标签值的所有pod
    kubectl delete namespace ns-name    #删除指定命名空间中的所有pod
  • --grace-period表示过渡存活期,默认30s,在删除POD之前允许POD慢慢终止其上的容器进程,从而优雅退出,0表示立即终止POD

2、删除标签
  • kubectl label pod pod-name key-    #根据标签的key删除该标签
3、删除namespace(ns)命名空间
  • kubectl delete ns ns-name    #删除指定命名空间及该命名空间中的所有pod

三、修改命令
1、修改(更新)pod
  • kubectl apply -f pod.yml   #创建和更新(修改了pod.yaml)
2、修改已有标签
  • kubectl label pod pod-name key=value2 --overwrite
  • --overwrite:覆盖/重写

四、查看(筛选)命令
1、查看node节点信息
  • kubectl get node
2、查看pod列表和运行状态等信息
  • kubectl get pod pod-name   #查看某个pod
    kubectl get pods   #查看所有pod信息
    kubectl get pods -w   #查看所有pod详细信息
    kubectl get pods -Aw   #动态查看所有pod详细状态信息
    kubectl get pods -o wide   #查看所有pod被调度到哪个worker上及pod的ip
    kubectl describe pod nginx-pod   #查看某个pod详细信息(环境、ip、卷、事件等)
  • -A:查看所有

  • -w:watch,查看详细信息

  • -o:查看podIP地址和被调度到哪个worker上

  • -n default:默认的命名空间,省略

3、查看指定对象(pod、ns……)创建时的yaml文件
  • kubectl get pod pod-name -o yaml 
    kubectl get ns ns-name -o yaml 
4、查看pod标签及根据标签筛选pod
  • kubectl get pods --show-labels   #查看所有pod的所有标签
    kubectl get pod pod-name --show-labels   #查看指定pod的所有标签
    kubectl get pods --show-labels -l "env in (dev,qa,pro)"   #筛选env标签在(dev,qa,pro)中的pod
    kubectl get pods --show-labels -l env=pro   #筛选env标签是pro的所有pod
    kubectl get pods --show-labels -l env!=pro   #筛选env标签不是pro的所有pod
    kubectl get pods --show-labels -l "run notin (nginx01,nginx02,nginx03)"   #筛选run标签不在																			(nginx01,nginx02,nginx03)中的所有pod
    kubectl get pods --show-labels -L env   #筛选标签中有env标签的pod,并列出其env值
    kubectl get pods --show-labels -l env   #筛选标签中有env标签的pod
5、查看pod日志
  • kubectl logs pod-name   #查看指定pod日志
    kubectl logs -f pod-name   #查看指定pod的实时日志
    kubectl logs -f pod-name --since=10m   #查看指定pod的10分钟内的日志
  • 查看内存溢出报错日志,内存归 kubelet 管理

  • journalctl -u kubelet | grep -i memory
    grep kubelet /var/log/messages | grep -i memory
6、查看命名空间
  • kubectl get ns   #查看已创建已存在的命名空间
    kubectl get ns ns-name    #查看指定的命名空间
    kubectl describe ns ns-name    #查看指定的命名空间的详细信息
    kubectl get pods -n ns-name    #查看指定的命名空间下的所有pod
五、cp和exec命令
1、cp复制,pod内和宿主机内互相复制
  • kubectl cp filename.txt pod-name:/path   #宿主机文件复制到pod内
    kubectl cp pod-name:/path/filename.txt /root  #pod文件复制到宿主机内
2、exec和exec -it
  • kubectl exec -it pod-name -- sh    #进入指定pod,注意 -- sh
    kubectl exec pod-name cmd    #不进入pod执行命令cmd
六、临时运行一个pod,用于测试
  • kubectl run  pod-name --image=image:tag
七、将 Pod 运行在指定的命名空间中
  • kubectl -n ns-name apply -f pod.yaml   
    kubectl get pod nginx-self -n pa-pay
    kubectl get pod nginx-self -n pa-pay --show-labels
八、生成yaml模板文件
1、生成pod.yaml模板文件
  • kubectl run pod-name --image=image:tag --dry-run=client -o yaml
2、生成ns.yaml模板
  • kubectl create ns ns-name --dry-run=client -o yaml
九、Kubectl 命令补全
  • yum -y install bash-completion 
    echo "source <(kubectl completion bash)" >> ~/.bashrc        
    source  ~/.bashrc  
    bash 

  • 32
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值