Ubuntu Overlay网络策略管理指南
一、先明确你的Overlay类型
二、Docker Swarm场景的策略管理
docker swarm init / docker swarm join --token <TOKEN> <MANAGER_IP>:2377。docker network create --driver overlay --subnet=10.0.0.0/24 --gateway=10.0.0.1 my_overlay_network。docker service create --name web --network my_overlay_network nginx。--publish发布到主机端口,其余服务默认仅在Overlay内可达。docker network ls/inspect my_overlay_network、docker service ls/ps web。docker exec -it <容器名> bash 后 ping 对端IP或解析服务名。三、Kubernetes Calico场景的策略管理
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml。apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
name: allow-default-to-svc
namespace: default
spec:
selector: app == 'myapp'
ingress:
- action: Allow
source:
namespaceSelector: name == 'default'
destination:
ports:
- protocol: TCP
port: 80
egress:
- action: Allow
apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
name: default-deny-egress
spec:
selector: all()
types:
- Egress
egress:
- action: Allow
protocol: TCP
destination:
nets:
- 10.0.0.0/16
kubectl get networkpolicy -A、kubectl describe networkpolicy <name> -n <ns>。calicoctl(如已安装)查看策略命中与流量审计。四、主机与边界防火墙策略
sudo ufw enable、sudo ufw allow from 10.0.0.0/24 to any port 22。table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iifname "lo" accept
ct state established,related accept
udp dport 4789 accept # VXLAN
tcp dport 22 accept # 管理
ip saddr 10.0.0.0/24 accept
counter
}
chain forward {
type filter hook forward priority 0; policy drop;
iifname "vxlan0" ip saddr 10.0.0.0/24 ip daddr 10.0.0.0/24 accept
counter
}
}
五、实践建议与排障清单
docker network inspect、kubectl get networkpolicy -A -o yaml;变更遵循灰度与回滚。