Kubectl 常用命令

Kubectl 常用命令

查看namspace

kubectl get namespace

查看某个namespace下的pod

kubectl get pod --namespace <your name space>

查看pod的详细信息(IP,所属节点信息等)

kubectl get pod -o wide

查看deployment列表

kubectl get deployment

查看某个deployment具体内容

kubectl describe deployment <deployment name>

查看某个pod内的容器

kubectl get pods <pod name>  -o jsonpath={.spec.containers[*].name}

进入pod

kubectl exec -it <pod name> -- /bin/bash

进入pod中指定的容器

kubectl exec -it <pod name> -c <container name>  -- /bin/bash

查看节点信息

kubectl get node -o wide

设置节点不可被调度

即master不会将新的pod调度到该节点上

kubectl cordon <node name>

设置节点可被调度

kubectl uncordon <node name>

查看deployment历史版本

kubectl rollout history deployment <deployment name>

回滚上一个deployment

kubectl rollout undo deployment <deployment name>

回滚指定版本的deployment

kubectl rollout undo deployment <deployment name> --to-revision=<version number>

给node打label

kubectl label nodes <node name> <key>=<value>

查看node上的label信息

kubectl get nodes --show-labels

调整pod数量

kubectl scale deployment/<deployment name> --replicas=<number>

驱逐某个节点上的node

kubectl drain <node name> --force --ignore-daemonsets --delete-local-data
--force                当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者 StatefulSet 管理的时候就需要用--force来强制执行 (例如:kube-proxy) 
--ignore-daemonsets    无视DaemonSet管理下的Pod。即--ignore-daemonsets往往需要指定的,这是因为deamonset会忽略unschedulable标签(使用kubectl drain时会自动给节点打上不可调度标签),因此deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,这样就会成为死循环.因此这里忽略daemonset
--delete-local-data    如果有mount local volumn的pod,会强制杀掉该pod
posted @ 2023-01-04 19:30  Dream可乐  阅读(16)  评论(0)    收藏  举报