插件窝 干货文章 Kubernetes常用命令大全近期总结

Kubernetes常用命令大全近期总结

kubectl 查看 name Pod 152    来源:    2025-04-02

以下是一份详细的 Kubernetes 常用命令大全总结,涵盖资源管理、故障排查、配置操作等核心场景,建议收藏备用:


一、基础资源管理

  1. 集群信息

    kubectl cluster-info                  # 显示集群基本信息
    kubectl version --short               # 查看客户端和服务器版本
    kubectl get componentstatuses         # 检查核心组件状态(如 scheduler/api-server)
    
  2. 节点管理

    kubectl get nodes -o wide             # 查看节点详情(包括IP和资源)
    kubectl describe node <node-name>     # 显示节点详细信息(资源分配、Taint等)
    kubectl cordon/uncordon <node-name>   # 标记节点不可调度/恢复调度
    
  3. 命名空间操作

    kubectl get ns                        # 列出所有命名空间
    kubectl create ns <namespace>         # 创建命名空间
    kubectl delete ns <namespace>         # 删除命名空间(谨慎!)
    

二、工作负载管理

  1. Pod操作

    kubectl get pods -A -o wide           # 查看所有命名空间的Pod(含节点信息)
    kubectl describe pod <pod-name>       # 查看Pod详细信息(事件、状态等)
    kubectl logs <pod-name> [-c container] # 查看容器日志
    kubectl exec -it <pod-name> -- sh     # 进入Pod的Shell
    kubectl delete pod <pod-name> --force # 强制删除Pod(--grace-period=0)
    
  2. Deployment/StatefulSet

    kubectl get deploy                    # 查看Deployment
    kubectl scale deploy <name> --replicas=3  # 扩缩容
    kubectl rollout status deploy/<name>  # 查看滚动更新状态
    kubectl rollout undo deploy/<name>    # 回滚到上一版本
    
  3. Service/Ingress

    kubectl get svc                       # 查看Service
    kubectl expose deploy <name> --port=80 # 创建Service
    kubectl get ingress                   # 查看Ingress规则
    

三、调试与故障排查

  1. 高级日志

    kubectl logs --tail=100 -f <pod-name> # 实时尾部日志
    kubectl logs --previous <pod-name>    # 查看崩溃容器的日志
    
  2. 资源监控

    kubectl top nodes/pods                # 查看资源使用(需Metrics Server)
    kubectl describe pod | grep -A 10 Events # 快速定位Pod事件
    
  3. 网络诊断

    kubectl run tmp-shell --image=busybox --rm -it -- sh # 启动临时Pod测试网络
    kubectl get endpoints <service-name>  # 检查Service后端Pod
    

四、配置与存储

  1. ConfigMap/Secret

    kubectl create cm <name> --from-file=config.yaml # 从文件创建ConfigMap
    kubectl get secret <name> -o yaml     # 查看Secret内容(Base64解码)
    
  2. PV/PVC

    kubectl get pv,pvc                    # 查看持久卷和声明
    kubectl describe pvc <pvc-name>       # 检查PVC绑定状态
    

五、高级技巧

  1. 批量操作

    kubectl delete pods --all             # 删除所有Pod(慎用!)
    kubectl get pods --field-selector status.phase=Running # 过滤Running状态的Pod
    
  2. YAML操作

    kubectl get <resource> -o yaml > file.yaml # 导出配置
    kubectl apply -f file.yaml            # 声明式更新配置
    kubectl diff -f file.yaml             # 预览变更(需kubectl 1.18+)
    
  3. 端口转发

    kubectl port-forward svc/<name> 8080:80 # 将Service端口转发到本地
    

六、常用命令速查表

场景 命令示例
快速删除失败Pod kubectl delete pod <pod> --grace-period=0 --force
查看Pod内容器 kubectl get pod <pod> -o jsonpath='{.spec.containers[*].name}'
查看Service IP kubectl get svc <name> -o jsonpath='{.spec.clusterIP}'
标签筛选 kubectl get pods -l app=nginx

注意事项: 1. 生产环境慎用 --force 删除操作 2. 推荐使用 kubectl explain <resource> 查看资源字段说明 3. 复杂查询可结合 -o jsonpathjq 工具(如 kubectl get pods -o json | jq '.items[].metadata.name'

建议搭配 alias 提高效率(如 alias k=kubectl)。如需更详细说明,可通过 kubectl <command> --help 查看帮助。