K8s 命令速查表:按场景分类,含实战示例
一、集群与节点管理(基础检查)
命令场景 完整命令 关键说明
查看集群节点状态 kubectl get nodes 核心列: STATUS ( Ready 为正常)、 ROLES (区分 Master/Worker 节点)
查看节点详细信息 kubectl describe node <节点名称> 重点看 Conditions (资源压力)、 Allocatable (可分配资源)、 Pods (运行的Pod)
切换默认命名空间 kubectl config set-context --current --namespace=<命名空间> 避免每次操作加 -n <命名空间> ,如 kubectl config set-context --current --namespace=test
二、核心资源操作(Pod/Deployment/Service)
1. Pod 相关
命令场景 完整命令 关键说明
查看Pod列表 kubectl get pods -n <命名空间> 或 kubectl get pods -n <命名空间> -o wide -o wide 显示Pod所在节点和IP,如 kubectl get pods -n default -o wide
查看Pod日志 kubectl logs <Pod名称> -n <命名空间> [-f --tail=<行数>] -f 实时跟踪日志, --tail=100 显示最后100行,如 kubectl logs nginx-pod -n default -f --tail=100
进入Pod容器 kubectl exec -it <Pod名称> -n <命名空间> -c <容器名> -- <命令> 多容器Pod需指定 -c <容器名> ,如 kubectl exec -it nginx-pod -n default -- bash
删除Pod kubectl delete pod <Pod名称> -n <命名空间> 若Pod由Deployment管理,删除后会自动重建,需修改Deployment副本数或删除Deployment
2. Deployment 相关
命令场景 完整命令 关键说明
查看Deployment列表 kubectl get deployments -n <命名空间> 核心列: READY (就绪副本数/总副本数)、 UP-TO-DATE (最新版本副本数)
创建/更新Deployment kubectl apply -f <YAML文件路径> 生产环境首选,支持增量更新,如 kubectl apply -f nginx-deploy.yaml
快速创建Deployment kubectl create deployment <名称> --image=<镜像> --replicas=<副本数> -n <命名空间> 测试场景用,如 kubectl create deployment nginx-deploy --image=nginx:1.21 --replicas=3 -n default
升级镜像版本 kubectl set image deployment/<Deployment名称> <容器名>=<新镜像> -n <命名空间> 如 kubectl set image deployment/nginx-deploy nginx=nginx:1.22 -n default
查看更新进度 kubectl rollout status deployment/<Deployment名称> -n <命名空间> 确认新Pod是否正常启动,如 kubectl rollout status deployment/nginx-deploy -n default
回滚到上一版本 kubectl rollout undo deployment/<Deployment名称> -n <命名空间> 回滚后可通过 kubectl rollout history 查看历史版本
调整副本数(手动伸缩) kubectl scale deployment/<Deployment名称> --replicas=<目标副本数> -n <命名空间> 如 kubectl scale deployment/nginx-deploy --replicas=5 -n default
3. Service 相关
命令场景 完整命令 关键说明
查看Service列表 kubectl get services -n <命名空间> 或 kubectl get svc -n <命名空间> svc 是 services 缩写,核心列: TYPE (服务类型)、 CLUSTER-IP (集群内IP)
查看Service详情 kubectl describe service <Service名称> -n <命名空间> 重点看 Endpoints (关联的Pod IP:Port),无IP则说明标签不匹配
三、排障专用命令(定位问题核心)
命令场景 完整命令 关键说明
查看Pod事件日志 kubectl describe pod <Pod名称> -n <命名空间> 重点看 Events 字段,排查镜像拉取失败、存储挂载错误等,如 Failed to pull image
本地映射Pod端口 kubectl port-forward pod/<Pod名称> <本地端口>:<Pod端口> -n <命名空间> 跳过Service测试Pod本身,如 kubectl port-forward pod/nginx-pod 8080:80 -n default ,访问 localhost:8080
创建调试Pod(共享网络) kubectl debug -it --share-processes --image=busybox:1.35 <调试Pod名> --attach --pod=<目标Pod名> -n <命名空间> 用 ping / telnet 排查网络,如 kubectl debug -it debug-pod --share-processes --image=busybox:1.35 --attach --pod=nginx-pod -n default
查看HPA状态(自动伸缩) kubectl get hpa -n <命名空间> 确认是否触发扩容/缩容,核心列: TARGETS (当前CPU使用率/阈值)
四、效率提升技巧(别名与简写)
场景 配置/命令 说明
设置kubectl别名 在 ~/.bashrc 或 ~/.zshrc 中添加: alias k='kubectl' 之后可简写为 k get pods -n default ,配置后执行 source ~/.bashrc 生效
资源名称简写 常用资源支持缩写: pods→po 、 deployments→deploy 、 services→svc 、 nodes→no 如 k get po -n default (等价 kubectl get pods -n default )