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

Docker Networking with Clocker and Weave

Docker Networking with Clocker and Weave

Talk given at Edinburgh Docker Meetup, November 2014.

Andrew Kennedy

November 27, 2014
Tweet

More Decks by Andrew Kennedy

Other Decks in Technology

Transcript

  1. Docker  Networking   with  Clocker  and  Weave     Andrew

     Kennedy  @grkvlt   Edinburgh  Docker  Meetup,  November  2014  
  2. Introduc)on   •  Andrew  Kennedy   –  So1ware  Engineer  

    –  Open  Source   –  github.com/grkvlt   •  Cloudso1  Corpora)on   –  Local  (CodeBase)  Company   –  We’re  Hiring…  
  3. Introduc)on   •  Moving  Parts   •  Docker   • 

    Weave   •  Clocker   •  Brooklyn   •  Demonstra)on  
  4. Clocker  Project   •  What  does  it  do?   – Manages

     Docker  Infrastructure   – Deploys  Blueprints  to  Docker   •  What  is  it?   – Brooklyn  Applica)on   – Brooklyn  Loca)on  
  5. Docker   •  Popular   – Huge  Ecosystem   – Growing  

    – Complex   •  Containers   – Isola)on   – Performance   – Composable  
  6. Docker  Limita)ons   •  Mul)ple  Hosts   •  Networking  

    –  Same  Issue   –  Communica)on  Between  Services   •  Orchestra)on  and  Clustering   –  Control  of  Containers   –  Container  Management  
  7. 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  
  8. Docker  Networking   •  Separate  Container  Network   •  RFC

     1918  Private  Addresses   •  Non  Routable   •  Bridged  to  Host   •  Port  Forwarding   •  Mul)ple  Endpoints  for  Services  
  9. So1ware  Defined  Networking   •  Overlay  Networks   •  Kernel

     or  User  Space   •  Many  Op)ons   –  Pipework   –  SocketPlane   –  Flannel   –  Open  vSwitch   –  Weave  
  10. Weave   •  Ethernet  Switch   –  User  Space  

    –  Docker  Container   •  Mesh  Topology   •  Routes  TCP  Traffic   –  Sniffs  on  Host   –  Forwards  over  TCP  
  11. Clocker  Project   •  Open  Source   •  GitHub  

    •  Apache  2.0  Licensed   •  Java   •  Recently  Developed   •  S)ll  Beta  Status   •  0.7.0-­‐SNAPSHOT  
  12. Why  Clocker   •  Docker  Popularity   –  Solve  Some

     Limita)ons   •  Best  of  Breed   –  Configura)on   –  Components   •  Brooklyn  Integra)on   –  Container  to  En)ty  Mapping  
  13. Apache  Brooklyn   •  Apache  Brooklyn   – Cloudso1  Product  

    – Open  Source  Java   – Donated  to  the  ASF   – Incubator  Status  
  14. Apache  Brooklyn   •  Applica)on  Management  Placorm   •  Deploy,

     Manage  and  Monitor  Blueprints   •  Provisioning,  Installa)on  and  Customiza)on   •  Management   •  AutoScaling,  Resilience,  Performance,  Access  
  15. Apache  Jclouds   •  Java  Cloud  Library   •  API

     Agnos)c   – CloudStack,  OpenStack,  AWS  EC2,  GCE…   •  Create  Virtual  Machines   – Return  SSH  Endpoint   – Manage  Proper)es  
  16. 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  
  17. 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  
  18. Container  Management   •  Sources   –  Docker  Image  Defini)on

      –  Docker  Hub   –  Dockerfile   –  Brooklyn  En)ty  Defini)on   •  Create  Image  Automa)cally   –  Commit  or  Push  for  Reuse  
  19. Container  Placement   •  Placement  Strategies   –  Random,  Depth

     or  Breadth  First   –  CPU  or  Memory  Usage   –  Memory,  CPU  or  Container  Limits   –  Geographic  Constraints   •  User  Defined   –  Java  Predicate  
  20. 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  
  21. Networking   •  S)ll  First  Steps…   •  Name  Resolu)on

      – BIND  and  DNSmasq   – Needed  for  JMX  et  al   •  Enables  Many  More  En))es   •  But  Needs  Tested!  
  22. Roadmap   •  Networking   – DNS  and  DNSmasq  Integra)on  

    – Rancher  Integra)on   – Open  vSwictch  Integra)on   •  Gelng  Started   – Clocker  Dockerfile  
  23. Roadmap   •  Repositories   – Docker  Repository   – Bintray,  Ar)factory,

     Quay.io   – Private  Repositories   •  Applica)on  Defini)on   – TOSCA  
  24. Summary   •  Clocker   – Brooklyn  +  Docker  +  Jclouds

     +  Weave   •  Solves   – Docker  Networking   – Container  Placement   – Applica)on  Defini)on  
  25. 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?