1 get

获取集群里的各种资源信息(node pod service ReplicationControler等)

(未指定namespace时,默认是针对default namespace

1.1 获取pod信息

获取所有/某一个Pod的详细信息:kubectl get pods [pod_name] 

获取pod的节点信息等:kubectl get pods -o wide

获取指定namespace的pods:kubectl get pods --namespace=kube-system

获取所有namespace的pods:kubectl get pods --all-namespaces

以yaml/json格式输出pod详细信息:kubectl get pods <pod_name> -o yaml/json

1.2 获取namespace信息 

kubectl get namespace

1.3 获取节点信息

kubectl get nodes

 

2 describe

获取集群相关的信息,用于排查pod不是running状态时的问题

(会显示pod的运行事件,比如镜像有没有拉取,容器有没有创建)

kubectl describe pods <pod_name>

 

3 create

根据文件创建集群resource(pod或者rc),

kubectl create -f <yaml_file>

Eg: rc-nginx.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-nginx-2
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx-2
    spec:
      containers:
      - name: nginx-2
        image: xingwangc.docker.rg/nginx
        ports:
        - containerPort: 80

 

kind  可以指定是Pod或者ReplicationController

随后可以用kubectl get pods/rc 查看

 

4 replace

用于对正在运行的已有资源进行更新替换(修改副本数量,修改image版本,端口等),可以直接修改原yaml文件,然后执行replace命令(删除原有资源然后重新构建资源

kubectl replace -f <yaml_file>

注意:yaml文件里的metadata的name不能修改(是按照name作为资源的唯一标识)

 

5 patch

如对正在运行的容器的属性进行在线修改(不删除容器),比如修改pod的label等

kubectl patch pod rc-nginx-2-kpiqt -p '{"metadata":{"labels":{"app":"nginx-3"}}}'

 

6 edit

和replace一样替换资源

kubectl get pods <pod_name> 

等同于:

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

删除Pod等资源

kubectl delete pods <pod_name>

 

8 logs

显示pod运行中,容器内的程序输出到控制台的内容

kubectl logs <pod_name>

 

9 rolling-update

滚动更新(在不中断业务的情况下更新Pod),rolling-update每次起一个新的pod,等新pod完全起来后删除一个旧的pod,直到替换掉所有的pod。注:确保新的版本有不同的name/version/label

kubectl rolling-update <pod_name> -f <new_yaml_file>

中止update回滚到之前的版本:

kubectl rolling-update <pod_name> -rollback

 

10 scale

动态扩展副本

kubectl scale rc <rc_name> —replicas=4

 

11 节点维护

对一个node进行维护(平滑的将被维护节点上的业务迁移到其他节点上,保证业务不受影响)

cordon:kubectl cordon  <node_name> 

drain:kubectl drain <node_name>

uncordon:kubectl uncordon  <node_name>

kubectl常用命令

 

 

 

 

 

参考文档:

https://blog.csdn.net/xingwangc2014/article/details/51204224

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: