温馨提示×

CentOS Overlay配置有哪些步骤

小樊
41
2025-12-09 18:46:27
栏目: 智能运维

CentOS Overlay配置步骤

一 准备与概念

  • 明确目标:常见有两类需求——其一是OverlayFS(联合文件系统,用于目录层叠与可写覆盖),其二是容器 Overlay 网络(跨主机容器通信,常见于 Docker/Kubernetes)。
  • 内核支持:OverlayFS 在 CentOS 7+ 通常已内置内核模块;若需用户态实现或 FUSE 场景,可安装 fuse-overlayfs。容器场景则依赖 Docker/Containerd 等运行时与相应网络插件或驱动。

二 配置 OverlayFS 的步骤

  • 安装必要软件包(可选,若系统未内置或需 FUSE):sudo yum install -y fuse-overlayfs
  • 创建目录结构:sudo mkdir -p /mnt/overlay/{lower,upper,work,merged}
  • 挂载 OverlayFS:sudo mount -t overlay overlay -o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work /mnt/overlay/merged
  • 验证:ls /mnt/overlay/merged 应可见 lower/upper 合并视图;df -h 应显示挂载点。
  • 持久化:将如下行加入 /etc/fstab 并测试 mount -a: overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0
  • 安全建议:可按需增加挂载选项 noexec,nosuid,nodev

三 配置容器 Overlay 网络的步骤

  • Docker 单机 Swarm 模式(示例):
    • 安装并启动 Docker:sudo yum install -y docker && sudo systemctl start docker && sudo systemctl enable docker。
    • 初始化 Swarm(单机也需):sudo docker swarm init。
    • 创建 Overlay 网络:sudo docker network create --driver overlay my-overlay
    • 运行容器并连接:sudo docker run -d --name c1 --network my-overlay nginx。
  • Docker 多主机或 Kubernetes 场景:
    • 多主机需保证节点间 TCP/UDP 4789(VXLAN) 等端口可达,并配置 Docker 守护进程使用集群存储(如 Consul/etcd)或使用 Kubernetes 及其 CNI 插件(如 Calico/Flannel)来提供跨主机 Overlay 网络能力。

四 常见问题与排错

  • 挂载失败提示“invalid lowerdir/workdir/upperdir”等:检查目录是否存在、是否为绝对路径workdir 必须为空且与 upperdir 位于同一文件系统、lowerdir 是否可读。
  • 权限问题:确保执行 mount 的用户具备 rootCAP_SYS_ADMIN 能力;在容器中需以特权模式或授予相应能力运行。
  • 重启后未自动挂载:执行 mount -a 验证 /etc/fstab 语法;OverlayFS 条目不支持 systemd 的某些自动挂载特性,必要时使用 systemd mount 单元或 rc.local 稳妥挂载。
  • SELinux:如启用 SELinux,必要时为挂载点设置合适上下文(如 container_file_t)或临时使用 mount -o remount,context=… 进行验证。
  • 容器网络不通:确认 firewalld/iptables 未阻断 VXLAN/4789,节点间三层网络互通,以及 Docker/Kubernetes 网络插件已就绪并处于 Running 状态。

0