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

Avatar for Florian Maier (ATIX AG)

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