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

k8s-kubectl常用命令

一、基础命令

1.1 get

查询集群所有资源的详细信息,resource包括集群节点、运行的Pod、Deployment、Service等。

1.1.1 查询Pod

kubectl get po -o wid

1.1.2 查询所有NameSpace

kubectl get namespace

1.1.3 查询NameSpace下Pod

kubectl get po --all-namespaces

1.1.4 查询NameSpace下所有Pod标签

kubectl get po --show-labels

 1.1.5 以yaml输出pod/json信息

kubectl get po <podname> -o yaml
kubectl get po <podname> -o json

1.2 create

直接kubectl create -f filename即可创建文件内定义的resource。

kubectl create -f filename

1.3 expose

        将资源如: Pod、Service、Deployment等公开为一个新的Service。

kubectl expose deployment deployname --port=81 --type=NodePort --target-port=80 --name=service-name

1.4 run

在集群中运行一个特定的镜像。

kubectl run deployname --image=nginx:latest

在创建时指定运行的命令:

kubectl run deployname -image=busybox --command -- ping baidu.com

1.5 set 在对象上设置特定功能

将一个deployname的image改为镜像为1.0的image:

kubectl set image deploy deployname containername=containername:1.0

1.6 edit

edit提供了另一种更新resource源的操作。

kubectl edit po po-nginx-btv4j

 1.7 explain

查看文档或参考资料。

kubectl explain pod

1.8 delete 

根据 resource名或label删除resource。
        kubectl delete po podname --now 
        kubectl delete -f nginx.yaml
        kubectl delete deployment deployname

二、部署命令

2.1 *rolling-update*

        滚动更新,启动一个新的Pod,启动成功后删除旧的Pod,直到升级完毕。

kubectl rolling-update poname -f newfilename
kubectl rolling-update poname -image=image:v2 

升级回滚

kubectl rolling-update poname -rollback

2.2 rollout 管理资源的发布

查看指定资源的部署状态:

kubectl rollout status deployment/deployname

 查看指定资源的发布历史:

kubectl rollout history deployment/deployname

回滚指定资源,默认回滚至上一个版本:

kubectl rollout undo deployment/test-nginx

2.3 scale 副本扩容或缩容

 kubectl scale deployment deployname --replicas=newnumber

2.4 autoscale 

自动扩缩容设置

kubectl autoscale deployment deployname --min=minnumber --max=maxnumber 

三、集群管理命令

3.1 cordon

标记Node不可调度

kubectl cordon nodename

3.2 drain

将Node上的Pod迁移

 kubectl drain nodename --ignore-daemonsets --ignore-emptydir

3.3 uncordon*

解除Node不可调度

kubectl uncordon nodename

3.4 cluster-info

查看在集群中运行的插件:

kubectl cluster-info

查看详细信息:

kubectl cluster-info dump

四、故障诊断和调试命令

4.1 describe

descirbe与get类似,但不支持-o,get查询的是配置信息,describe查询的是集群信息(包括状态)。

4.2 logs

输出Pod内日志,如果要获得tail -f的方式,需使用-f选项。

kubectl logs -f podname

4.3 exec

与docker的exec指令类似。如果一个Pod中多个容器,需要-c指令指定容器。

kubectl exec -it podname bash
kubectl exec -it podname -c containername bash 

4.4 *port-forward*

转发一个或多个本地端口至一个pod。示例:本地端口5000,映射Pod端口

 kubectl port-forward podname 5000:6000

4.5 *proxy*

运行一个proxy到Kubernetes api server。示例:控制节点开启HTTP Rest接口:

kubectl proxy -accept-hosts=’.*’ -port=8001 -address=’0.0.0.0’

 4.6 cp

拷贝文件或目录到容器:

cp filename newfilename

4.7 auth

检查授权

4.8 *attach*

 查看Pod内容器运行日志,类似-logs 指令,多个容器需要指定容器名称。

kubectl attach podname -c containername

五、高级指令

5.1 replace

对资源进行更新,如更新替换pod。

kubectl replace -f filename

5.2 apply

        使用yaml中变更的配置,增量资源。apply不会删除原有resource,然后创建新的apply直接在原有resource的基础上进行更新。同时kubectl apply还会在resource中添加一条注释,标记当前的apply,类似于git操作。

kubectl apply -f

5.3 patch

对容器属性修改,但是不删除容器,直接对容器修改。

kubectl patch pod podname -p '{"metadata":{"labels":{"app":"nginx2"}}}'

六、设置命令

6.1 label

更新资源上的标签:

kubectl label pods my-pod new-label=newlabel

6.2 annotate

更新资源上的注释:
kubectl annotate pods my-pod icon-url=http://…… 

6.3 completion 用于实现kubectl工具自动补全

http://www.lryc.cn/news/286151.html

相关文章:

  • 如何在Docker上运行Redis
  • 【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法
  • java数据结构与算法刷题-----LeetCode667. 优美的排列 II
  • win10 20h2 defender添加排除项失败怎么回事 Window Defender添加不了排除项如何处理
  • mysql生成最近24小时整点时间临时表
  • 基于PHP反序列化练习
  • ITSS、ITIL、ISO20000:哪个更适合你?
  • Linux配置yum源以及基本yum指令
  • 【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024
  • 阿里云ECS(CentOS镜像)安装docker
  • 服务器工作环境要求
  • 大数据开发之Spark(入门)
  • 【GoLang入门教程】Go语言工程结构详述
  • FPGA之分布式RAM(2)
  • 纯c实现栈和队列 数据结构大全
  • 测试开发基础 | 计算机网络篇(二):物理层与数据链路层
  • 【深度学习】BasicSR训练过程记录,如何使用BasicSR训练GAN
  • 喜讯 | 华院计算摘得“2023大数据产业年度创新技术突破”奖
  • stm32高级定时器死区时间
  • Python项目——久坐提醒定时器(PySide6)编写
  • Linux,常见的强制退出/结束命令(ctr+c/ctr+d/:q/exit)
  • 检查一个Java List是否包含某个JavaBean对象的特定值,并且获取这个值
  • 浮点数详解
  • LED流水灯
  • MySQL-B-tree和B+tree区别
  • 架构篇08:架构设计三原则
  • 基于SpringBoot Vue汽车租赁系统
  • idea带的maven在SpringBoot下载jar包出错、下载jar包速度慢
  • datasets的一些使用技巧
  • react 实现页面状态缓存(keep-alive)