首页主机资讯CentOS Overlay如何进行网络配置

CentOS Overlay如何进行网络配置

时间2025-11-06 14:22:03发布访客分类主机资讯浏览1087
导读:CentOS上配置Overlay网络(以Docker为例) Overlay网络是Docker实现跨主机容器通信的核心网络模式,通过VXLAN/GRE隧道封装技术,让不同主机上的容器像在同一局域网内一样通信。以下是CentOS系统上的详细配置...

CentOS上配置Overlay网络(以Docker为例)

Overlay网络是Docker实现跨主机容器通信的核心网络模式,通过VXLAN/GRE隧道封装技术,让不同主机上的容器像在同一局域网内一样通信。以下是CentOS系统上的详细配置步骤:

一、前置准备

  1. 系统与内核要求

    • CentOS版本需为7.x及以上(内核版本≥3.10,支持Overlay驱动);
    • Docker版本需≥1.9(支持Overlay网络驱动)。
  2. 安装Docker
    使用YUM仓库安装Docker CE(社区版):

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker &
        &
     sudo systemctl enable docker  # 启动并设置开机自启
    
  3. 配置Docker存储驱动(可选但推荐)
    编辑/etc/docker/daemon.json,指定overlay2为存储驱动(Docker默认推荐):

    {
    
      "storage-driver": "overlay2",
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
    "max-size": "100m"}
    
    }
    
    

    重启Docker使配置生效:

    sudo systemctl restart docker
    
  4. 验证内核支持Overlay
    加载Overlay内核模块:

    sudo modprobe overlay
    

二、创建Overlay网络

使用docker network create命令创建Overlay网络,需指定驱动类型子网网关等参数:

sudo docker network create \
  --driver overlay \                # 指定Overlay驱动
  --subnet=10.0.0.0/24 \            # Overlay网络子网(自定义,需避免与其他网络冲突)
  --gateway=10.0.0.1 \              # Overlay网络网关(自定义)
  my-overlay-network                # 网络名称(自定义)

参数说明

  • --driver overlay:必须参数,指定使用Overlay网络驱动;
  • --subnet:定义Overlay网络的IP段(如10.0.0.0/24),用于容器IP分配;
  • --gateway:Overlay网络的网关地址(如10.0.0.1),容器通过该网关访问外部网络。

三、连接容器到Overlay网络

有两种方式将容器连接到Overlay网络:

1. 启动容器时直接连接

使用--network参数指定Overlay网络:

sudo docker run -d --name container1 --network my-overlay-network nginx
sudo docker run -d --name container2 --network my-overlay-network nginx

上述命令会启动两个Nginx容器,并自动分配10.0.0.0/24网段内的IP地址。

2. 将已运行容器连接到Overlay网络

使用docker network connect命令:

sudo docker network connect my-overlay-network existing-container

其中existing-container是已运行的容器名称或ID。

四、验证Overlay网络连通性

  1. 查看Overlay网络列表
    确认网络已创建:

    docker network ls
    

    输出应包含my-overlay-network(驱动为overlay)。

  2. 查看网络详细信息
    获取Overlay网络的子网、网关、容器连接状态:

    docker network inspect my-overlay-network
    

    输出中的Containers字段会显示已连接的容器及其IP地址。

  3. 测试容器间通信
    进入其中一个容器(如container1),ping另一个容器(如container2):

    sudo docker exec -it container1 ping $(docker inspect -f '{
    {
    range .NetworkSettings.Networks}
    }
    {
    {
    .IPAddress}
    }
    {
    {
    end}
    }
    ' container2)
    

    若能收到回复,说明Overlay网络通信正常。

五、配置跨主机Overlay网络(可选但常用)

若需要在多台CentOS主机上实现容器通信,需额外配置Docker守护进程密钥管理

1. 配置Docker守护进程

编辑每台主机的/etc/docker/daemon.json,添加以下参数:

{
    
  "cluster-store": "consul://<
    consul-server-ip>
    :8500",  # 服务发现组件(如Consul)地址
  "cluster-advertise": "<
    当前主机IP>
:2376"             # 当前主机的Docker API地址
}
    

说明

  • cluster-store:用于存储集群状态的服务发现工具(如Consul、Etcd);
  • cluster-advertise:当前主机的Docker API监听地址(需开放2376端口)。

重启Docker使配置生效:

sudo systemctl restart docker

2. 初始化Docker Swarm集群(可选)

若使用Swarm模式,可通过以下命令初始化集群(在管理节点执行):

sudo docker swarm init --advertise-addr <
    管理节点IP>
    

加入工作节点(在每个工作节点执行,使用管理节点输出的命令):

sudo docker swarm join --token <
    TOKEN>
     <
    管理节点IP>
    :2377

Swarm模式下,Overlay网络会自动跨主机可用。

3. 测试跨主机通信

在主机A上启动容器并连接到Overlay网络:

sudo docker run -d --name containerA --network my-overlay-network nginx

在主机B上启动容器并连接到同一Overlay网络:

sudo docker run -d --name containerB --network my-overlay-network nginx

进入containerA,pingcontainerB的IP地址,验证跨主机通信。

六、注意事项

  1. 防火墙配置
    Overlay网络依赖VXLAN隧道(UDP 4789端口),需确保防火墙允许该端口流量:

    sudo firewall-cmd --add-port=4789/udp --permanent
    sudo firewall-cmd --reload
    
  2. SELinux配置
    若启用了SELinux,需设置为permissive模式或添加相应策略:

    sudo setenforce 0  # 临时关闭(测试用)
    

    或修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive

  3. 性能优化

    • 使用高性能网络设备(如万兆网卡);
    • 避免在同一主机上运行过多Overlay网络(减少隧道开销);
    • 调整MTU值(如设置为1450,避免VXLAN封装导致的分片)。

通过以上步骤,即可在CentOS系统上成功配置Overlay网络,实现跨主机的容器通信。根据实际需求,可选择手动配置或结合Kubernetes等编排工具实现更复杂的网络场景。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Overlay如何进行网络配置
本文地址: https://pptw.com/jishu/743968.html
怎样查看centos中的所有进程 CentOS Overlay与UnionFS有何区别

游客 回复需填写必要信息