Docker Networking with Clocker and Weave

Preview:

DESCRIPTION

Talk given at Edinburgh Docker Meetup, November 2014.

Citation preview

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/  

Recommended