Kubernetes Cheatsheet
收藏级 kubectl 常用命令手册, 涵盖资源管理、故障排障、网络检查及高级技巧.
熟练掌握 kubectl 是高效运维 K8s 的基础. 本篇总结了生产环境中最常用的高频指令.
1. 基础配置与上下文
# 查看所有上下文 (集群)
kubectl config get-contexts
# 切换到指定上下文
kubectl config use-context <context-name>
# 设置默认命名空间
kubectl config set-context --current --namespace=<namespace>2. 资源创建与修改
# 声明式应用配置 (最常用)
kubectl apply -f manual.yaml
# 快速部署一个测试 Pod (不使用 YAML)
kubectl run nginx --image=nginx
# 快速创建一个服务
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
# 在线编辑资源
kubectl edit svc <service-name>3. 故障排障 (核心技能)
# 查看资源详情 (可以看到 Events, 查找启动失败原因)
kubectl describe pod <pod-name>
# 查看日志 (实时追踪)
kubectl logs -f <pod-name> -c <container-name>
# 查看上一个崩溃容器的日志
kubectl logs <pod-name> --previous
# 进入容器执行命令
kubectl exec -it <pod-name> -- /bin/sh
# 查看节点资源占用情况 (需安装 metrics-server)
kubectl top node
kubectl top pod4. 节点与标签管理
# 查看标签
kubectl get nodes --show-labels
# 给节点增加标签
kubectl label nodes <node-name> disk=ssd
# 维护模式: 驱逐节点上的所有 Pod 并标记不可调度
kubectl drain <node-name> --ignore-daemonsets
# 恢复节点调度
kubectl uncordon <node-name>5. 高级技巧与单行脚本
# 查看所有非 Running 状态的 Pod
kubectl get pods -A | grep -v Running
# 强制删除 Pod (不等待正常关闭)
kubectl delete pod <pod-name> --grace-period=0 --force
# 查看所有资源的 API 版本和缩写
kubectl api-resources
# 端口转发: 将本地 8080 映射到 Pod 的 80
kubectl port-forward <pod-name> 8080:80
# 复制文件到 Pod
kubectl cp /tmp/foo <pod-name>:/tmp/bar6. 使用别名加速 (Alias)
建议在 .bashrc 或 .zshrc 中添加:
alias k='kubectl'
complete -F __start_kubectl k永远优先使用
kubectl apply而非kubectl create. 前者支持 "三方合并 (Three-way merge)", 是实现 GitOps 的基础.
7. kubecm
kubecm token list
kubecm list
kubectl get nodes -o wide
kubectl cluster-info
kubectl get pods -A -o wide
kubectl get service -o wide
kubectl -n kube-system describe pods kube-proxy-XXXXX8. Deployment
kubectl get deployments -A -o wide
kubectl scale deployments/kubernetes-bootcamp —replicas=3
kubectl scale deployments/kubernetes-bootcamp —replicas=2
kubectl get replicasets.apps其他搜集
kubectl get pods -A
kubectl get pods -n kube-system
kubectl get pods -n kube-system -l k8s-app
kubectl get pods -n kube-system -l k8s-app=cilium
kubectl describe pod hubble-relay-6bc74f85f9-zwxfn -n kube-system
kubectl get pods -n monitoring-dev -w