Kubernetes 运维命令终极指南:从节点维护到故障排查

共计 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  
正文完
 0