以下是一份详细的 Kubernetes 常用命令大全总结,涵盖资源管理、故障排查、配置操作等核心场景,建议收藏备用:
集群信息
kubectl cluster-info # 显示集群基本信息
kubectl version --short # 查看客户端和服务器版本
kubectl get componentstatuses # 检查核心组件状态(如 scheduler/api-server)
节点管理
kubectl get nodes -o wide # 查看节点详情(包括IP和资源)
kubectl describe node <node-name> # 显示节点详细信息(资源分配、Taint等)
kubectl cordon/uncordon <node-name> # 标记节点不可调度/恢复调度
命名空间操作
kubectl get ns # 列出所有命名空间
kubectl create ns <namespace> # 创建命名空间
kubectl delete ns <namespace> # 删除命名空间(谨慎!)
Pod操作
kubectl get pods -A -o wide # 查看所有命名空间的Pod(含节点信息)
kubectl describe pod <pod-name> # 查看Pod详细信息(事件、状态等)
kubectl logs <pod-name> [-c container] # 查看容器日志
kubectl exec -it <pod-name> -- sh # 进入Pod的Shell
kubectl delete pod <pod-name> --force # 强制删除Pod(--grace-period=0)
Deployment/StatefulSet
kubectl get deploy # 查看Deployment
kubectl scale deploy <name> --replicas=3 # 扩缩容
kubectl rollout status deploy/<name> # 查看滚动更新状态
kubectl rollout undo deploy/<name> # 回滚到上一版本
Service/Ingress
kubectl get svc # 查看Service
kubectl expose deploy <name> --port=80 # 创建Service
kubectl get ingress # 查看Ingress规则
高级日志
kubectl logs --tail=100 -f <pod-name> # 实时尾部日志
kubectl logs --previous <pod-name> # 查看崩溃容器的日志
资源监控
kubectl top nodes/pods # 查看资源使用(需Metrics Server)
kubectl describe pod | grep -A 10 Events # 快速定位Pod事件
网络诊断
kubectl run tmp-shell --image=busybox --rm -it -- sh # 启动临时Pod测试网络
kubectl get endpoints <service-name> # 检查Service后端Pod
ConfigMap/Secret
kubectl create cm <name> --from-file=config.yaml # 从文件创建ConfigMap
kubectl get secret <name> -o yaml # 查看Secret内容(Base64解码)
PV/PVC
kubectl get pv,pvc # 查看持久卷和声明
kubectl describe pvc <pvc-name> # 检查PVC绑定状态
批量操作
kubectl delete pods --all # 删除所有Pod(慎用!)
kubectl get pods --field-selector status.phase=Running # 过滤Running状态的Pod
YAML操作
kubectl get <resource> -o yaml > file.yaml # 导出配置
kubectl apply -f file.yaml # 声明式更新配置
kubectl diff -f file.yaml # 预览变更(需kubectl 1.18+)
端口转发
kubectl port-forward svc/<name> 8080:80 # 将Service端口转发到本地
场景 | 命令示例 |
---|---|
快速删除失败Pod | kubectl delete pod <pod> --grace-period=0 --force |
查看Pod内容器 | kubectl get pod <pod> -o jsonpath='{.spec.containers[*].name}' |
查看Service IP | kubectl get svc <name> -o jsonpath='{.spec.clusterIP}' |
标签筛选 | kubectl get pods -l app=nginx |
注意事项:
1. 生产环境慎用 --force
删除操作
2. 推荐使用 kubectl explain <resource>
查看资源字段说明
3. 复杂查询可结合 -o jsonpath
或 jq
工具(如 kubectl get pods -o json | jq '.items[].metadata.name'
)
建议搭配 alias 提高效率(如 alias k=kubectl
)。如需更详细说明,可通过 kubectl <command> --help
查看帮助。