SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Kuryr & Fuxi
OpenStack networking and storage for Docker Swarm containers
Hongbin Lu
Antoni Segura Puimedon
A bit of background
● Kuryr-libnetwork
○ Started during Liberty
○ Brings Neutron Networking to Docker containers
○ Targets bare-metal and container-in-VM
● Fuxi
○ Started during Mitaka
○ Brings Cinder and Manila volumes to bare-metal Docker containers
Kuryr-libnetwork: container-in-VM
● Three modes:
○ Neutron trunk using Vlan
○ Macvlan
○ Ipvlan
● Independent of which Neutron plugin you use
● Gets one Neutron port to each container running on Nova instances
● Security groups can target single containers
● Needs keystone credentials on the nova instances’ /etc/kuryr/kuryr.conf
● Helps adoption of container workloads allowing you to leverage your VM
SDN
Neutron trunk
ports
● Available since Newton
● Implemented by most Neutron
plugins
● Works with most guests since
only vlan support is needed
● Security groups are still applied
between subports
Macvlan/ipvlan
● Leverage Neutron allowed address pairs (Havana)
● No need to tag/untag as in vlan trunk
● Use the VM interface as link device (must be specified in conf)
● Both have several modes of operation
Kuryr-libnetwork: container-in-VM summary
Driver Container limit Performance Security Neutron
Availability
Segmentation
Trunk ports ~4094/VM 3 SG Ocata+ Vlan tags
ipvlan ≤ subnet size 1 / Mitaka L3
macvlan ≤ subnet size 2 / Mitaka L2
Getting started
with Kuryr
libnetwork
● Requirements
○ Bare-metal:
■ Neutron l2 agent
■ Docker
○ On nova instance:
■ Guest OS must support
ipvlan/macvlan or have
trunk parent port
■ Neutron firewall must
be ovs (ref impl)
● Installation
○ As in the snippet
celebdor@calcifer ~/ $ docker plugin install
kuryr/libnetwork2
Plugin "kuryr/libnetwork2" is requesting the following
privileges:
- network: [host]
- mount: [/var/run/openvswitch]
- mount: [/var/log/kuryr]
- mount: [/etc/kuryr]
- capabilities: [CAP_NET_ADMIN]
Do you grant the above permissions? [y/N]
Neutron.conf snippet
[securitygroup]
firewall_driver=openvswitch
[DEFAULT]
serviceplugins=trunk #other plugins can be enabled
Getting started
with Kuryr
libnetwork
● Configuration
○ /etc/kuryr/kuryr.conf on
the host as always
○ TLS available
○ http://tech.paulcz.net/20
16/01/secure-docker-wit
h-tls/
○ Ovs native firewall
support
[binding]
driver = kuryr.lib.binding.drivers.vlan
link_iface = eth0
[default]
ssl_cert_file=/etc/kuryr/kuryr.crt
ssl_key_file=/etc/kuryr/kuryr.key
enable_ssl=True
kuryr.conf
{
"Name": "kuryr",
"Addr": "https://127.0.0.1:23750",
"TLSConfig": {
"InsecureSkipVerify": false,
"CAFile": "/var/lib/kuryr/certs/ca.pem",
"CertFile": "/var/lib/kuryr/certs/cert.pem",
"KeyFile": "/var/lib/kuryr/certs/key.pem"
}
}
Kuryr.json (plugin config)
Getting started
with Kuryr
libnetwork
● Running
○ Standard docker api
○ Special kuryr specific
opts
○ Allows connecting to
pre-existing Neutron
resources
$ # Create network
$ docker network create --driver=kuryr --ipam-driver=kuryr 
--subnet 10.10.0.0/16 --gateway 10.10.0.1 foo
$ # Create network mapping to existing neutron net
$ docker network create -driver=kuryr --ipam-driver=kuryr 
--subnet=10.10.0.0/24 --gateway=10.10.0.1 
-o neutron.net.uuid=d98d1259-03d1-4b45-9b86-b039cba1d90d 
my_reused_net
$ # Run container
$ docker run -it --net=foo --ip=10.0.0.5 alpine
$ # Reuse port (must be unbound)
$ docker run -it --net=my_resused_net --ip=10.10.0.2 alpine
$ # Run container with open ports (sgs)
$ docker run --net=foo --expose=1234-1238/udp -it alpine
Fuxi volumes
● Cinder
○ Allow provisioning Cinder volume in Docker
○ Or create with existing Cinder volume
○ Cluster node
● Manila
○ Similar to Cinder but using Manila shares instead
● Fuxi Server is a docker remote
volume plugin
● Fuxi Server running in each host
that runs Docker
● Docker will calls Fuxi Server for
creating Docker volumes
● Fuxi Server translates the
request into API calls to
Cinder/Manila.
Fuxi - Docker
Docker Host Docker Host
Docker Docker
Fuxi Server Fuxi Server
Keystone Cinder Manila
Fuxi - Kubernetes
● Volume provisioner running in
the Kuryr-Kubernetes Controller
● Fuxi Server is the same as in
Docker Swarm
● Spec merged in Pike
● Stay tuned for Queens!
Master node Worker node
K8s API Server Kubelet
Volume Provisioner FlexVolume Driver
Fuxi Server Fuxi Server
Keystone Cinder Manila
Getting started with
fuxi
● Requirements
○ Bare-metal:
■ Docker
■ Storage client
depending on
cinder/manila backend
● Installation
○ From pip
● Configuration
## fuxi.conf snippet
[DEFAULT]
volume_providers=cinder,manila
my_ip=ip_of_the_docker_worker_node
[cinder]
…
volume_connector = osbrick
fstype = ext4
[manila]
…
volume_connector = osbrick
Getting started with
fuxi
● Running
○ Standard docker API
○ Specific option depending on
volume type and provider
$ # Create cinder volume
$ docker volume create --driver fuxi --name my_vol 
--opt size=1 
--opt fstype=ext4 
--opt multiattach=true 
--opt volume_provider=cinder
$ # Reuse existing cinder volume
$ docker volume create --driver fuxi --name existing_vol 
--opt size=1 
--opt volume_id=125da087-8b89-46de-97e4-c275c9a5bd1a
--opt volume_provider=cinder
$ # Create generic manila volume
$ docker volume create --driver fuxi --name my_vol 
--opt volume_provider=manila
$ # Run container with volume
$ docker run -v my_vol:/var/www httpd
Roadmap
● Fuxi
○ Docker plugin installation
○ Docker TLS support
○ Flexvolume driver
○ Kuryr-kubernetes integration
○ Kubernetes CI
● Kuryr-libnetwork
○ Global scope support in swarm mode
https://bugs.launchpad.net/kuryr-libnetwork/+bug/1668486
○ Docker swarm multinode CI
Demo
Q&A

Mais conteúdo relacionado

Mais procurados

Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...
Arthur Berezin
 

Mais procurados (20)

Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
 
Docker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowDocker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know now
 
Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...
Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...
Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...
 
Introduction to MidoNet
Introduction to MidoNetIntroduction to MidoNet
Introduction to MidoNet
 
Network plugins for kubernetes
Network plugins for kubernetesNetwork plugins for kubernetes
Network plugins for kubernetes
 
MidoNet deep dive
MidoNet deep diveMidoNet deep dive
MidoNet deep dive
 
Learning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNILearning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNI
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Container Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack KuryrContainer Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack Kuryr
 
Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
OpenStack Tokyo Summit Keynote Slides
OpenStack Tokyo Summit Keynote SlidesOpenStack Tokyo Summit Keynote Slides
OpenStack Tokyo Summit Keynote Slides
 
A Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon ValleyA Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon Valley
 
An Introduction to OpenStack Networking
An Introduction to OpenStack NetworkingAn Introduction to OpenStack Networking
An Introduction to OpenStack Networking
 
GlusterFS and Openstack Storage
GlusterFS and Openstack StorageGlusterFS and Openstack Storage
GlusterFS and Openstack Storage
 
OpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana ReleaseOpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana Release
 
OVN - Basics and deep dive
OVN - Basics and deep diveOVN - Basics and deep dive
OVN - Basics and deep dive
 
OpenStack Neutron Tutorial
OpenStack Neutron TutorialOpenStack Neutron Tutorial
OpenStack Neutron Tutorial
 
Topologies of OpenStack
Topologies of OpenStackTopologies of OpenStack
Topologies of OpenStack
 
Neutron behind the scenes
Neutron   behind the scenesNeutron   behind the scenes
Neutron behind the scenes
 

Semelhante a Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers

Kafka on Kubernetes—From Evaluation to Production at Intuit
Kafka on Kubernetes—From Evaluation to Production at Intuit Kafka on Kubernetes—From Evaluation to Production at Intuit
Kafka on Kubernetes—From Evaluation to Production at Intuit
confluent
 

Semelhante a Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers (20)

Docker meetup
Docker meetupDocker meetup
Docker meetup
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testing
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
 
Docker orchestration voxxed days berlin 2016
Docker orchestration   voxxed days berlin 2016Docker orchestration   voxxed days berlin 2016
Docker orchestration voxxed days berlin 2016
 
Simple docker hosting on fiware lab
Simple docker hosting on fiware labSimple docker hosting on fiware lab
Simple docker hosting on fiware lab
 
Conatiner Networking with MidoNet
Conatiner Networking with MidoNetConatiner Networking with MidoNet
Conatiner Networking with MidoNet
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
Running .NET on Docker
Running .NET on DockerRunning .NET on Docker
Running .NET on Docker
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
 
OpenNebulaconf2017US: Using docker with OpenNebula by Jaime Melis, OpenNebula
OpenNebulaconf2017US: Using docker with OpenNebula by Jaime Melis, OpenNebulaOpenNebulaconf2017US: Using docker with OpenNebula by Jaime Melis, OpenNebula
OpenNebulaconf2017US: Using docker with OpenNebula by Jaime Melis, OpenNebula
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
 
Deploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on KubernetesDeploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on Kubernetes
 
Kafka on Kubernetes—From Evaluation to Production at Intuit
Kafka on Kubernetes—From Evaluation to Production at Intuit Kafka on Kubernetes—From Evaluation to Production at Intuit
Kafka on Kubernetes—From Evaluation to Production at Intuit
 
LinuxKit Deep Dive
LinuxKit Deep DiveLinuxKit Deep Dive
LinuxKit Deep Dive
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
Kubernetes 101 for_penetration_testers_-_null_mumbai
Kubernetes 101 for_penetration_testers_-_null_mumbaiKubernetes 101 for_penetration_testers_-_null_mumbai
Kubernetes 101 for_penetration_testers_-_null_mumbai
 

Mais de Antoni Segura Puimedon

Mais de Antoni Segura Puimedon (20)

Revista juny 2013
Revista juny 2013Revista juny 2013
Revista juny 2013
 
Revista maig 2013
Revista maig 2013Revista maig 2013
Revista maig 2013
 
Revista el bloc Novembre 2011
Revista el bloc Novembre 2011Revista el bloc Novembre 2011
Revista el bloc Novembre 2011
 
Programa Bloc Olesà 2011
Programa Bloc Olesà 2011Programa Bloc Olesà 2011
Programa Bloc Olesà 2011
 
Revista de final de campanya
Revista de final de campanyaRevista de final de campanya
Revista de final de campanya
 
Revista Casc Antic
Revista Casc AnticRevista Casc Antic
Revista Casc Antic
 
Revista de Sant Bernat
Revista de Sant BernatRevista de Sant Bernat
Revista de Sant Bernat
 
Revista Collet de Sant Joan
Revista Collet de Sant JoanRevista Collet de Sant Joan
Revista Collet de Sant Joan
 
Revista La Central
Revista La CentralRevista La Central
Revista La Central
 
Revista de la Rambla-Eixample
Revista de la Rambla-EixampleRevista de la Rambla-Eixample
Revista de la Rambla-Eixample
 
Revista Les Planes
Revista Les PlanesRevista Les Planes
Revista Les Planes
 
Revista Closos
Revista ClososRevista Closos
Revista Closos
 
Revista Poble Sec
Revista Poble SecRevista Poble Sec
Revista Poble Sec
 
Revista Ribes Blaves
Revista Ribes BlavesRevista Ribes Blaves
Revista Ribes Blaves
 
Revista Maig 2011
Revista Maig 2011Revista Maig 2011
Revista Maig 2011
 
Revista Març 2004
Revista Març 2004Revista Març 2004
Revista Març 2004
 
Revista Juny 2005
Revista Juny 2005Revista Juny 2005
Revista Juny 2005
 
Revista Juliol 2006
Revista Juliol 2006Revista Juliol 2006
Revista Juliol 2006
 
Revista Novembre 2006
Revista Novembre 2006Revista Novembre 2006
Revista Novembre 2006
 
Revista Gener 2007
Revista Gener 2007Revista Gener 2007
Revista Gener 2007
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Último (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers

  • 1. Kuryr & Fuxi OpenStack networking and storage for Docker Swarm containers Hongbin Lu Antoni Segura Puimedon
  • 2. A bit of background ● Kuryr-libnetwork ○ Started during Liberty ○ Brings Neutron Networking to Docker containers ○ Targets bare-metal and container-in-VM ● Fuxi ○ Started during Mitaka ○ Brings Cinder and Manila volumes to bare-metal Docker containers
  • 3. Kuryr-libnetwork: container-in-VM ● Three modes: ○ Neutron trunk using Vlan ○ Macvlan ○ Ipvlan ● Independent of which Neutron plugin you use ● Gets one Neutron port to each container running on Nova instances ● Security groups can target single containers ● Needs keystone credentials on the nova instances’ /etc/kuryr/kuryr.conf ● Helps adoption of container workloads allowing you to leverage your VM SDN
  • 4. Neutron trunk ports ● Available since Newton ● Implemented by most Neutron plugins ● Works with most guests since only vlan support is needed ● Security groups are still applied between subports
  • 5. Macvlan/ipvlan ● Leverage Neutron allowed address pairs (Havana) ● No need to tag/untag as in vlan trunk ● Use the VM interface as link device (must be specified in conf) ● Both have several modes of operation
  • 6. Kuryr-libnetwork: container-in-VM summary Driver Container limit Performance Security Neutron Availability Segmentation Trunk ports ~4094/VM 3 SG Ocata+ Vlan tags ipvlan ≤ subnet size 1 / Mitaka L3 macvlan ≤ subnet size 2 / Mitaka L2
  • 7. Getting started with Kuryr libnetwork ● Requirements ○ Bare-metal: ■ Neutron l2 agent ■ Docker ○ On nova instance: ■ Guest OS must support ipvlan/macvlan or have trunk parent port ■ Neutron firewall must be ovs (ref impl) ● Installation ○ As in the snippet celebdor@calcifer ~/ $ docker plugin install kuryr/libnetwork2 Plugin "kuryr/libnetwork2" is requesting the following privileges: - network: [host] - mount: [/var/run/openvswitch] - mount: [/var/log/kuryr] - mount: [/etc/kuryr] - capabilities: [CAP_NET_ADMIN] Do you grant the above permissions? [y/N] Neutron.conf snippet [securitygroup] firewall_driver=openvswitch [DEFAULT] serviceplugins=trunk #other plugins can be enabled
  • 8. Getting started with Kuryr libnetwork ● Configuration ○ /etc/kuryr/kuryr.conf on the host as always ○ TLS available ○ http://tech.paulcz.net/20 16/01/secure-docker-wit h-tls/ ○ Ovs native firewall support [binding] driver = kuryr.lib.binding.drivers.vlan link_iface = eth0 [default] ssl_cert_file=/etc/kuryr/kuryr.crt ssl_key_file=/etc/kuryr/kuryr.key enable_ssl=True kuryr.conf { "Name": "kuryr", "Addr": "https://127.0.0.1:23750", "TLSConfig": { "InsecureSkipVerify": false, "CAFile": "/var/lib/kuryr/certs/ca.pem", "CertFile": "/var/lib/kuryr/certs/cert.pem", "KeyFile": "/var/lib/kuryr/certs/key.pem" } } Kuryr.json (plugin config)
  • 9. Getting started with Kuryr libnetwork ● Running ○ Standard docker api ○ Special kuryr specific opts ○ Allows connecting to pre-existing Neutron resources $ # Create network $ docker network create --driver=kuryr --ipam-driver=kuryr --subnet 10.10.0.0/16 --gateway 10.10.0.1 foo $ # Create network mapping to existing neutron net $ docker network create -driver=kuryr --ipam-driver=kuryr --subnet=10.10.0.0/24 --gateway=10.10.0.1 -o neutron.net.uuid=d98d1259-03d1-4b45-9b86-b039cba1d90d my_reused_net $ # Run container $ docker run -it --net=foo --ip=10.0.0.5 alpine $ # Reuse port (must be unbound) $ docker run -it --net=my_resused_net --ip=10.10.0.2 alpine $ # Run container with open ports (sgs) $ docker run --net=foo --expose=1234-1238/udp -it alpine
  • 10. Fuxi volumes ● Cinder ○ Allow provisioning Cinder volume in Docker ○ Or create with existing Cinder volume ○ Cluster node ● Manila ○ Similar to Cinder but using Manila shares instead
  • 11. ● Fuxi Server is a docker remote volume plugin ● Fuxi Server running in each host that runs Docker ● Docker will calls Fuxi Server for creating Docker volumes ● Fuxi Server translates the request into API calls to Cinder/Manila. Fuxi - Docker Docker Host Docker Host Docker Docker Fuxi Server Fuxi Server Keystone Cinder Manila
  • 12. Fuxi - Kubernetes ● Volume provisioner running in the Kuryr-Kubernetes Controller ● Fuxi Server is the same as in Docker Swarm ● Spec merged in Pike ● Stay tuned for Queens! Master node Worker node K8s API Server Kubelet Volume Provisioner FlexVolume Driver Fuxi Server Fuxi Server Keystone Cinder Manila
  • 13. Getting started with fuxi ● Requirements ○ Bare-metal: ■ Docker ■ Storage client depending on cinder/manila backend ● Installation ○ From pip ● Configuration ## fuxi.conf snippet [DEFAULT] volume_providers=cinder,manila my_ip=ip_of_the_docker_worker_node [cinder] … volume_connector = osbrick fstype = ext4 [manila] … volume_connector = osbrick
  • 14. Getting started with fuxi ● Running ○ Standard docker API ○ Specific option depending on volume type and provider $ # Create cinder volume $ docker volume create --driver fuxi --name my_vol --opt size=1 --opt fstype=ext4 --opt multiattach=true --opt volume_provider=cinder $ # Reuse existing cinder volume $ docker volume create --driver fuxi --name existing_vol --opt size=1 --opt volume_id=125da087-8b89-46de-97e4-c275c9a5bd1a --opt volume_provider=cinder $ # Create generic manila volume $ docker volume create --driver fuxi --name my_vol --opt volume_provider=manila $ # Run container with volume $ docker run -v my_vol:/var/www httpd
  • 15. Roadmap ● Fuxi ○ Docker plugin installation ○ Docker TLS support ○ Flexvolume driver ○ Kuryr-kubernetes integration ○ Kubernetes CI ● Kuryr-libnetwork ○ Global scope support in swarm mode https://bugs.launchpad.net/kuryr-libnetwork/+bug/1668486 ○ Docker swarm multinode CI
  • 16. Demo
  • 17. Q&A