kubernetes 运维必会的常用命令合集

查看

kubectl cluster-info     # 查看集群信息kubectl get no -o wide     # 获取节点和服务版本信息,并查看附加信息kubectl get ns              # 查看有哪些名称空间kubectl get netnamespace  #kubectl get svc             # 查看所有名称空间的service信息kubectl get cs           # 查看component statuses信息kubectl get po -n xxxx -o yaml          # 以yaml 的格式查看pod/也可以用jsonkubectl get pod -A --show-labels         # 查看pod的标签信息kubectl get cm -a                   # 查看所有configmaps信息    kubectl get sa -a      # 查看所有serviceaccounts信息kubectl get rs -a      # 查看所有replicasets信息kubectl get deploy -a     # 查看所有deployments信息kubectl get sts -a      # 查看所有statefulsets信息
kubectl get ing -a      # 查看所有ingresses信息kubectl top node        !#查看node的资源使用情况(需要heapster 或metrics-server支持)kubectl top pod          !#查看pod的资源使用情况(需要heapster 或metrics-server支持kubectl -s https://xx.xx.xx.xx:6443 get componentstatuses # 查看各组件信息(xx.xx.xx.xx为master机器)kubectl describe pod      # 查看pod的描述信息,也可以指定其他资源类型kubectl get resourcequota -n=xxxx  # 查看namespace 配额kubectl logs -f xxx      # 查看pod 日志kubectl get pod xxx -w      # 动态查看pod 启动流程kubectl config view      # 查看集群配置kubectl get quota -n xxx    # 查看namekubectl explain pod.spec.affinity.pod    # 编辑yaml查看资源亲和kubectl get pod $POD_NAME --template={{.status.podIP}} # 获取pod ip

操作

create:有则不建,无则创建apply :有则更新,无则创建kubectl create -f xxx.yaml  # 创建资源kubectl apply -f xxx.yaml  # 应用资源kubectl apply -f # 应用资源,该目录下的所有 .yaml, .yml, 或 .json 文件都会被使用kubectl create namespace xxx # 创建xxx名称空间kubectl edit resourcequota -n xxx # 修改namespace配额
# 针对不同类型pod,要对应删除,否则是删不掉的,常用类型有:deploymentstatefulsetcronjobpodservicerouteingressconfigmapsecretpv/pvc
kubectl delete -f xxx.yaml      # 删除资源kubectl delete -fkubectl delete resource-name xxx -n xxx  # 删除指定的资源kubectl delete svc --grace-period=0 --force # 强制删除其他资源

操作-更新

kubectl exec -it xxx -n xxx /bin/sh    #进入容器kubectl exec -it xxx -n xxx /bin/bash  #进入容器
# kubectl label:添加label值kubectl label nodes k8s-node01 zone=north  #为指定节点添加标签kubectl label nodes k8s-node01 zone-       #为指定节点删除标签kubectl label pod xxx -n xxx role-name=test    #为指定pod添加标签kubectl label pod xxx -n xxx role-name=dev --overwrite  #修改lable标签值kubectl label pod xxx -n xxx role-name-        #删除lable标签
# kubectl滚动升级;通过 kubectl apply -f myapp-deployment-v1.yaml 启动deploykubectl 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    #pod回滚到前一个版本undo -> history 查看历史 --> status 查看状态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  #动态伸缩【根据资源类型和docker system prune -a       # 清除所有未被使用的资源包括镜像,卷,磁盘,id等docker image prune -a / docker volume prune / docker network prune
阅读剩余
THE END
诺言博客