温馨提示×

Overlay配置时需要注意什么

小樊
33
2025-12-25 17:28:32
栏目: 编程语言

Overlay配置注意事项

一 先明确类型

  • OverlayFS 文件系统:将多个目录层叠为单一视图,常用于容器镜像/目录层合并与只读+可写层组合。
  • Docker 存储驱动 overlay2:容器镜像与容器可写层的存储后端,依赖内核与底层文件系统支持。
  • Docker Swarm Overlay 网络:跨主机容器网络,依赖 VXLAN 与节点间控制/数据通道。

二 OverlayFS 文件系统要点

  • 内核与模块:确认内核支持并加载模块,建议版本不低于3.10.0-514;在 /etc/modules-load.d/overlay.conf 中加入 overlay 确保开机加载。
  • 底层文件系统与 d_type:在 CentOS 7 上推荐使用 XFS,格式化时务必带 -n ftype=1,否则 Overlay/overlay2 可能无法正常工作。
  • 挂载参数与目录:挂载类型为 overlay,正确设置 lowerdir/upperdir/workdir,并确保各目录存在且权限正确;示例:
    mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /mnt/overlay
  • 持久化:如需开机自动挂载,将条目写入 /etc/fstab(注意 fstab 中 overlay 的字段顺序与选项)。
  • 权限与安全:使用 chown/chmod 设置挂载点与层目录权限;在 SELinux 环境下按需调整策略或布尔值以允许挂载与访问。
  • 日志与排错:通过 dmesg/var/log/messages/var/log/syslog 查看内核与挂载日志,快速定位参数、权限、空间等问题。

三 Docker 存储驱动 overlay2 要点

  • 版本与内核建议:生产优先使用 overlay2;建议 Linux 内核 ≥ 4.0,更早内核(如 3.10.0-514)虽可启用但可能存在功能/稳定性限制。
  • 启用方式与配置:在 /etc/docker/daemon.json 设置
    { “storage-driver”: “overlay2” }
    仅在明确需要时再添加选项(如实验环境下的覆盖检查),避免不兼容选项导致 Docker 启动失败。
  • 磁盘与空间管理:镜像/容器层会快速占用 /var/lib/docker,定期清理无用镜像、容器与卷(如 docker system prune),并监控磁盘使用。
  • 变更与回滚:修改存储驱动后需重启 Docker;如切换失败,清理 /var/lib/docker 并恢复配置再启动(操作前务必备份)。

四 Docker Swarm Overlay 网络要点

  • 端口与防火墙:确保节点间放通 TCP 2377(集群管理)、TCP/UDP 7946(节点发现)、UDP 4789(VXLAN 数据面);云环境同步放行安全组规则。
  • 创建与连通性:使用
    docker network create -d overlay my_overlay
    部署服务后,用 docker service create/inspect 与服务间连通性测试(如 ping/ curl)验证网络是否正常。
  • 常见问题排查:检查 docker network ls/inspect、节点 Docker 服务状态、防火墙与安全组、以及节点间网络连通性;必要时重启 Docker 服务。

五 通用排错与最佳实践

  • 先检查项:内核与模块(lsmod|grep overlay)、底层 文件系统类型与 d_type(xfs_info/lsblk -f)、目录存在与权限、可用磁盘空间(df -h)。
  • 日志定位:优先查看 dmesg/var/log/messages/var/log/syslog,结合错误关键词(如 mount、overlay、veth、vxlan)。
  • 变更流程:变更前备份配置与数据;变更后逐步验证(挂载/网络/服务),保留回滚路径。
  • 安全加固:按需配置 SELinux/AppArmor,最小权限原则;容器/主机间网络与存储隔离。
  • 监控与容量:对 /var/lib/docker 与节点磁盘设置告警,定期清理无用资源,避免空间耗尽导致异常。

0