常用kubectl命令介绍:
1.help
类似于所有的命令行工具工具,kubectl也可以直接执行
或 | <kubectl –help>可获得命令的帮助信息
# kubectl --help 查看kubectl帮助信息
# kubectl command --help 查看具体命令的帮助信息
2.get
get命令用于获取集群的resource信息,如node(no),namespace(ns),pod(po),service(svc)等,使用–help可以获取帮助信息
# kubectl get node #查看node
# kubectl get namespace #查看namespace
# kubectl get po --all-namespaces #查看所有的pod
# kubectl get po -n kube-system #查看指定namespace中的所有pod
# kubectl get svc -o yaml #查看service并以yaml的格式输出.-o 选项还有wide,json等,详见帮助
3.describe
类似于get,不同的是describe将攻取某一具体资源的更详细信息
# kubectl describe no NodeName #获取某个节点的详细信息
# kubectl describe pod PodName -n NameSpace #获取某个pod的详细信息
4.create
根据文件或输入创建集群resource
# kubectl create -f rc-nginx.yaml
5.replace
replace命令用于对已有资源进行更新、替换. 如前面create中创建的nginx,当我们需要更新resource的一些属性的时候,
如果修改副本数量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然后执行replace命令.
# kubectl replace -f rc-nginx.yaml
注:名字不能被更新。另外,如果是更新label,原有标签的pod将会与更新label后的rc断开联系,有新label的rc将会创建指定副本数的新的pod,
但是默认并不会删除原来的pod。所以此时如果使用get po将会发现pod数翻倍,进一步check会发现原来的pod已经不会被新rc控制
6.patch
如果一个容器已经在运行,这时需要对一些容器属性进行修改,又不想删除容器,或不方便通过replace的方式进行更新。
kubernetes还提供了一种在容器运行时,直接对容器进行修改的方式,就是patch命令。
如前面创建pod的label是app=nginx-2,如果在运行过程中,需要把其label改为app=nginx-3,这patch命令如下:
# kubectl patch pod rc-nginx-2-kpiqt -p '{"metadata":{"labels":{"app":"nginx-3"}}}'
7.delete
根据resource名,文件或label删除resource
# kubectl delete -f rc-nginx.yaml #通过yaml文件删除
# kubectl delete po rc-nginx-btv4j #通过pod名称删除
# kubectl delete po -l app=nginx-2 #通过label删除
8.logs
logs命令用于显示pod运行中,容器内程序输出到标准输出的内容。跟docker的logs命令类似。如果要获得tail -f 的方式,也可以使用-f选项
# kubectl logs rc-nginx-2-kpiqt
9.rolling-update
rolling-update是一个非常重要的命令,对于已经部署并且正在运行的业务,rolling-update提供了不中断业务的更新方式。
rolling-update每次起一个新的pod,等新pod完全起来后删除一个旧的pod,然后再起一个新的pod替换旧的pod,直到替换掉所有的pod。
rolling-update需要确保新的版本有不同的name,Version和label,否则会报错
# kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml #升级
如果在升级过程中,发现有问题还可以中途停止update,并回滚到前面版本
# kubectl rolling-update rc-nginx-2 --rollback #回滚
10.scale
scale用于副本的扩容或缩容,如前面创建的nginx有两个副本,可以轻松的使用scale命令对副本数进行扩展或缩小。
# kubectl scale deployment rc-nginx-3 --replicas=4 #扩容到4个
# kubectl scale deployment rc-nginx-3 --replicas=2 #缩容至2个