在CentOS中实现Overlay网络隔离,主要通过Docker的Overlay网络驱动或结合Kubernetes的CNI插件完成,核心步骤如下:
安装Docker
sudo yum install -y docker
sudo systemctl start docker && sudo systemctl enable docker
创建Overlay网络
使用docker network create
命令指定--driver overlay
,可自定义子网、网关等参数:
sudo docker network create --driver overlay --subnet=10.0.1.0/24 --gateway=10.0.1.1 ov_net1
sudo docker network create --driver overlay --subnet=10.0.2.0/24 --gateway=10.0.2.1 ov_net2
运行容器并连接网络
将容器连接到不同Overlay网络,实现逻辑隔离:
sudo docker run -d --name container1 --network ov_net1 nginx
sudo docker run -d --name container2 --network ov_net2 nginx
隔离验证:不同网络的容器无法直接ping通,如docker exec -it container1 ping container2
会失败。
跨网络通信(可选)
若需通信,可通过以下方式:
--opt encrypted=true
启用加密通信(需内核支持)。安装CNI插件(以Calico为例)
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
配置网络策略
通过NetworkPolicy
定义隔离规则,例如禁止跨命名空间通信:
# calico-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-cross-namespace
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector: {} # 空选择器表示拒绝所有跨命名空间流量
应用策略:
kubectl apply -f calico-policy.yaml
permissive
模式以避免权限问题。net.ipv4.ip_forward=1
)。以上方法通过软件定义网络(SDN)技术实现Overlay网络的逻辑隔离,适用于容器化环境的跨主机通信与安全管控。