适用场景

容器化能提高交付效率,但也带来新的运维面:镜像与仓库、网络与存储、资源限制、日志与证书。管好这五块,集群才稳。

配置步骤(K8s 常见故障定位)

# Pending:资源不足 / 节点亲和 / PVC 未绑定
kubectl describe pod 名称 -n 命名空间 | grep -A5 Events
# CrashLoopBackOff:看应用日志与启动命令
kubectl logs 名称 -n 命名空间 --previous
# ImagePullBackOff:镜像地址与仓库凭据
kubectl get events -n 命名空间 --sort-by=.lastTimestamp | tail

关键参数与建议

  • 镜像:固定版本标签(不要用 latest)、私有仓库、扫描漏洞
  • 资源:为每个工作负载设置 requests/limits,避免相互抢占
  • 网络:明确 CNI 方案,Service 暴露方式(NodePort/Ingress)要收敛
  • 日志与监控:容器日志集中采集,指标接入 Prometheus
  • 证书与令牌:kubeconfig、Ingress 证书、ServiceAccount 权限最小化

容易踩的坑

  • 只看 Pod 状态不看 Events,缺少关键线索
  • 忽略资源不足导致的调度失败
  • 镜像凭据过期,误判为网络问题

验证与巡检

kubectl get events -A --sort-by=.lastTimestamp | tail -20
  • 巡检:事件无异常高频报错、关键工作负载有就绪探针

小结

K8s 排障从四层看:节点(NotReady?)→ 调度(Pending?)→ 容器(CrashLoopBackOff?)→ 服务(网络/证书)。先把层定下来,再看日志。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。