温馨提示×

Overlay网络部署步骤是什么

小樊
63
2025-10-01 04:07:44
栏目: 编程语言

Overlay网络部署通用步骤(以Docker/Kubernetes为例)

1. 准备基础环境

  • 系统与软件要求:确保所有参与节点(物理机/虚拟机)为支持的操作系统(如CentOS 7.x及以上、Ubuntu 20.04及以上);安装Docker(1.9及以上版本)或Kubernetes集群(通过kubeadm、Minikube等工具部署);关闭SELinux(临时命令:setenforce 0)或调整其策略为permissive,避免权限问题。
  • 网络连通性:所有节点之间通过IP网络可达(建议配置SSH免密登录,便于远程操作);防火墙开放必要端口(Docker默认端口:2375/tcp、2376/tcp;Kubernetes集群节点间端口:10250/tcp、10255/tcp等)。

2. 配置节点以支持Overlay网络

  • Docker环境:编辑Docker守护进程配置文件(/etc/docker/daemon.json),添加Overlay网络必需参数:
    {
      "storage-driver": "overlay2",  // 使用overlay2存储驱动(推荐)
      "exec-opts": ["native.cgroupdriver=systemd"],  // 容器cgroup驱动设置为systemd
      "log-driver": "json-file",  // 日志驱动
      "log-opts": {"max-size": "100m"}  // 日志大小限制
    }
    
    保存后重启Docker服务:sudo systemctl restart docker
  • Kubernetes环境:部署CNI(容器网络接口)插件以支持Overlay网络(常用插件:Calico、Flannel)。以Calico为例,执行以下命令安装:
    kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
    
    验证插件状态:kubectl get pods -n kube-system | grep calico(所有Pod应为Running状态)。

3. 创建Overlay网络

  • Docker方式:使用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网络网关)。
  • Kubernetes方式:Overlay网络由CNI插件自动管理,无需手动创建。只需确保Pod配置正确(如使用ClusterIP类型的Service),Kubernetes会自动为Pod分配Overlay网络IP。

4. 部署应用到Overlay网络

  • Docker方式:启动容器时通过--network参数将其连接到Overlay网络:
    docker run -d --name container1 --network my-overlay-network nginx
    docker run -d --name container2 --network my-overlay-network nginx
    
    若容器已在运行,可使用docker network connect命令添加:
    docker network connect my-overlay-network container2
    
  • Kubernetes方式:在Pod或Deployment配置中指定namespace(默认使用default命名空间),Kubernetes会自动将Pod连接到Overlay网络。示例Deployment配置:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    
    部署后,Pod会自动获取Overlay网络IP。

5. 验证Overlay网络连通性

  • Docker环境:进入其中一个容器,尝试ping另一个容器的IP地址:
    docker exec -it container1 ping $(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container2)
    
    若能ping通,说明Overlay网络工作正常。
  • Kubernetes环境:进入Pod,ping其他Pod的IP地址:
    kubectl exec -it <pod-name> -- /bin/sh
    ping <other-pod-ip>
    
    若能ping通,说明Overlay网络配置成功。

6. 配置跨主机通信(可选,多节点场景)

  • Docker环境:确保所有节点的Docker守护进程配置了相同的cluster-store(如Consul、Etcd)和cluster-advertise参数(用于节点间通信)。编辑/etc/docker/daemon.json
    {
      "cluster-store": "consul://<consul-host>:8500",
      "cluster-advertise": "<node-ip>:2376"
    }
    
    重启Docker服务:sudo systemctl restart docker
  • Kubernetes环境:CNI插件(如Calico)会自动处理跨主机通信,无需额外配置(需确保节点间网络可达)。

注意事项

  • Overlay技术选择:主流为VXLAN(支持1600万+网络隔离,兼容现有IP网络),需确保节点设备支持UDP封装。
  • 性能优化:调整MTU(建议设置为1450,避免UDP封装导致分片)、启用ARP代理(减少广播流量)。
  • 安全管理:配置加密(如IPSec)保护Overlay网络数据传输;设置网络策略(如Calico的NetworkPolicy)限制Pod间访问。

0