Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Next Generation Container Networking

Next Generation Container Networking

CaaS mit Swarm, Consul, Consul-Template und Registrator

Florian Maier (ATIX AG)

June 10, 2016
Tweet

More Decks by Florian Maier (ATIX AG)

Other Decks in Technology

Transcript

  1. 2016-06-07 Next Generation Docker Networking - Florian Maier, ATIX AG

    Next Generation Container Networking CaaS mit Swarm, Consul, Consul-Template und Registrator Präsentation für den Linux Stammtisch am 07.06.2016 Ihr Captain auf der Brücke - Florian Maier, ATIX AG
  2. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    • Erstellung und Aufbau eines Docker Clusters • Management des Clusters • Service Discovery Mechanismen • Automatische Service Konfiguration Überblick
  3. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Docker daemon Docker daemon Host / VM EIN Linux Server mit Docker
  4. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Docker daemon Docker daemon Host / VM Docker daemon Docker daemon Host / VM ZWEI Linux Server mit Docker
  5. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Docker Native Networking Multi-Host? Skalierung?
  6. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    3rd Party Networking • Aus der Not heraus wurden mehrere Lösungen von Drittanbietern veröffentlicht • Weaveworks – Weave • Google - Kubernetes • CoreOS - flannel • Nachteil: Externe Projekte die low-level mit Docker interagieren • Eine offizielle Schnittstelle musste her
  7. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    • Open Source seit April 2015, 650 PRs, 600 ⭐ • Eines der wenigen Docker Projekte ohne Logo • Native Go Implementierung • Ziele sind besserer Netzwerk Support, Plug & Play Networking, Multi-Host Networking und Support für mehrere Betriebssysteme Next Generation - libnetwork
  8. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Docker clustern mit Swarm • Swarm ist eine Open Source Cluster Software für Docker • Mit Swarm sind alle Docker Hosts in einem Cluster über ein Gesamtsystem verwaltbar
  9. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Kommunikation im Cluster • Swarm benötigt ein Serviceverzeichnis um IP und Port der Docker Hosts abzulegen • Unterstützt werden verschiedene Key/Value Stores
  10. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Consul ist ein verteiltes, hochverfügbares System und stellt die folgenden Dienste zur Verfügung: • Serviceverzeichnis • Key/Value store • HTTP-API • DNS-Service • ACLs • uvm…. Features von Consul
  11. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Docker daemon Consul host Consul daemon Docker daemon Docker daemon Docker daemon Host / VM Host / VM Swarm Cluster Erstellung eines Swarm Clusters
  12. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    $ docker run -d swarm:1.1.3 join –addr=10.1.1.231:2375 \ consul://10.1.8.32:8500/dc1 – swarm:1.1.3 (Docker Swarm Minion Container) – --addr=<Public IP Docker Host>:<Docker HTTP API PORT> – consul://<Public IP Consul Host>:<port>/<datacenter> Registrierung des Hosts bei Consul
  13. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Registrierung Docker daemon Consul Host Consul daemon Docker daemon Docker daemon Docker daemon Host / VM Host / VM Swarm Cluster Registrierung bei Consul
  14. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    $ export DOCKER_HOST= tcp://<manager IP>:<port> \ docker run -d -p 2375:2375 swarm manage \ consul://10.1.8.32:8500/dc1 – swarm:latest (Docker Swarm Manager Container) – consul://<Public IP Consul Host>:<port>/<datacenter> Swarm Cluster Management
  15. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Liste der Nodes anfordern Docker daemon Consul Host Consul daemon Docker daemon Docker daemon Docker daemon Host / VM Host / VM Swarm Cluster Registrierung Swarm Manager Rolle Docker daemon manager Manager / Hop Docker daemon
  16. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    • Zuerst müssen wir den gewünschten Service dokumentieren / registrieren • Dann können sich die einzelnen Services via Service Discovery finden Docker daemon Docker daemon Docker daemon Docker daemon Docker daemon Docker daemon Verteilte Anwendungen
  17. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Service Discovery Mechanismen sind eine Kernkomponente der meisten verteilten Systeme und Serviceorienterter Architekturen (SOA). Die Kernfrage ist dabei immer: Wie erhalten Clients die IP Adresse und den Port für einen Service der auf mehreren Hosts existiert. Service Discovery
  18. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    API http://10.1.8.32:8500/v1/catalog/services Consul - Service Liste
  19. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    API http://10.1.8.32:8500/v1/catalog/service/statsd-8125 Consul - Service Details
  20. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    • Registrator ist eine Open Source « Service Registry Bridge » für Docker • Services in Containern werden automatisch gemäß der konfigurierten Ports und Metadaten registriert oder entfernt • Registrator wird dabei auf allen Swarm Nodes ausgeführt Registrierung von Services mit Registrator
  21. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Lastverteilung und Eintrittspunkte Adressieren wir klassisch mit einem Loadbalancer, aber mit einer Konfiguration die aus dem Consul KV automatisch aktualisiert wird. Doc ker dae mo n Doc ker dae mo n Doc ker dae mo n
  22. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    • Der Consul-Template Daemon fragt die Daten bei Consul ab und aktualisiert die angegebenen Templates im Dateisystem • Die Ausführung kann dabei überall erfolgen (Container, VM, etc.) • Nach der erfolgreichen Ausführung können beliebige Befehle getriggert werden Consul Template
  23. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Consul Template - Vorlage Service Name Service IP Service Port
  24. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Dump generated template and exit Consul Template - Ausführung
  25. Next Generation Docker Networking - Florian Maier, ATIX AG 2016-06-07

    Danke! • Spielwiese https://github.com/marsmensch/docker-swarm-playground • Registrator https://github.com/gliderlabs/registrator • Consul https://github.com/hashicorp/consul • Swarm https://github.com/docker/swarm • Weave https://github.com/weaveworks/weave • Scope https://github.com/weaveworks/scope