Docker Networking with Clocker and Weave

36
Docker Networking with Clocker and Weave Andrew Kennedy @grkvlt Edinburgh Docker Meetup, November 2014

description

Talk given at Edinburgh Docker Meetup, November 2014.

Transcript of Docker Networking with Clocker and Weave

Page 1: Docker Networking with Clocker and Weave

Docker  Networking  with  Clocker  and  Weave  

 

Andrew  Kennedy  @grkvlt  Edinburgh  Docker  Meetup,  November  2014  

Page 2: Docker Networking with Clocker and Weave

Introduc)on  •  Andrew  Kennedy  –  So1ware  Engineer  – Open  Source  –  github.com/grkvlt  

•  Cloudso1  Corpora)on  –  Local  (CodeBase)  Company  – We’re  Hiring…  

Page 3: Docker Networking with Clocker and Weave

Introduc)on  •  Moving  Parts  •  Docker  •  Weave  •  Clocker  •  Brooklyn  

•  Demonstra)on  

Page 4: Docker Networking with Clocker and Weave

Clocker  Project  •  What  does  it  do?  – Manages  Docker  Infrastructure  – Deploys  Blueprints  to  Docker  

•  What  is  it?  – Brooklyn  Applica)on  – Brooklyn  Loca)on  

Page 5: Docker Networking with Clocker and Weave

Docker  •  Popular  – Huge  Ecosystem  – Growing  – Complex  

•  Containers  –  Isola)on  – Performance  – Composable  

Page 6: Docker Networking with Clocker and Weave

Docker  

Page 7: Docker Networking with Clocker and Weave

LimitaEons…  

Docker  LimitaEons…  

Page 8: Docker Networking with Clocker and Weave

Docker  Limita)ons  •  Mul)ple  Hosts  •  Networking  –  Same  Issue  –  Communica)on  Between  Services  

•  Orchestra)on  and  Clustering  –  Control  of  Containers  –  Container  Management  

Page 9: Docker Networking with Clocker and Weave

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  

Page 10: Docker Networking with Clocker and Weave

Docker  Networking  •  Separate  Container  Network  •  RFC  1918  Private  Addresses  •  Non  Routable  

•  Bridged  to  Host  •  Port  Forwarding  •  Mul)ple  Endpoints  for  Services  

Page 11: Docker Networking with Clocker and Weave

Docker  Topology  

Page 12: Docker Networking with Clocker and Weave

So1ware  Defined  Networking  •  Overlay  Networks  •  Kernel  or  User  Space  •  Many  Op)ons  

–  Pipework  –  SocketPlane  –  Flannel  –  Open  vSwitch  –  Weave  

Page 13: Docker Networking with Clocker and Weave

Weave  •  Ethernet  Switch  –  User  Space  –  Docker  Container  

•  Mesh  Topology  •  Routes  TCP  Traffic  –  Sniffs  on  Host  –  Forwards  over  TCP  

Page 14: Docker Networking with Clocker and Weave

Weave  

Page 15: Docker Networking with Clocker and Weave

Clocker  Project  

Page 16: Docker Networking with Clocker and Weave

Clocker  Project  •  Open  Source  •  GitHub  •  Apache  2.0  Licensed  •  Java  

•  Recently  Developed  •  S)ll  Beta  Status  •  0.7.0-­‐SNAPSHOT  

Page 17: Docker Networking with Clocker and Weave

Why  Clocker  •  Docker  Popularity  –  Solve  Some  Limita)ons  

•  Best  of  Breed  –  Configura)on  –  Components  

•  Brooklyn  Integra)on  –  Container  to  En)ty  Mapping  

Page 18: Docker Networking with Clocker and Weave

Apache  Brooklyn  •  Apache  Brooklyn  – Cloudso1  Product  – Open  Source  Java  – Donated  to  the  ASF  –  Incubator  Status  

Page 19: Docker Networking with Clocker and Weave

Apache  Brooklyn  •  Applica)on  Management  Placorm  •  Deploy,  Manage  and  Monitor  Blueprints  •  Provisioning,  Installa)on  and  Customiza)on  •  Management  •  AutoScaling,  Resilience,  Performance,  Access  

Page 20: Docker Networking with Clocker and Weave

Apache  Jclouds  •  Java  Cloud  Library  •  API  Agnos)c  – CloudStack,  OpenStack,  AWS  EC2,  GCE…  

•  Create  Virtual  Machines  – Return  SSH  Endpoint  – Manage  Proper)es  

Page 21: Docker Networking with Clocker and Weave

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  

Page 22: Docker Networking with Clocker and Weave

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  

Page 23: Docker Networking with Clocker and Weave

Container  Management  •  Sources  –  Docker  Image  Defini)on  –  Docker  Hub  –  Dockerfile  –  Brooklyn  En)ty  Defini)on  

•  Create  Image  Automa)cally  –  Commit  or  Push  for  Reuse  

Page 24: Docker Networking with Clocker and Weave

Container  Placement  •  Placement  Strategies  –  Random,  Depth  or  Breadth  First  –  CPU  or  Memory  Usage  – Memory,  CPU  or  Container  Limits  –  Geographic  Constraints  

•  User  Defined  –  Java  Predicate  

Page 25: Docker Networking with Clocker and Weave

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  

Page 26: Docker Networking with Clocker and Weave

Networking  •  S)ll  First  Steps…  •  Name  Resolu)on  – BIND  and  DNSmasq  – Needed  for  JMX  et  al  

•  Enables  Many  More  En))es  •  But  Needs  Tested!  

Page 27: Docker Networking with Clocker and Weave

DemonstraEon  

Page 28: Docker Networking with Clocker and Weave
Page 29: Docker Networking with Clocker and Weave
Page 30: Docker Networking with Clocker and Weave
Page 31: Docker Networking with Clocker and Weave

Roadmap  •  Networking  – DNS  and  DNSmasq  Integra)on  – Rancher  Integra)on  – Open  vSwictch  Integra)on  

•  Gelng  Started  – Clocker  Dockerfile  

Page 32: Docker Networking with Clocker and Weave

Roadmap  •  Repositories  – Docker  Repository  – Bintray,  Ar)factory,  Quay.io  – Private  Repositories  

•  Applica)on  Defini)on  – TOSCA  

Page 33: Docker Networking with Clocker and Weave

Summary  •  Clocker  – Brooklyn  +  Docker  +  Jclouds  +  Weave  

•  Solves  – Docker  Networking  – Container  Placement  – Applica)on  Defini)on  

Page 34: Docker Networking with Clocker and Weave

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?  

Page 35: Docker Networking with Clocker and Weave

Thanks!  Ques)ons?  

Page 36: Docker Networking with Clocker and Weave

Web  Resources  

http://clocker.io/  

http://brooklyn.io/  

http://docker.io/  

http://github.com/zettio/weave/  

http://abstractvisitorpattern.co.uk/