Docker Networking with Clocker and Weave
-
Upload
andrew-kennedy -
Category
Technology
-
view
682 -
download
1
description
Transcript of Docker Networking with Clocker and Weave
Docker Networking with Clocker and Weave
Andrew Kennedy @grkvlt Edinburgh Docker Meetup, November 2014
Introduc)on • Andrew Kennedy – So1ware Engineer – Open Source – github.com/grkvlt
• Cloudso1 Corpora)on – Local (CodeBase) Company – We’re Hiring…
Introduc)on • Moving Parts • Docker • Weave • Clocker • Brooklyn
• Demonstra)on
Clocker Project • What does it do? – Manages Docker Infrastructure – Deploys Blueprints to Docker
• What is it? – Brooklyn Applica)on – Brooklyn Loca)on
Docker • Popular – Huge Ecosystem – Growing – Complex
• Containers – Isola)on – Performance – Composable
Docker
LimitaEons…
Docker LimitaEons…
Docker Limita)ons • Mul)ple Hosts • Networking – Same Issue – Communica)on Between Services
• Orchestra)on and Clustering – Control of Containers – Container Management
Docker Limita)ons • Plugin API will Help • Not standardized yet • Working on it…
• Need to avoid lock-‐in • One size fits all is never good enough
Docker Networking • Separate Container Network • RFC 1918 Private Addresses • Non Routable
• Bridged to Host • Port Forwarding • Mul)ple Endpoints for Services
Docker Topology
So1ware Defined Networking • Overlay Networks • Kernel or User Space • Many Op)ons
– Pipework – SocketPlane – Flannel – Open vSwitch – Weave
Weave • Ethernet Switch – User Space – Docker Container
• Mesh Topology • Routes TCP Traffic – Sniffs on Host – Forwards over TCP
Weave
Clocker Project
Clocker Project • Open Source • GitHub • Apache 2.0 Licensed • Java
• Recently Developed • S)ll Beta Status • 0.7.0-‐SNAPSHOT
Why Clocker • Docker Popularity – Solve Some Limita)ons
• Best of Breed – Configura)on – Components
• Brooklyn Integra)on – Container to En)ty Mapping
Apache Brooklyn • Apache Brooklyn – Cloudso1 Product – Open Source Java – Donated to the ASF – Incubator Status
Apache Brooklyn • Applica)on Management Placorm • Deploy, Manage and Monitor Blueprints • Provisioning, Installa)on and Customiza)on • Management • AutoScaling, Resilience, Performance, Access
Apache Jclouds • Java Cloud Library • API Agnos)c – CloudStack, OpenStack, AWS EC2, GCE…
• Create Virtual Machines – Return SSH Endpoint – Manage Proper)es
Apache Jclouds • Drivers for REST APIs • Docker Driver – Wrifen by @turlinux
• Virtual Container – Using SSH Daemon – Same Endpoint Type as VM – Composi)on on any Image or Dockerfile
Clocker Features • Applica)on Deployment – Oasis CAMP YAML Blueprint – TOSCA in Development – Same as Core Brooklyn
• Mixed Des)na)ons – Some Virtual Machines – Some Bare Metal – Some Containers
Container Management • Sources – Docker Image Defini)on – Docker Hub – Dockerfile – Brooklyn En)ty Defini)on
• Create Image Automa)cally – Commit or Push for Reuse
Container Placement • Placement Strategies – Random, Depth or Breadth First – CPU or Memory Usage – Memory, CPU or Container Limits – Geographic Constraints
• User Defined – Java Predicate
Networking • Shared Weave LAN – Common to All Containers – Private (Link Local) Addresses
• Clocker Controls IP Alloca)on – Applica)ons Segmented by CIDR
• Docker Port Forwarding Access
Networking • S)ll First Steps… • Name Resolu)on – BIND and DNSmasq – Needed for JMX et al
• Enables Many More En))es • But Needs Tested!
DemonstraEon
Roadmap • Networking – DNS and DNSmasq Integra)on – Rancher Integra)on – Open vSwictch Integra)on
• Gelng Started – Clocker Dockerfile
Roadmap • Repositories – Docker Repository – Bintray, Ar)factory, Quay.io – Private Repositories
• Applica)on Defini)on – TOSCA
Summary • Clocker – Brooklyn + Docker + Jclouds + Weave
• Solves – Docker Networking – Container Placement – Applica)on Defini)on
Audience Ques)ons?
1. Typical Docker use cases? 2. What networking features would
make these easier? 3. What other features would be most
useful to enhance Docker usability?
Thanks! Ques)ons?
Web Resources
http://clocker.io/
http://brooklyn.io/
http://docker.io/
http://github.com/zettio/weave/
http://abstractvisitorpattern.co.uk/