适用场景

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

配置步骤(Docker 单机运维)

# 资源与状态
docker stats --no-stream
docker system df
docker info | head -20
# 清理(谨慎:会删未使用资源)
docker image prune -a --filter \「until=168h\」
# 日志限制(daemon.json)
# {\「log-driver\」:\「json-file\」,\「log-opts\」:{\「max-size\」:\「50m\」,\「max-file\」:\「3\」}}

关键参数与建议

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

容易踩的坑

  • 容器日志无限制,把宿主磁盘写满
  • 用 latest 标签,回滚时找不到具体版本
  • 容器以 root 运行且挂载宿主目录,风险高

验证与巡检

docker system df
docker ps --format '{{.Names}}\t{{.Status}}'
  • 巡检:磁盘占用可控、无异常重启容器、日志已限大小

小结

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

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