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 |