Erstens, ich bin mir bewusst, die Schaffung eine VXLAN-Schnittstelle mit dem Tag basierend auf IP-Befehl hinzuzufügen:Wie VXLAN Tag der Isolierung andere Gruppe von Docker Containern
ip link add vxlan-br0 type vxlan id <tag-id> group <multicast-ip> local <host-ip> dstport 0
Aber es ist nutzlos für meinen tatsächlichen Bedarf, und meine Forderung ist es, mehrere docker-Container mit verschiedenen Tags, so etwas wie zu isolieren:
brctl addif br1 veth111111 tag=10 # veth111111 is the netdev used by docker container 1 brctl addif br1 veth222222 tag=20 # veth222222 is the netdev used by docker container 2 brctl addif br1 veth333333 tag=10 # veth111111 is the netdev used by docker container 3
ich möchte isolieren Behälter 2 aus dem Behälter 1 und 3, und nicht isolieren Kommunikation bew Teen Container 1 und 3. Wie man das erreicht?
Ein gutes Ideal. Dieser Ansatz erfordert jedoch, O (| Group |) Brücken zu erstellen. Im schlimmsten Fall | Gruppe | = | Container |. Wissen Sie, dass die maximale Anzahl an Bridges auf einem Host erstellt werden kann? Gibt es eine Lösung, um O (1) -Brücke für die allgemeine Verwendung zu erstellen und VXLAN-Tag zu verwenden, um verschiedene Gruppen zu isolieren? – ghostplant
@ghostplant Verwenden Sie für die Isolierung einzelner Container '--icc = false 'im Standardnetzwerk. Eine Bridge hat eine Grenze von 1023 Schnittstellen. Anscheinend beginnen die Dinge [bei Linux langsamer als 9600-Schnittstellen] (https://support.cumulusnetworks.com/hc/en-us/articles/216420547-Calculating-the-Limitation-of-a-Linux-Bridge-In-Traditional -Modus), aber ich habe noch nie so weit gedrängt. Sie sollten mehr Bridges + Interfaces erhalten als auf einer Bridge. Ich warne auch vor benutzerdefinierten Netzwerken, damit Sie Docker-Tools wie Compose, Schwarm, Kuberenetes, ECS usw. problemlos verwenden können. – Matt