一、集群&节点基础命令

# 查看 kubectl 和集群版本
kubectl version

# 查看集群基本信息(API 服务器、DNS)
kubectl cluster-info

# 查看集群所有可用资源类型
kubectl api-resources

# 查看资源支持的 API 版本
kubectl api-versions

# 查看集群所有节点状态
kubectl get nodes

# 查看节点详细信息(资源、污点、事件、状态)
kubectl describe node <节点名称>

# 查看节点 CPU/内存使用率(需安装 metrics-server)
kubectl top node

# 标记节点不可调度(维护前)
kubectl cordon <节点名称>

# 恢复节点可调度
kubectl uncordon <节点名称>

# 排空节点(驱逐 Pod,维护专用,自动触发 cordon)
kubectl drain <节点名称> --ignore-daemonsets --delete-emptydir-data

二、命名空间(Namespace)命令

# 查看所有命名空间
kubectl get namespaces
# 简写:kubectl get ns 

# 创建命名空间
kubectl create namespace <命名空间名称>
# 简写:kubectl create ns <命名空间名称> 

# 删除命名空间(会删除空间内所有资源,谨慎操作)
kubectl delete ns <命名空间名称> 

# 切换当前上下文默认命名空间(修正为完整参数)
kubectl config set-context --current --namespace=<命名空间名称> 

# 查看指定命名空间资源(所有命令通用 -n 参数)
kubectl get pods -n <命名空间名称>

三、资源通用操作命令

查看资源

# 查看指定资源(资源名:pods/deployments/svc/ingress/cm/pvc等)
kubectl get <资源类型>

# 查看资源详细信息(IP、节点、端口、状态)
kubectl get <资源类型> -o wide

# 以 YAML 格式导出资源配置文件(需指定资源类型与名称)
kubectl get <资源类型> <资源名称> -o yaml

# 以 JSON 格式导出资源配置文件
kubectl get <资源类型> <资源名称> -o json

# 按标签筛选资源(使用 -l 参数)
kubectl get <资源类型> -l <标签键>=<标签值>

# 查看当前命名空间所有核心资源(Pod/Deploy/Svc/ReplicaSet等)
kubectl get all

# 查看所有命名空间的指定资源
kubectl get <资源类型> --all-namespaces
# 简写方式:
kubectl get <资源类型> -A

资源详情与事件排查

# 查看资源详细描述+事件日志(排错核心命令,需指定类型和名称)
kubectl describe <资源类型> <资源名称>

# 查看集群所有事件,并按创建时间排序(由远及近)
kubectl get events --sort-by=.metadata.creationTimestamp

# 查看指定命名空间的事件
kubectl get events -n <命名空间名称>

创建/更新/删除资源

# 基于 YAML 文件创建/更新资源(推荐,幂等操作)
kubectl apply -f <资源配置文件.yaml>

# 批量操作目录下所有 YAML 文件
kubectl apply -f <目录路径>/

# 仅创建资源(已存在会报错,不推荐生产环境)
kubectl create -f <资源配置文件.yaml>

# 强制替换资源(删除重建,会中断服务,用于某些不可更新字段的变更)
kubectl replace --force -f <资源配置文件.yaml>

# 删除指定资源(需指定类型与名称)
kubectl delete <资源类型> <资源名称>

# 按配置文件中定义的资源进行删除
kubectl delete -f <资源配置文件.yaml>

# 删除当前命名空间下所有该类型的资源
kubectl delete <资源类型> --all

# 删除指定命名空间下所有该类型的资源
kubectl delete <资源类型> --all -n <命名空间名称>

四、Pod核心操作命令

# 查看当前命名空间所有 Pod
kubectl get pods

# 实时查看 Pod 日志(默认查看第一个容器)
kubectl logs -f <Pod名称>

# 查看 Pod 中指定容器的日志
kubectl logs <Pod名称> -c <容器名称>

# 查看 Pod 崩溃前的上一次运行日志(排查 CrashLoopBackOff 故障的核心命令)
kubectl logs <Pod名称> --previous

# 进入 Pod 容器交互终端(需使用 exec -it)
kubectl exec -it <Pod名称> -- /bin/bash

# 进入 Pod 中指定容器的交互终端
kubectl exec -it <Pod名称> -c <容器名称> -- /bin/sh

# 直接在容器内执行单条命令(不进入终端)
kubectl exec <Pod名称> -- ls /usr/share/nginx/html

# 本地端口转发:将本地 8080 端口映射到 Pod 的 80 端口
kubectl port-forward <Pod名称> 8080:80

# 创建临时调试 Pod,退出后自动删除(用于测试网络或环境)
kubectl run tmp-pod --image=busybox --rm -it -- sh

# 查看指定 Pod 的 CPU/内存资源使用率(需安装 metrics-server)
kubectl top pod <Pod名称>

# 查看当前命名空间下所有 Pod 的资源使用率
kubectl top pod

五、Deployment(工作负载)命令

# 查看当前命名空间下所有 Deployment
kubectl get deployments
# 简写方式:
kubectl get deploy

# 查看特定 Deployment 的详细信息(包括滚动更新策略、副本状态、事件)
kubectl describe deployment <Deployment名称>

# Deployment 扩缩容(调整副本数)
kubectl scale deployment <Deployment名称> --replicas=<副本数>

# 更新 Deployment 的容器镜像(触发滚动更新,无停机)
kubectl set image deployment <Deployment名称> <容器名称>=<镜像地址:版本号>

# 实时查看 Deployment 滚动更新的状态
kubectl rollout status deployment <Deployment名称>

# 查看 Deployment 的版本更新历史记录
kubectl rollout history deployment <Deployment名称>

# 回滚到上一个版本
kubectl rollout undo deployment <Deployment名称>

# 回滚到指定的历史版本(需配合 history 命令查看版本号)
kubectl rollout undo deployment <Deployment名称> --to-revision=<版本号>

# 暂停 Deployment 的滚动更新(用于多项配置同时修改)
kubectl rollout pause deployment <Deployment名称>

# 恢复 Deployment 的滚动更新
kubectl rollout resume deployment <Deployment名称>

六、Service&Ingress(网络服务)命令

# 查看所有 Service
kubectl get services
# 简写方式:
kubectl get svc

# 查看 Service 详情(检查 Endpoints 是否挂载成功)
kubectl describe svc <Service名称>

# 将 Deployment 暴露为 Service
# 类型包括:ClusterIP(默认) / NodePort / LoadBalancer
kubectl expose deployment <Deployment名称> --port=<服务端口> --target-port=<容器端口> --type=<Service类型>

# 创建 ClusterIP 类型 Service(手动创建方式)
kubectl create service clusterip <Service名称> --tcp=<服务端口>:<容器端口>

# 查看所有 Ingress 路由规则
kubectl get ingress
# 简写方式:
kubectl get ing

# 查看 Ingress 详情(排查域名转发或证书配置问题)
kubectl describe ingress <Ingress名称>

七、配置与敏感数据(ConfigMap&Secret)

# 查看所有 ConfigMap
kubectl get configmaps
# 简写方式:
kubectl get cm

# 创建 ConfigMap(从字面量或文件创建)
kubectl create configmap <ConfigMap名称> --from-literal=<键>=<值> --from-file=<文件路径>

# 查看 ConfigMap 详情(查看配置内容)
kubectl describe cm <ConfigMap名称>

# 查看当前命名空间下所有 Secret
kubectl get secrets

# 创建通用型 Secret(存储密码、密钥等)
kubectl create secret generic <Secret名称> --from-literal=<键>=<值>

# 查看 Secret 详情(注意:此处不直接显示明文数据)
kubectl describe secret <Secret名称>

# 解码 Secret 中的明文数据(核心命令)
# 将 <键> 替换为 Secret 中的 Key,例如 password
kubectl get secret <Secret名称> -o jsonpath='{.data.<键>}' | base64 -d

八、存储(PV&PVC)命令

# 查看集群中所有的持久卷(PV,集群级别资源)
kubectl get pv

# 查看当前命名空间下的所有持久卷声明(PVC)
kubectl get pvc

# 查看指定 PV 的详细信息(如状态、回收策略、挂载点)
kubectl describe pv <PV名称>

# 查看指定 PVC 的详细信息(排查未绑定 Bound 的原因)
kubectl describe pvc <PVC名称>

# 查看 PVC 绑定状态及详细信息(包括容量、访问模式、StorageClass)
kubectl get pvc -o wide

 

 

更多推荐