kubectl 速查表

把这一页加进收藏夹。所有命令都假设你已经用 kubectl config use-context 指向了目标集群;加 -n <ns> 可以指定命名空间。

集群与上下文

kubectl version --short查看客户端与服务端版本
kubectl cluster-info查看 API Server 地址与控制面信息
kubectl config get-contexts列出所有集群上下文
kubectl config use-context kind-kube101切换上下文
kubectl get nodes -o wide查看节点及其内网 IP、系统版本
kubectl api-resources列出集群支持的所有资源类型

查看资源

kubectl get pods -A -o wide查看所有命名空间的 Pod
kubectl get deploy,svc,ing -n demo一次查看多种资源
kubectl get pod web-abc -o yaml导出资源的完整 YAML
kubectl get pod web-abc -o jsonpath='{.status.podIP}'精确提取字段
kubectl describe pod web-abc查看详情与事件(排障第一步)
kubectl get events --sort-by=.lastTimestamp按时间排序查看事件
kubectl get pods --watch持续观察状态变化

创建与更新

kubectl apply -f web.yaml声明式创建或更新(推荐)
kubectl apply -f ./manifests/ -R递归应用整个目录
kubectl create deployment web --image=nginx --dry-run=client -o yaml生成 YAML 模板
kubectl diff -f web.yaml预览将要发生的变更
kubectl delete -f web.yaml按清单删除资源
kubectl edit deploy web直接编辑线上资源(仅调试用)
kubectl rollout restart deploy/web滚动重启,重新拉取镜像

调试排障

kubectl logs -f deploy/web跟踪 Deployment 的日志
kubectl logs pod/web-abc --previous查看上一次崩溃前的日志
kubectl exec -it web-abc -- sh进入容器
kubectl exec web-abc -- nslookup api在容器内验证 DNS 解析
kubectl port-forward svc/web 8080:80把 Service 端口转发到本地
kubectl top pod -n demo查看资源使用(需 metrics-server)
kubectl debug -it web-abc --image=busybox --target=web用临时容器调试

发布与扩缩容

kubectl scale deploy/web --replicas=5手动扩缩容
kubectl set image deploy/web web=nginx:1.27更新镜像触发滚动发布
kubectl rollout status deploy/web等待并查看发布进度
kubectl rollout history deploy/web查看发布历史
kubectl rollout undo deploy/web --to-revision=2回滚到指定版本
kubectl autoscale deploy/web --min=2 --max=10 --cpu-percent=70创建 HPA

命名空间与权限

kubectl create ns demo创建命名空间
kubectl config set-context --current --namespace=demo把当前命名空间设为默认
kubectl auth can-i delete pods -n demo检查自己有没有权限
kubectl auth can-i --list --as=system:serviceaccount:demo:app查看某个 SA 的权限清单
kubectl get role,rolebinding -n demo查看命名空间内授权
kubectl create token app -n demo为 ServiceAccount 生成短期 Token

网络、配置与存储

kubectl get endpointslices -n demo查看 Service 背后的真实 Pod IP
kubectl get ingress -A查看所有入口规则
kubectl create configmap app-config --from-file=app.yaml从文件创建 ConfigMap
kubectl create secret generic db --from-literal=password=s3cr3t创建 Secret
kubectl get pvc -n demo查看持久卷声明状态
kubectl get storageclass查看可用存储类

Helm

helm create mychart生成 chart 骨架
helm template mychart ./mychart本地渲染模板,不安装
helm install web ./mychart -n demo --create-namespace安装 release
helm upgrade web ./mychart -n demo -f values-prod.yaml升级 release
helm list -A列出所有 release
helm rollback web 1 -n demo回滚到第 1 个版本
helm uninstall web -n demo卸载 release