温馨提示×

CentOS Overlay配置有哪些关键步骤

小樊
50
2025-11-08 02:58:22
栏目: 智能运维

CentOS Overlay配置关键步骤(文件系统+网络)

Overlay配置在CentOS中主要涉及文件系统层叠(用于合并目录视图)和Docker网络跨主机通信(用于容器间虚拟网络)两大场景。以下是分场景的关键步骤:

一、Overlay文件系统配置(用于目录合并)

Overlay文件系统通过“底层目录(lowerdir)”“上层目录(upperdir)”“工作目录(workdir)”三层结构,将多个目录合并为一个可写视图,常用于容器镜像分层或数据隔离。

1. 安装必要软件包

确保系统安装fuse-overlayfs(用户态Overlay文件系统工具)和fuse(文件系统内核模块支持):

sudo yum install -y fuse-overlayfs fuse
2. 创建目录结构

需准备三个目录:

  • lowerdir:底层只读目录(存放基础数据,如镜像层);
  • upperdir:上层可写目录(存放修改后的数据);
  • workdir:工作目录(Overlay文件系统内部使用,必须为空目录)。
sudo mkdir -p /mnt/overlay/{lower,upper,work}
3. 挂载Overlay文件系统

使用mount命令将三层目录合并到目标挂载点(如/mnt/overlay/merged):

sudo mount -t overlay overlay \
-o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work \
/mnt/overlay/merged

参数说明

  • lowerdir:多个目录用冒号分隔(如dir1:dir2),读取时按顺序查找;
  • upperdir:必须为单独目录,写入的数据会保存至此;
  • workdir:不能与其他目录重叠,用于文件系统内部元数据操作。
4. 验证挂载

通过df -h命令检查挂载状态,确认文件系统类型为overlay且挂载点正确:

df -h /mnt/overlay/merged
5. 持久化配置(可选)

若需系统重启后自动挂载,将配置添加到/etc/fstab文件:

sudo vi /etc/fstab

添加以下内容(与挂载命令参数一致):

overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0

重启系统后,使用df -h验证自动挂载是否成功。

6. 使用与卸载
  • 使用:所有对/mnt/overlay/merged的写操作会保存到upperdir,读操作优先从upperdir查找,未找到则从lowerdir读取;
  • 卸载:操作完成后,使用umount命令卸载:
sudo umount /mnt/overlay/merged

二、Overlay网络配置(用于Docker跨主机容器通信)

Overlay网络通过VXLAN隧道技术,让不同Docker主机上的容器处于同一虚拟网络,实现跨主机通信,是Docker Swarm或Kubernetes集群的核心网络模式。

1. 准备工作
  • 系统要求:CentOS 7.x及以上;
  • Docker要求:Docker 1.9及以上(支持Overlay网络驱动);
  • 主机互通:所有参与Overlay网络的Docker主机需处于同一物理/虚拟网络,且防火墙允许VXLAN流量(UDP 4789端口)。
2. 安装并启动Docker

若未安装Docker,使用以下命令安装:

sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
3. 配置Docker守护进程

编辑/etc/docker/daemon.json文件,设置storage-driveroverlay2(推荐)并配置exec-opts

sudo vi /etc/docker/daemon.json

添加以下内容:

{
  "storage-driver": "overlay2",
  "exec-opts": ["native.cgroupdriver=systemd"]
}

说明

  • storage-driver: overlay2:使用Overlay2作为镜像存储驱动(性能更优);
  • native.cgroupdriver=systemd:兼容systemd资源管理。

保存后重启Docker服务:

sudo systemctl restart docker
4. 创建Overlay网络

使用docker network create命令创建Overlay网络,指定子网、网关及驱动:

docker network create \
--driver overlay \
--subnet=10.0.0.0/24 \
--gateway=10.0.0.1 \
my-overlay-network

参数说明

  • --driver overlay:指定网络驱动为Overlay;
  • --subnet:定义Overlay网络的子网范围(需避免与其他网络冲突);
  • --gateway:定义Overlay网络的网关地址(容器默认路由)。
5. 连接服务到Overlay网络
  • Docker Compose方式:在docker-compose.yml中指定网络为external: true(需提前创建网络):
version: '3.8'
services:
  web:
    image: nginx
    networks:
      - my-overlay-network
networks:
  my-overlay-network:
    external: true

启动服务:

docker-compose up -d
  • 命令行方式:直接启动容器并连接到Overlay网络:
docker run -d --name my_container --network my-overlay-network nginx
6. 验证Overlay网络
  • 查看网络列表,确认Overlay网络已创建:
docker network ls
  • 进入容器测试跨主机通信(需在另一台主机上启动相同网络的容器):
docker exec -it my_container ping <另一台主机容器IP>
7. 跨主机配置(可选)

若需跨主机通信,需确保所有主机:

  • 配置相同的Docker守护进程参数(如cluster-storecluster-advertise,用于服务发现);
  • 加入同一Docker Swarm集群(使用docker swarm initdocker swarm join命令);
  • 防火墙开放VXLAN端口(UDP 4789):
sudo firewall-cmd --add-port=4789/udp --permanent
sudo firewall-cmd --reload

以上步骤覆盖了CentOS中Overlay配置的核心场景,可根据实际需求选择对应配置。

0