共计 2103 个字符,预计需要花费 6 分钟才能阅读完成。
本文整理高频 Kubernetes 运维命令,适用于集群维护、故障诊断和日常管理场景,建议保存为终端快捷脚本
一、节点维护与状态监控
# 1.1 重启节点服务(按依赖顺序执行)
systemctl restart docker && systemctl restart kubelet && systemctl restart kube-proxy
# 1.2 节点排水(维护前操作)
kubectl drain <节点名> --ignore-daemonsets --delete-emptydir-data
# 1.3 恢复节点调度
kubectl uncordon <节点名>
# 1.4 监控节点资源
kubectl top nodes
二、服务状态与诊断
# 2.1 查看服务Pod分布
kubectl get pod -n <命名空间> -o wide | grep '<服务名>' | awk '{print $1,$3,$6}'
# 2.2 检查异常Pod
kubectl get pods -n <命名空间> --field-selector=status.phase!=Running
# 2.3 实时日志追踪(自动过滤错误)
kubectl logs -f deployment/<服务名> -n <命名空间> | grep -i -E 'error|fail|exception'
# 2.4 诊断Pod事件链
kubectl describe pod <Pod名> -n <命名空间> | grep -A 20 Events:
三、镜像管理
# 3.1 查询服务镜像版本
kubectl get deployment <服务名> -n <命名空间> -o jsonpath='{.spec.template.spec.containers[0].image}'
# 3.2 批量导出服务镜像(格式化输出)
kubectl get deployments -n <命名空间> -o custom-columns="NAME:.metadata.name,IMAGE:.spec.template.spec.containers[0].image"
四、资源操作技巧
# 4.1 安全更新配置(幂等操作)
kubectl apply -f updated-config.yaml
# 4.2 强制重建资源
kubectl replace --force -f broken-resource.yaml
# 4.3 交互式调试Pod
kubectl debug -it <问题Pod名> --image=busybox --target=<容器名>
# 4.4 批量清理Evicted状态Pod
kubectl get pods -A | grep Evicted | awk '{print $1,$2}' | xargs -n2 kubectl delete pod -n
五、滚动更新与扩缩容
# 5.1 副本数动态调整
kubectl scale deployment/nginx --replicas=5
# 5.2 触发滚动更新
kubectl set image deployment/nginx nginx=nginx:1.23-alpine
# 5.3 更新状态监控
kubectl rollout status deployment/nginx
# 5.4 快速回滚版本
kubectl rollout undo deployment/nginx
六、集群配置管理
# 6.1 关键组件配置导出
kubectl get ds/kube-proxy cm/kube-proxy -n kube-system -o yaml > kube-proxy-backup.yaml
# 6.2 查看kubelet启动参数
ps -ef | grep kubelet | grep -v grep
# 6.3 实时查看kubelet日志
journalctl -u kubelet -f --no-tail
七、标签调度策略
# 7.1 节点标记为不可调度
kubectl cordon <节点名>
# 7.2 按区域调度Pod
kubectl label nodes <节点名> zone=north
kubectl patch deployment/nginx -p '{"spec":{"template":{"spec":{"nodeSelector":{"zone":"north"}}}}}'
关键运维知识
1.Pod状态解析表
| 状态 | 含义 | 处理方案 |
|---|---|---|
| CrashLoopBackOff | 容器持续崩溃 | 检查日志/资源限制/启动命令 |
| ImagePullBackOff | 镜像拉取失败 | 检查镜像权限/地址/Tag |
| Evicted | 节点资源不足被驱逐 | 扩容节点或优化资源请求 |
| Pending | 调度失败 | 检查资源配额/节点污点 |
2. 生产环境禁忌
-
✖ 避免直接操作Pod(优先使用Deployment)
-
✖ 禁止kubectl delete –force删除有状态服务
-
✔ 关键操作前使用kubectl diff -f config.yaml预览变更
3.诊断命令黄金组合
# 问题定位四件套:
kubectl describe pod <问题Pod>
kubectl logs <问题Pod> --previous
kubectl get events --sort-by='.lastTimestamp'
kubectl exec -it <问题Pod> -- sh
正文完