Rudder: Software Defined Networking für Docker
CoreOS erweitert mit Projekt Rudder die Möglichkeiten mit der Container-Lösung Docker. Die Implementierung von virtuellen Maschinen in verschiedenen Plattformen wird dadurch einfacher.
Das Team von CoreOS stellt eine Lösung für Software Defined Networking im Zusammenhang mit der Container-Lösung Docker vor. CoreOS ist eine vergleichsweise neue Linux-Distribution, die vor allem auf den Betrieb in modernen Cloud-Umgebungen ausgelegt ist. CoreOS basiert teilweise auf der Docker-Technologie.
In der Regel erledigt Docker die Kommunikation mit dem Netzwerk ohne, dass manuelle Anpassungen erfolgen müssen. Bei Anwendungen, die jedoch für die Identifizierung eine Netzwerkadresse brauchen, müssen Anwender manuell nachbessert und zum Beispiel Ports remappen.
Mit Rudder stellt CoreOS nun ein Overlay Netzwerk vor. Die Technologie erlaubt es, einen IP-Range und die Größe eines Subnetzes festzulegen. Über die CoreOS-Technologie etcd hält Rudder dann das Mapping zwischen allokierten Subnetzen und den echten Host IP Adressen aufrecht. “Für den Datapath nutzt Rudder UDP, um IP Datagrams einzukapseln und diese an den Remote Host zu übertragen”, teilt das Team in einem Blog mit.
Für UDP habe man sich entschlossen, weil es leichter durch Firewalls hindurch kommt und Amazon Web Services für den IPoIP oder GRE-Traffik in den Security Group lediglich TCP, UDP oder ICMP unterstützt.
In den Release-Notes auf GitHub erklären die Entwickler, dass in Kubernetes jede Virtuelle Maschine ein vollständiges Subnet zugewiesen bekommt. Doch derzeit ist das nur auf der Google Compute Engine möglich. Um daher auch auf anderen Plattformen Subnetze zuweisen können, sorgt Rudder für diese Overlay.
Das Interesse der Industrie an Docker scheint mit jeden Tag zu wachsen. Docker ist sozusagen eine Laufzeitumgebung, die es Entwicklern ermöglicht Anwendungen zu packen und damit auf verschiedenen Plattformen lauffähig zu machen.
Derzeit ist Rudder noch in einer frühen experimentellen Phase, wie das Team betont. Künftig soll der Support für weitere Kapselungen wie IPSEC noch erweitert werden. Außerdem soll Rudder künftig die Allokierung von Subnetzen in einem Cluster auch dann übernehmen, wenn eine automatische Zuweisung möglich ist.
Ursprünglich ist Rudder als Ergänzung für das Kubernetes-Projekt von Google geacht gewsesn. Kubernetes ist ein Management, mit dem sich mehrere Docker-Container verwalten lassen. Doch laut CoreOS kann Rudder auch als Einzellösung eingesetzt werden.
Unter Kubernetes übernimmt Rudder das Port-Mapping und weist jedem Node oder Pod in einem Cluster eine eigene IP-Adresse zu. CoreOS spricht dabei von einem Overlay Mesh Network, das für jeden einzelnen Server ein Subnet bereit stellt. Laut CoreOS erhöht Rudder die Latenz von Netzwerken scheint jedoch auf den Durchsatz kaum Einfluss zu haben.
Rudder liefert damit jedoch eine Art Software-defined Network, ohne dass auf der physischen Netzwerkebene Änderungen durchgeführt werden müssen. Damit könnte Rudder dafür sorgen, dass die Implementierung von Docker einfacher wird und das Interesse der Anwender an der Container-Technologie noch weiter steigt.