1、get
kubectl get nodes
kubectl get rc,namespace
kubectl get pods,svc #service 简写 svc
[(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
kubectl get po mysql -o wide #wide能够看到IP ,po 是pods 的简写
2、describe获得的是resource集群相关的信息
kubectl describe po mysql
3、create 根据yaml 进行编排
kubectl create -f *.yaml
4、replace命令用于对已有资源进行更新、替换
kubectl replace -f rc-nginx.yaml
5、patch
如果一个容器已经在运行,这时需要对一些容器属性进行修改,又不想删除容器,或不方便通过replace的方式进行更新。kubernetes还提供了一种在容器运行时,直接对容器进行修改的方式,就是patch命令。
kubectl patch pod rc-nginx-
2
-kpiqt -p
'{"metadata":{"labels":{"app":"nginx-3"}}}'
6 edit
kubectl edit po rc-nginx-btv4j # 使用edit直接更新前面创建的pod的, 和下面一样
kubectl get po rc-nginx-btv4j -o yaml >> /tmp/nginx-tmp.yaml vim /tmp/nginx-tmp.yaml /*do some changes here */ kubectl replace -f /tmp/nginx-tmp.yaml
7、delete
kubectl delete -f rc-nginx.yaml
kubectl delete po rc-nginx-btv4j
kubectl delete po -lapp=nginx-
2
8、apply命令提供了比patch,edit等更严格的更新resource的方式。通过apply,用户可以将resource的configuration使用source control的方式维护在版本库中。每次有更新时,将配置文件push到server,然后使用kubectl apply将更新应用到resource。kubernetes会在引用更新前将当前配置文件中的配置同已经应用的配置做比较,并只更新更改的部分,而不会主动更改任何用户未指定的部分。
apply命令的使用方式同replace相同,不同的是,apply不会删除原有resource,然后创建新的。apply直接在原有resource的基础上进行更新。同时kubectl apply还会resource中添加一条注释,标记当前的apply。类似于git操作。
9 logs命令用于显示pod运行中log ,和docker 类似
kubectl logs rc-nginx
10
rolling-update滚动更新,对于已经部署并且正在运行的业务,rolling-update提供了不中断业务的更新方式。一个pod,一个pod 的进行替换
11scale 扩缩容
kubectl scale rc rc-nginx-
3
—replicas=
4
12
autoscale 根据pod 负载进行自动扩缩容(指定最小和最大scale)
kubectl autoscale rc rc-nginx-
3
—min=
1
—max=
4
13 exec命令同样类似于docker的exec命令,为在一个已经运行的容器中执行一条shell命令,如果一个pod容器中,有多个容器,需要使用-c选项指定容器。
14 run 相当于docker 的run ,直接启动一个镜像
15 cordon(标记为不可调度) drain(pod平滑迁出该节点) uncordon (解除不可调度),保证维护节点时,平滑的将被维护节点上的业务迁移到其他节点上,保证业务不受影响。
kubectl cordon node1
kubectl drian node1
kubectl uncordon node1