Kubernetes 命令速查表

Kubernetes 常用命令速查:kubectl get、apply、delete、scale、rollout、port-forward 等高频命令对照,附中文说明,集群运维与排障时快速查阅。

命令说明
kubectl version查看客户端 / 服务端版本
kubectl cluster-info查看集群控制面地址
kubectl get nodes列出集群节点(-o wide 详情)
kubectl get pods列出 Pod(-A 所有命名空间)
kubectl get services列出 Service
kubectl get deployments列出 Deployment
kubectl describe pod查看 Pod 详情与事件
kubectl logs查看 Pod 日志(-f 跟踪)
kubectl exec在容器内执行命令(-it 交互)
kubectl apply -f用清单文件创建 / 更新资源
kubectl create从命令式参数创建资源
kubectl delete删除资源(-f 或 资源名)
kubectl edit在线编辑资源定义
kubectl scale扩缩容副本数(--replicas)
kubectl rollout status查看滚动更新进度
kubectl rollout undo回滚到上一版部署
kubectl port-forward把本地端口转发到 Pod
kubectl expose把资源暴露为 Service
kubectl config get-contexts列出 kubeconfig 上下文
kubectl config use-context切换当前集群上下文
kubectl top nodes查看节点 CPU / 内存占用
kubectl top pods查看 Pod 资源占用
kubectl cp容器与本地间拷贝文件
kubectl cordon标记节点不可调度
kubectl uncordon恢复节点可调度
kubectl drain驱逐节点上的 Pod(维护用)
kubectl get all列出命名空间内全部资源

常见问题

kubectl apply 和 create 有什么区别?

`apply` 是声明式,比对清单与集群现状后做增量变更,可重复执行、适合 GitOps;`create` 是命令式,直接新建资源,重复执行会报错。

如何查看 Pod 一直重启 / 崩溃的原因?

先用 `kubectl describe pod <名>` 看 Events 与 Last State(Exit Code、Reason);再用 `kubectl logs --previous` 看上一次容器崩溃前的日志。

如何把本地端口转发到 Pod 来调试?

用 `kubectl port-forward pod/<名> 8080:80` 把本机 8080 映射到 Pod 的 80 端口,然后访问 `localhost:8080` 即可本地联调,无需暴露 Service。

如何回滚一次失败的滚动更新?

`kubectl rollout undo deployment/<名>` 回滚到上一版;`kubectl rollout history deployment/<名>` 看历史,`--to-revision=N` 可指定回滚到某版本。