kubectl 常用命令(kubectl常用命令汇总)

kubectl 指令

状态查询

# 查看集群信息
kubectl cluster-info

systemctl status kube-apiserver
systemctl status kubelet
systemctl status kube-proxy
systemctl status kube-scheduler
systemctl status kube-controller-manager
systemctl status docker

node相关

# 查看namespaces
kubectl get namespaces

# 为节点增加lable
kubectl label nodes 10.126.72.31 points=test

# 查看节点和lable
kubectl get nodes --show-labels

# 查看状态
kubectl get componentstatuses

# Node的隔离与恢复
## 隔离
kubectl cordon k8s-node1

## 恢复
kubectl uncordon k8s-node1

查询

# 查看nodes节点
kubectl get nodes

# 通过yaml文件查询
kubectl get -f xxx-yaml/

# 查询资源
kubectl get resourcequota

# endpoints端
kubectl get endpoints

# 查看pods

# 查看指定空间`kube-system`的pods
kubectl get po -n kube-system

# 查看所有空间的
kubectl get pods -o wide --all-namespaces

# 其他的写法
kubectl get pod -o wide --namespace=kube-system

# 获取svc
kubectl get svc --all-namespaces

# 其他写法
kubectl get services --all-namespaces

# 通过lable查询
kubectl get pods -l app=nginx -o yaml|grep podIP

# 当我们发现一个pod迟迟无法创建时,描述一个pods
kubectl describe pod xxx

# 查询事件
kubectl get events --all-namespaces

删除所有pod

# 删除所有pods
kubectl delete pods --all

# 删除所有包含某个lable的pod和serivce
kubectl delete pods,services -l name=

# 删除ui server,然后重建
kubectl delete deployments kubernetes-dashboard --namespace=kube-system
kubectl delete services kubernetes-dashboard --namespace=kube-system

# 强制删除部署
kubectl delete deployment kafka-1

# 删除rc
kubectl delete rs --all && kubectl delete rc --all

## 强制删除Terminating状态的pod
kubectl delete deployment kafka-1 --grace-period=0 --force

滚动

# 升级
kubectl apply -f xxx.yaml --record

# 回滚
kubectl rollout undo deployment javademo

# 查看滚动升级记录
kubectl rollout history deployment {名称}

查看日志

# 查看指定镜像的日志
kubectl logs -f kube-dns-699984412-vz1q6 -n kube-system

kubectl logs --tail=10 nginx  

#指定其中一个查看日志
kubectl logs kube-dns-699984412-n5zkz -c kubedns --namespace=kube-system
kubectl logs kube-dns-699984412-vz1q6 -c dnsmasq --namespace=kube-system
kubectl logs kube-dns-699984412-mqb14 -c sidecar --namespace=kube-system

检查类指令

# 获取节点和服务版别信息
kubectl get nodes
# 获取节点和服务版别信息,并检查附加信息
kubectl get nodes -o wide

# 获取pod信息,默许是default称号空间
kubectl get pod
# 获取pod信息,默许是default称号空间,并检查附加信息【如:pod的ip及在哪个节点运行】
kubectl get pod -o wide
# 获取指定称号空间的pod
kubectl get pod -n kube-system
# 获取指定称号空间中的指定pod
kubectl get pod -n kube-system podName
# 获取一切称号空间的pod
kubectl get pod -A 
# 检查pod的详细信息,以yaml格局或json格局显示
kubectl get pods -o yaml
kubectl get pods -o json

# 检查pod的标签信息
kubectl get pod -A --show-labels 
# 根据Selector(label query)来查询pod
kubectl get pod -A --selector="k8s-app=kube-dns"

# 检查运行pod的环境变量
kubectl exec podName env # 检查指定pod的日志
kubectl logs -f --tail 500 -n kube-system kube-apiserver-k8s-master

# 检查一切称号空间的service信息
kubectl get svc -A
# 检查指定称号空间的service信息
kubectl get svc -n kube-system

# 检查componentstatuses信息
kubectl get cs
# 检查一切configmaps信息
kubectl get cm -A
# 检查一切serviceaccounts信息
kubectl get sa -A
# 检查一切daemonsets信息
kubectl get ds -A
# 检查一切deployments信息
kubectl get deploy -A
# 检查一切replicasets信息
kubectl get rs -A
# 检查一切statefulsets信息
kubectl get sts -A
# 检查一切jobs信息
kubectl get jobs -A
# 检查一切ingresses信息
kubectl get ing -A
# 检查有哪些称号空间
kubectl get ns

# 检查pod的描绘信息
kubectl describe pod podName
kubectl describe pod -n kube-system kube-apiserver-k8s-master  
# 检查指定称号空间中指定deploy的描绘信息
kubectl describe deploy -n kube-system coredns

# 检查node或pod的资源运用情况
# 需要heapster 或metrics-server支撑
kubectl top node
kubectl top pod 

# 检查集群信息
kubectl cluster-info 或  kubectl cluster-info dump 
# 检查各组件信息【172.16.1.110为master机器】
kubectl -s https:/ /172.16.1.110:6443 get componentstatuses

操作类指令

# 创立资源
kubectl create -f xxx.yaml
# 应用资源
kubectl apply -f xxx.yaml
# 应用资源,该目录下的一切 .yaml, .yml, 或 .json 文件都会被运用
kubectl apply -f# 创立test称号空间
kubectl create namespace test

# 删去资源
kubectl delete -f xxx.yaml
kubectl delete -f# 删去指定的pod
kubectl delete pod podName
# 删去指定称号空间的指定pod
kubectl delete pod -n test podName
# 删去其他资源
kubectl delete svc svcName
kubectl delete deploy deployName
kubectl delete ns nsName
# 强制删去
kubectl delete pod podName -n nsName --grace-period=0 --force
kubectl delete pod podName -n nsName --grace-period=1
kubectl delete pod podName -n nsName --now

# 编辑资源
kubectl edit pod podName

进阶指令操作

# kubectl exec:进入pod启动的容器
kubectl exec -it podName -n nsName /bin/sh #进入容器
kubectl exec -it podName -n nsName /bin/Bash #进入容器

# kubectl label:添加label值
kubectl label nodes k8s-node01 zone=north  #为指定节点添加标签 
kubectl label nodes k8s-node01 zone-       #为指定节点删去标签
kubectl label pod podName -n nsName role-name=test    #为指定pod添加标签
kubectl label pod podName -n nsName role-name=dev --overwrite  #修改lable标签值
kubectl label pod podName -n nsName role-name-        #删去lable标签

# kubectl翻滚晋级; 经过 kubectl apply -f myapp-deployment-v1.yaml 启动deploy
kubectl apply -f myapp-deployment-v2.yaml     #经过装备文件翻滚晋级
kubectl set image deploy/myapp-deployment myapp="registry.cn-beijing.aliyuncs.com/google_registry/myapp:v3"   #经过指令翻滚晋级
kubectl rollout undo deploy/myapp-deployment 或许 kubectl rollout undo deploy myapp-deployment    #pod回滚到前一个版别
kubectl rollout undo deploy/myapp-deployment --to-revision=2  #回滚到指定前史版别

# kubectl scale:动态弹性
kubectl scale deploy myapp-deployment --replicas=5 
# 动态弹性
kubectl scale --replicas=8 -f myapp-deployment-v2.yaml
阅读剩余
THE END
诺言博客