SlideShare una empresa de Scribd logo
1 de 39
OpenStack images that fit your imagination -
deep dive into container images in Kolla
OpenStack Summit, Sydney, Nov 8 2017
Rich Wellum, Software Developer, Cloud Architecture, Lenovo, rwellum
Vikram Hosakote, Cloud Software Engineer, Cisco Systems, vhosakot
Agenda
• OpenStack Kolla
• What OpenStack Kolla solves
• Benefits of containers in OpenStack
• Architecture of Kolla
• How to use Kolla
• Deploy OpenStack in minutes – do not build
• How to customize Kolla images
• Demo
OpenStack Kolla
• Deploys OpenStack services in Docker containers
• Two ways to deploy:
• Ansible
• Kubernetes
• Three sub-projects:
• Kolla
• Kolla-ansible
• Kolla-kubernetes
What OpenStack Kolla solves
• Deploy OpenStack binaries or build from source
• Faster deployment
• Easy maintenance, re-configuration, patching and upgrades
• Containerized OpenStack services in registry
• Only one tool to do multiple things
• Pin:
• OpenStack version of each service
• Configuration files for each service
Which projects are users most interested in adopting in the future? Which projects are used by OpenStack deployments?
OpenStack User Survey (April 2017) - https://www.openstack.org/assets/survey/April2017SurveyReport.pdf
Kolla is easy to use
• DevStack
• Juju
• PackStack
• Fuel
• OpenStack-ansible
• TripleO
• Openstack-puppet
• OpenStack-chef
Benefits of containers in OpenStack
• Reproduce golden state easily – maintain, version, tag, upgrade
• No more “Works in DevStack” ;)
• Production-ready images
• Easy to override/highly flexible:
• Dockerfiles
• Jinja templates (configuration files)
• Dev mode (do Dev and Test quickly using Kolla)
• Portable, tested, replicated images in secure registries – DockerHub,
Quay, etc
Architecture of Kolla
Registry
(DockerHub)
GitHub
(kolla, kolla-
ansible, kolla-
kubernetes)
Deploy node
(Docker, Ansible,
Docker python,
Jinja2)
Compute
node
Compute
node
Compute
node
(Docker, OpenStack
services) Compute
node
Compute
node
Controller
node
(Docker, OpenStack
services) Compute
node
Compute
node
Storage
node
(Docker, OpenStack
services)
Management/admin network
API/service network
Storage/data network
OOB network
images, layersDockerfiles, ansible playbooks,
jinja templates (config files),
helm charts, k8s jobs
Target
nodes
deploy, re-configure,
upgrade
deploy, re-configure,
upgradedeploy, re-configure,
upgrade
Not just for vanilla OpenStack with default configs
• Kolla can be used for advanced configurations like
• Jumbo frames
• SR-IOV (PCI passthrough)
• Massive scale (hundreds of nodes)
• New networking technologies - OpenDaylight, OVS-DPDK, VPP*, OVN, NFV,
Tacker, Service Function Chaining (SFC)
• Supports plugins
• Ceph storage
• EFK (Elasticsearch, Fluentd, Kibana)
• Prometheus – cloud-native monitoring and alerting
• Customizations and template overrides
How to use Kolla
• Install:
• Install Ansible, Docker, Docker python and Jinaj2 on the deploy node
• Install Docker and Docker python on all the target nodes (bootstrap-servers.yml)
• Clone the kolla repos
• Build:
• Create /etc/kolla/kolla-build.conf (optional)
• kolla-build (lots of build options)
• Deploy kolla-ansible:
• Create Ansible inventory file and update globals.yaml
• kolla-ansible prechecks -i <inventory file>
• kolla-ansible deploy -i <inventory file>
Deploy OpenStack in minutes – do not build
• Pull pre-built golden images from DockerHub
(https://hub.docker.com/u/kolla/) instead of building images
Deploy OpenStack in minutes – do not build
• Kolla images are tagged per-release on DockerHub
• kolla-ansible –i inventory file pull
Building and Orchestrating Custom Kolla
Images and Containers(On Kubernetes!)
● Official Kolla Image building documentation:
https://docs.openstack.org/kolla/latest/admin/image-building.html
● These slides: http://bit.ly/2zl7WFF
● Orchestration tool used in this demo:
○ https://github.com/RichWellum/k8s.git
○ https://review.openstack.org/#/c/487972/
● Other orchestration options:
○ Ansible Playbook: https://review.openstack.org/#/c/457317/
○ Deployment Guide: https://docs.openstack.org/kolla-
kubernetes/latest/deployment-guide.html
Reasons why you might build custom Kolla
Images?1. Case example 1; your company builds and produces a proprietary OpenStack. Some services
are touched, some are not. For example Horizon has plugins and addons that uniquely identify
your company's look and feel, but changes to many other Services are not required.
○ Kolla provides tools to build Docker images containing an OpenStack Service. And a single
image for a Service up to the entire stack can be built.
2. Case example 2; as an OpenStack contributor you work with a Service - say Ironic. The bulk of
your work is done in devstack, a simulator. How cool would it be to develop in an OpenStack
environment running with production level code?
○ Kolla sub-projects: Kolla-Ansible and Kolla-Kubernetes provide the orchestration to run
containerized OpenStack.
3. Case example 3; Your company develops drivers unique to their hardware. Most of OpenStack
should just work, be easy to build and orchestrate in a real environment.
○ With Kolla the hard-work per Service has already been done; facilitating a low cognitive
overhead.
Building and Orchestrating
DEVELOPMENT
Local Source Code
ORCHESTRATION and OPERATIONS
Kolla-Kubernetes
Neutron Nova
Cinder
GlanceHeat
Ironic
Keystone Horizon
KOLLA BUILD
Tools to build
images
src/Keystone
+ LDAP or
SAML
src/Horizon
+ Custom
logo/skins
Reconfiguration
src/<Service>
Keystone Image
Horizon Image
<Service> Image
Kube
Schedul
er
Kube
Controll
er
Kube
SDN
Kube
DNS
Kube
etcd
Kube
Proxy
Tiller Kube
API
src code changed: Helm
delete / Helm install
Demo
● Start with source code for Horizon, make a customization change.
● Install Kolla.
● Compile a Horizon docker image with Kolla Build tools and store locally.
● Bring up Kubernetes Cluster and verify it is operational.
● Orchestrate a combination of UpStream(Ocata) Kolla containers from
Dockerhub and our new Horizon container on the Kubernetes Cluster.
● View the results on the Horizon GUI.
● Demo Video: https://www.youtube.com/watch?v=jyjQ_qy7wPU
● Demo Notes with all the steps are in the slides below for referenced.
DEMO
Wrap up - how to get involved
● Need a feature? Find a bug? Let us know!
● Gerrit workflow -
http://docs.openstack.org/infra/manual/developers.html
● Kolla IRC channel - #openstack-kolla
● File bugs, blueprints, track releases on Launchpad -
https://launchpad.net/kolla
● Attend weekly meetings -
https://wiki.openstack.org/wiki/Meetings/Kolla
● Contribute code - https://github.com/openstack/kolla
● Mailing list - openstack-dev@lists.openstack.org [kolla]
Demo Notes
Start with pulling your source code
● For the purpose of the rest of this presentation - the assumption is that
you are working from a VM…
● We are going to build custom Kolla Images for three services, Keystone,
Horizon and Cinder.
● Grab the custom OpenStack code - for example your company's source
code for keystone, horizon and cinder may reside on a git server
somewhere - clone it to a work-space, E.g:
○ git clone git@10.1.2.3:myopenstack/keystone.git
○ git clone git@10.1.2.3::myopenstack/horizon.git
○ git clone git@10.1.2.3::myopenstack/cinder.git
Grab Kolla Repository
● Grab the kolla repo which will give you access to the tools to build
images
○ git clone http://github.com/openstack/kolla
● Compile Kolla
○ sudo pip install -r ./kolla/requirements.txt
○ sudo -H pip install -U kolla
Generate files
● Generate a kolla-build.conf
○ sudo -H pip install tox
○ cd kolla; sudo -H tox -e genconfig
■ Note: (places build-conf in /etc/kolla !):
● Edit kolla-build.conf and add in source
○ vi etc/kolla/kolla-build.conf
○ install_type = source
■ But this is optional as it can be supplied as a parameter to kolla build
■ Note binary means that OpenStack will be installed from apt/yum. And the
source means that OpenStack will be installed from source code.
Edit kolla-build.conf and add pointer to source
● Edit kolla-build.conf and add in source pointers
○ vi etc/kolla/kolla-build.conf ⇐ note local etc not /etc
○ Lets add references to keystone, horizon and cinder source code
○ Note the reference - what will the rest of your OpenStack be running?
○ Type can also be git or url.
[keystone-base]
+ type = local
+ location = /home/rwellum/keystone/
+ reference = stable/ocata
[horizon]
+ type = local
+ location = /home/rwellum/horizon/
+ reference = stable/ocata
[cinder-base]
+ type = local
+ location = /home/rwellum/cinder/
+ reference = stable/ocata
Create a Docker Registry if needed
● For some scenarios (multi-node, sharing etc) it’s helpful to create a docker registry to store these images, E.g:
● kolla/tools/start-registry
● Or:
docker run -d 
--name registry 
--restart=always 
-p 4000:5000 
-v registry:/var/lib/registry 
registry:
Now we are ready to build images (1/2)...
● You can choose to build the images locally (Like an All In One (AIO) Dev environment) or push to a
Docker Registry - if you intend to share these images or running multi-node.
● Change the base distro with the -b option:
○ kolla-build -b ubuntu
● Local build (4 different ways - why not?)
○ sudo kolla-build -t source horizon cinder keystone --config-dir
./kolla/etc/kolla/
○ Or: sudo which klollkolla-build -t source horizon cinder keystone --
config-file ./kolla/etc/kolla/kolla-build.conf
○ Or: copy kolla-build.conf to /etc/kolla (from ./kolla/etc/kolla/kolla-
build.conf
○ Or: sudo kolla/tools/build.py -t source --config-file
./kolla/etc/kolla/kolla-build.conf
Now we are ready to build images (2/2)...
● Registry multi-node
○ Add: “ --registry 172.22.2.81:5000 --push”
○ E.g. sudo kolla-build --registry 172.22.2.81:5000 --push -t source
horizon cinder keystone
○ To push images to a Dockerhub repository named mykollarepo:
○ sudo kolla-build -n mykollarepo --push -t source horizon cinder
keystone
● Add in build logs
○ Any issues in building this is where you start
○ Add: “--logs-dir horizon-log --debug“
○ E.g. sudo kolla-build --registry 172.22.2.81:5000 --push -t source
horizon cinder keystone --logs-dir horizon-log --debug
Lets check our images built...
● Lets check for valid generated images
rwellum@ubuntuk8s:~$ sudo docker images | grep horizon
kolla/centos-source-horizon 4.0.2 5182810deebb 2 minutes ago
1.077 GB
● The Tag ‘4.0.2’ is very important in Kolla…
● We’ll use this and the location of the image to orchestrate
How do we Orchestrate our new images (1/2)?
● So we have our custom images. Now we’d like to Orchestrate…
● Kolla is the main project - the tools to build OpenStack Images
● Kolla-Ansible is a sub-project to orchestrate with Kolla images
○ Industry proven, widely used, very reliable!
● Kolla-Kubernetes is another sub project to orchestrate with Kolla
images
○ Dev project, to run on Kubernetes cluster, new, exciting, be careful!
● This example is based on Kolla-Kubernetes and using a tool I wrote to
stand up an AIO kolla-kubernetes cluster…
● But it applies to any method, manual (following the bare-metal guide:
https://docs.openstack.org/kolla-kubernetes/latest/deployment-
guide.html) even Kolla-Ansible
How do we Orchestrate our new images (2/2)?
● Kolla-Kubernetes relies on a ‘cloud.yaml’ file to stand up
OpenStack
● In our example we want to run with our custom keystone,
horizon and cinder images
● All other Services will be pulled from dockerhub
● Grab k8s.py - deployment / orchestration tool:
○ git clone https://github.com/RichWellum/k8s.git
○ Replace with hopefully merged version
Orchestration continued...
● Standup OpenStack
○ Create a working directory - like ‘os’
○ Run k0:
■ ../k8s/ko.py eth0 eth1 --image-version ocata --edit-config
○ Note two interfaces required as per normal (MGMT and Neutron)
○ Note edit-config option
○ --help will show all the options available.
● Ko.py will proceed to install Kubernetes and start to bring up
OpenStack
● It will pause at the appropriate point to allow the user to edit the
cloud.yaml - where you will point the image tag to your local
custom image….
Changes to Cloud.yaml
keystone:
all:
+ image_full: kolla/centos-source-keystone:4.0.2
horizon:
all:
+ image_full: kolla/centos-source-horizon:4.0.2
cinder:
all:
+ image_full: kolla/centos-source-cinder-base:4.0.2
Once OpenStack is up...
● Lets confirm we actually orchestrated with local images
○ kubectl get pods --all-namespaces | grep horizon
○ kubectl describe pod horizon-blah -n kolla | grep Image
● And/or connect to your container and look for that proprietary code
○ docker run -tu root -ti horizon-blah /bin/bash
○ kubectl -n kolla exec -it horizon-blah -- ls
So you make some changes to your source
code..
● Repeat the steps to build the image
● Kill the container: kubectl delete pod horizon-blah -n kolla
● WHAT NEXT???
And commence OpenStacking...
● At this point you have a running Kolla-Kubernetes OpenStack running
with custom containers where needed.
Building and Orchestrating
DEVELOPMENT
Local Source Code
ORCHESTRATION and OPERATIONS
Neutron Nova
Cinder
GlanceHeat
Ironic
Keystone Horizon
KOLLA BUILD
Tools to build
containers
src/Keystone
src/Horizon
src/Cinder
Helm upgrade /
update config
Trash and restart
src/<Service>
Keystone Image
Horizon Image
Cinder Image
<Service> Image
Kube
Schedul
er
Kube
Controll
er
Kube
SDN
Kube
DNS
Kube
etcd
Kube
Proxy
Tiller Kube
API
KUBERNETES
Building and Orchestrating
DEVELOPMENT
Local Source Code
ORCHESTRATION and OPERATIONS
Kolla-Kubernetes
Neutron Nova
Cinder
GlanceHeat
Ironic
Keystone Horizon
KOLLA BUILD
Tools to build
images
src/Keystone
src/Horizon
src/Cinder
Helm upgrade /
update config
src/<Service>
Keystone Image
Horizon Image
Cinder Image
<Service> Image
Kube
Schedul
er
Kube
Controll
er
Kube
SDN
Kube
DNS
Kube
etcd
Kube
Proxy
Tiller Kube
API
Helm delete / Helm install

Más contenido relacionado

La actualidad más candente

Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatOpenStack
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会Yuki Obara
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorSimon J Mudd
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27Kentaro Ebisawa
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutronvivekkonnect
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方Toru Makabe
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会Yushiro Furukawa
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversSimon J Mudd
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGIMike Pittaro
 
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...OpenStack
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceSUSE Labs Taipei
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networkingLorenzo Fontana
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioSAMIR BEHARA
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating SystemThomas Graf
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSHSage Weil
 

La actualidad más candente (20)

Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and Orchestrator
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Keystone fernet token
Keystone fernet tokenKeystone fernet token
Keystone fernet token
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL servers
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
 
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
Meshing OpenStack and Bare Metal Networks with EVPN - David Iles, Mellanox Te...
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStackMeetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStack
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSH
 

Similar a Kolla Images for Custom OpenStack

Kolla Onboarding (Vancouver 2018)
Kolla Onboarding (Vancouver 2018)Kolla Onboarding (Vancouver 2018)
Kolla Onboarding (Vancouver 2018)Paul Bourke
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013Michael Lessard
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy wayJohn Azariah
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBlueData, Inc.
 
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...NETWAYS
 
OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise Cisco Canada
 
CERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sCERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sBelmiro Moreira
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellOracle Developers
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsNelson Calero
 
Docker Meetup Bangalore - Docker + Openstack
Docker Meetup Bangalore - Docker + OpenstackDocker Meetup Bangalore - Docker + Openstack
Docker Meetup Bangalore - Docker + OpenstackAshish Billore
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDaniel Krook
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstackRoberto Polli
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Matt Ray
 
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...Spark Summit
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaGregor Heine
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015Mark Voelker
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platformnirajrules
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 

Similar a Kolla Images for Custom OpenStack (20)

Kolla Onboarding (Vancouver 2018)
Kolla Onboarding (Vancouver 2018)Kolla Onboarding (Vancouver 2018)
Kolla Onboarding (Vancouver 2018)
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy way
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker Containers
 
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...
OSDC 2013 | Tutorial and demonstration of failover from EC2 to OpenStack usin...
 
OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise OpenStack Deployment in the Enterprise
OpenStack Deployment in the Enterprise
 
CERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8sCERN OpenStack Cloud Control Plane - From VMs to K8s
CERN OpenStack Cloud Control Plane - From VMs to K8s
 
Openstack 101
Openstack 101Openstack 101
Openstack 101
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environments
 
Docker Meetup Bangalore - Docker + Openstack
Docker Meetup Bangalore - Docker + OpenstackDocker Meetup Bangalore - Docker + Openstack
Docker Meetup Bangalore - Docker + Openstack
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High Availability
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstack
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013
 
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...
Teaching Apache Spark Clusters to Manage Their Workers Elastically: Spark Sum...
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with Nova
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platform
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 

Más de Vikram G Hosakote

Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaVikram G Hosakote
 
Multi-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerMulti-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerVikram G Hosakote
 
Cloud-based Virtualization for Test Automation
Cloud-based Virtualization for Test AutomationCloud-based Virtualization for Test Automation
Cloud-based Virtualization for Test AutomationVikram G Hosakote
 
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksLayer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksVikram G Hosakote
 
Network OS Code Coverage demo using Bullseye tool
Network OS Code Coverage demo using Bullseye toolNetwork OS Code Coverage demo using Bullseye tool
Network OS Code Coverage demo using Bullseye toolVikram G Hosakote
 
Using PerfDHCP tool to scale DHCP in OpenStack Neutron
Using PerfDHCP tool to scale DHCP in OpenStack NeutronUsing PerfDHCP tool to scale DHCP in OpenStack Neutron
Using PerfDHCP tool to scale DHCP in OpenStack NeutronVikram G Hosakote
 
Addressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronAddressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronVikram G Hosakote
 

Más de Vikram G Hosakote (12)

Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
 
OpenStack with OpenDaylight
OpenStack with OpenDaylightOpenStack with OpenDaylight
OpenStack with OpenDaylight
 
Jumbo Mumbo in OpenStack
Jumbo Mumbo in OpenStackJumbo Mumbo in OpenStack
Jumbo Mumbo in OpenStack
 
Multicast in OpenStack Tips
Multicast in OpenStack TipsMulticast in OpenStack Tips
Multicast in OpenStack Tips
 
Multicast in OpenStack
Multicast in OpenStackMulticast in OpenStack
Multicast in OpenStack
 
BEST REST in OpenStack
BEST REST in OpenStackBEST REST in OpenStack
BEST REST in OpenStack
 
Multi-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerMulti-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and Docker
 
Cloud-based Virtualization for Test Automation
Cloud-based Virtualization for Test AutomationCloud-based Virtualization for Test Automation
Cloud-based Virtualization for Test Automation
 
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksLayer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
 
Network OS Code Coverage demo using Bullseye tool
Network OS Code Coverage demo using Bullseye toolNetwork OS Code Coverage demo using Bullseye tool
Network OS Code Coverage demo using Bullseye tool
 
Using PerfDHCP tool to scale DHCP in OpenStack Neutron
Using PerfDHCP tool to scale DHCP in OpenStack NeutronUsing PerfDHCP tool to scale DHCP in OpenStack Neutron
Using PerfDHCP tool to scale DHCP in OpenStack Neutron
 
Addressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronAddressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack Neutron
 

Último

Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxsomshekarkn64
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 

Último (20)

POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptx
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 

Kolla Images for Custom OpenStack

  • 1. OpenStack images that fit your imagination - deep dive into container images in Kolla OpenStack Summit, Sydney, Nov 8 2017 Rich Wellum, Software Developer, Cloud Architecture, Lenovo, rwellum Vikram Hosakote, Cloud Software Engineer, Cisco Systems, vhosakot
  • 2. Agenda • OpenStack Kolla • What OpenStack Kolla solves • Benefits of containers in OpenStack • Architecture of Kolla • How to use Kolla • Deploy OpenStack in minutes – do not build • How to customize Kolla images • Demo
  • 3. OpenStack Kolla • Deploys OpenStack services in Docker containers • Two ways to deploy: • Ansible • Kubernetes • Three sub-projects: • Kolla • Kolla-ansible • Kolla-kubernetes
  • 4. What OpenStack Kolla solves • Deploy OpenStack binaries or build from source • Faster deployment • Easy maintenance, re-configuration, patching and upgrades • Containerized OpenStack services in registry • Only one tool to do multiple things • Pin: • OpenStack version of each service • Configuration files for each service
  • 5. Which projects are users most interested in adopting in the future? Which projects are used by OpenStack deployments? OpenStack User Survey (April 2017) - https://www.openstack.org/assets/survey/April2017SurveyReport.pdf
  • 6. Kolla is easy to use • DevStack • Juju • PackStack • Fuel • OpenStack-ansible • TripleO • Openstack-puppet • OpenStack-chef
  • 7. Benefits of containers in OpenStack • Reproduce golden state easily – maintain, version, tag, upgrade • No more “Works in DevStack” ;) • Production-ready images • Easy to override/highly flexible: • Dockerfiles • Jinja templates (configuration files) • Dev mode (do Dev and Test quickly using Kolla) • Portable, tested, replicated images in secure registries – DockerHub, Quay, etc
  • 9. Registry (DockerHub) GitHub (kolla, kolla- ansible, kolla- kubernetes) Deploy node (Docker, Ansible, Docker python, Jinja2) Compute node Compute node Compute node (Docker, OpenStack services) Compute node Compute node Controller node (Docker, OpenStack services) Compute node Compute node Storage node (Docker, OpenStack services) Management/admin network API/service network Storage/data network OOB network images, layersDockerfiles, ansible playbooks, jinja templates (config files), helm charts, k8s jobs Target nodes deploy, re-configure, upgrade deploy, re-configure, upgradedeploy, re-configure, upgrade
  • 10.
  • 11.
  • 12. Not just for vanilla OpenStack with default configs • Kolla can be used for advanced configurations like • Jumbo frames • SR-IOV (PCI passthrough) • Massive scale (hundreds of nodes) • New networking technologies - OpenDaylight, OVS-DPDK, VPP*, OVN, NFV, Tacker, Service Function Chaining (SFC) • Supports plugins • Ceph storage • EFK (Elasticsearch, Fluentd, Kibana) • Prometheus – cloud-native monitoring and alerting • Customizations and template overrides
  • 13. How to use Kolla • Install: • Install Ansible, Docker, Docker python and Jinaj2 on the deploy node • Install Docker and Docker python on all the target nodes (bootstrap-servers.yml) • Clone the kolla repos • Build: • Create /etc/kolla/kolla-build.conf (optional) • kolla-build (lots of build options) • Deploy kolla-ansible: • Create Ansible inventory file and update globals.yaml • kolla-ansible prechecks -i <inventory file> • kolla-ansible deploy -i <inventory file>
  • 14. Deploy OpenStack in minutes – do not build • Pull pre-built golden images from DockerHub (https://hub.docker.com/u/kolla/) instead of building images
  • 15. Deploy OpenStack in minutes – do not build • Kolla images are tagged per-release on DockerHub • kolla-ansible –i inventory file pull
  • 16. Building and Orchestrating Custom Kolla Images and Containers(On Kubernetes!) ● Official Kolla Image building documentation: https://docs.openstack.org/kolla/latest/admin/image-building.html ● These slides: http://bit.ly/2zl7WFF ● Orchestration tool used in this demo: ○ https://github.com/RichWellum/k8s.git ○ https://review.openstack.org/#/c/487972/ ● Other orchestration options: ○ Ansible Playbook: https://review.openstack.org/#/c/457317/ ○ Deployment Guide: https://docs.openstack.org/kolla- kubernetes/latest/deployment-guide.html
  • 17. Reasons why you might build custom Kolla Images?1. Case example 1; your company builds and produces a proprietary OpenStack. Some services are touched, some are not. For example Horizon has plugins and addons that uniquely identify your company's look and feel, but changes to many other Services are not required. ○ Kolla provides tools to build Docker images containing an OpenStack Service. And a single image for a Service up to the entire stack can be built. 2. Case example 2; as an OpenStack contributor you work with a Service - say Ironic. The bulk of your work is done in devstack, a simulator. How cool would it be to develop in an OpenStack environment running with production level code? ○ Kolla sub-projects: Kolla-Ansible and Kolla-Kubernetes provide the orchestration to run containerized OpenStack. 3. Case example 3; Your company develops drivers unique to their hardware. Most of OpenStack should just work, be easy to build and orchestrate in a real environment. ○ With Kolla the hard-work per Service has already been done; facilitating a low cognitive overhead.
  • 18. Building and Orchestrating DEVELOPMENT Local Source Code ORCHESTRATION and OPERATIONS Kolla-Kubernetes Neutron Nova Cinder GlanceHeat Ironic Keystone Horizon KOLLA BUILD Tools to build images src/Keystone + LDAP or SAML src/Horizon + Custom logo/skins Reconfiguration src/<Service> Keystone Image Horizon Image <Service> Image Kube Schedul er Kube Controll er Kube SDN Kube DNS Kube etcd Kube Proxy Tiller Kube API src code changed: Helm delete / Helm install
  • 19. Demo ● Start with source code for Horizon, make a customization change. ● Install Kolla. ● Compile a Horizon docker image with Kolla Build tools and store locally. ● Bring up Kubernetes Cluster and verify it is operational. ● Orchestrate a combination of UpStream(Ocata) Kolla containers from Dockerhub and our new Horizon container on the Kubernetes Cluster. ● View the results on the Horizon GUI. ● Demo Video: https://www.youtube.com/watch?v=jyjQ_qy7wPU ● Demo Notes with all the steps are in the slides below for referenced.
  • 20. DEMO
  • 21. Wrap up - how to get involved ● Need a feature? Find a bug? Let us know! ● Gerrit workflow - http://docs.openstack.org/infra/manual/developers.html ● Kolla IRC channel - #openstack-kolla ● File bugs, blueprints, track releases on Launchpad - https://launchpad.net/kolla ● Attend weekly meetings - https://wiki.openstack.org/wiki/Meetings/Kolla ● Contribute code - https://github.com/openstack/kolla ● Mailing list - openstack-dev@lists.openstack.org [kolla]
  • 23. Start with pulling your source code ● For the purpose of the rest of this presentation - the assumption is that you are working from a VM… ● We are going to build custom Kolla Images for three services, Keystone, Horizon and Cinder. ● Grab the custom OpenStack code - for example your company's source code for keystone, horizon and cinder may reside on a git server somewhere - clone it to a work-space, E.g: ○ git clone git@10.1.2.3:myopenstack/keystone.git ○ git clone git@10.1.2.3::myopenstack/horizon.git ○ git clone git@10.1.2.3::myopenstack/cinder.git
  • 24. Grab Kolla Repository ● Grab the kolla repo which will give you access to the tools to build images ○ git clone http://github.com/openstack/kolla ● Compile Kolla ○ sudo pip install -r ./kolla/requirements.txt ○ sudo -H pip install -U kolla
  • 25. Generate files ● Generate a kolla-build.conf ○ sudo -H pip install tox ○ cd kolla; sudo -H tox -e genconfig ■ Note: (places build-conf in /etc/kolla !): ● Edit kolla-build.conf and add in source ○ vi etc/kolla/kolla-build.conf ○ install_type = source ■ But this is optional as it can be supplied as a parameter to kolla build ■ Note binary means that OpenStack will be installed from apt/yum. And the source means that OpenStack will be installed from source code.
  • 26. Edit kolla-build.conf and add pointer to source ● Edit kolla-build.conf and add in source pointers ○ vi etc/kolla/kolla-build.conf ⇐ note local etc not /etc ○ Lets add references to keystone, horizon and cinder source code ○ Note the reference - what will the rest of your OpenStack be running? ○ Type can also be git or url. [keystone-base] + type = local + location = /home/rwellum/keystone/ + reference = stable/ocata [horizon] + type = local + location = /home/rwellum/horizon/ + reference = stable/ocata [cinder-base] + type = local + location = /home/rwellum/cinder/ + reference = stable/ocata
  • 27. Create a Docker Registry if needed ● For some scenarios (multi-node, sharing etc) it’s helpful to create a docker registry to store these images, E.g: ● kolla/tools/start-registry ● Or: docker run -d --name registry --restart=always -p 4000:5000 -v registry:/var/lib/registry registry:
  • 28. Now we are ready to build images (1/2)... ● You can choose to build the images locally (Like an All In One (AIO) Dev environment) or push to a Docker Registry - if you intend to share these images or running multi-node. ● Change the base distro with the -b option: ○ kolla-build -b ubuntu ● Local build (4 different ways - why not?) ○ sudo kolla-build -t source horizon cinder keystone --config-dir ./kolla/etc/kolla/ ○ Or: sudo which klollkolla-build -t source horizon cinder keystone -- config-file ./kolla/etc/kolla/kolla-build.conf ○ Or: copy kolla-build.conf to /etc/kolla (from ./kolla/etc/kolla/kolla- build.conf ○ Or: sudo kolla/tools/build.py -t source --config-file ./kolla/etc/kolla/kolla-build.conf
  • 29. Now we are ready to build images (2/2)... ● Registry multi-node ○ Add: “ --registry 172.22.2.81:5000 --push” ○ E.g. sudo kolla-build --registry 172.22.2.81:5000 --push -t source horizon cinder keystone ○ To push images to a Dockerhub repository named mykollarepo: ○ sudo kolla-build -n mykollarepo --push -t source horizon cinder keystone ● Add in build logs ○ Any issues in building this is where you start ○ Add: “--logs-dir horizon-log --debug“ ○ E.g. sudo kolla-build --registry 172.22.2.81:5000 --push -t source horizon cinder keystone --logs-dir horizon-log --debug
  • 30. Lets check our images built... ● Lets check for valid generated images rwellum@ubuntuk8s:~$ sudo docker images | grep horizon kolla/centos-source-horizon 4.0.2 5182810deebb 2 minutes ago 1.077 GB ● The Tag ‘4.0.2’ is very important in Kolla… ● We’ll use this and the location of the image to orchestrate
  • 31. How do we Orchestrate our new images (1/2)? ● So we have our custom images. Now we’d like to Orchestrate… ● Kolla is the main project - the tools to build OpenStack Images ● Kolla-Ansible is a sub-project to orchestrate with Kolla images ○ Industry proven, widely used, very reliable! ● Kolla-Kubernetes is another sub project to orchestrate with Kolla images ○ Dev project, to run on Kubernetes cluster, new, exciting, be careful! ● This example is based on Kolla-Kubernetes and using a tool I wrote to stand up an AIO kolla-kubernetes cluster… ● But it applies to any method, manual (following the bare-metal guide: https://docs.openstack.org/kolla-kubernetes/latest/deployment- guide.html) even Kolla-Ansible
  • 32. How do we Orchestrate our new images (2/2)? ● Kolla-Kubernetes relies on a ‘cloud.yaml’ file to stand up OpenStack ● In our example we want to run with our custom keystone, horizon and cinder images ● All other Services will be pulled from dockerhub ● Grab k8s.py - deployment / orchestration tool: ○ git clone https://github.com/RichWellum/k8s.git ○ Replace with hopefully merged version
  • 33. Orchestration continued... ● Standup OpenStack ○ Create a working directory - like ‘os’ ○ Run k0: ■ ../k8s/ko.py eth0 eth1 --image-version ocata --edit-config ○ Note two interfaces required as per normal (MGMT and Neutron) ○ Note edit-config option ○ --help will show all the options available. ● Ko.py will proceed to install Kubernetes and start to bring up OpenStack ● It will pause at the appropriate point to allow the user to edit the cloud.yaml - where you will point the image tag to your local custom image….
  • 34. Changes to Cloud.yaml keystone: all: + image_full: kolla/centos-source-keystone:4.0.2 horizon: all: + image_full: kolla/centos-source-horizon:4.0.2 cinder: all: + image_full: kolla/centos-source-cinder-base:4.0.2
  • 35. Once OpenStack is up... ● Lets confirm we actually orchestrated with local images ○ kubectl get pods --all-namespaces | grep horizon ○ kubectl describe pod horizon-blah -n kolla | grep Image ● And/or connect to your container and look for that proprietary code ○ docker run -tu root -ti horizon-blah /bin/bash ○ kubectl -n kolla exec -it horizon-blah -- ls
  • 36. So you make some changes to your source code.. ● Repeat the steps to build the image ● Kill the container: kubectl delete pod horizon-blah -n kolla ● WHAT NEXT???
  • 37. And commence OpenStacking... ● At this point you have a running Kolla-Kubernetes OpenStack running with custom containers where needed.
  • 38. Building and Orchestrating DEVELOPMENT Local Source Code ORCHESTRATION and OPERATIONS Neutron Nova Cinder GlanceHeat Ironic Keystone Horizon KOLLA BUILD Tools to build containers src/Keystone src/Horizon src/Cinder Helm upgrade / update config Trash and restart src/<Service> Keystone Image Horizon Image Cinder Image <Service> Image Kube Schedul er Kube Controll er Kube SDN Kube DNS Kube etcd Kube Proxy Tiller Kube API KUBERNETES
  • 39. Building and Orchestrating DEVELOPMENT Local Source Code ORCHESTRATION and OPERATIONS Kolla-Kubernetes Neutron Nova Cinder GlanceHeat Ironic Keystone Horizon KOLLA BUILD Tools to build images src/Keystone src/Horizon src/Cinder Helm upgrade / update config src/<Service> Keystone Image Horizon Image Cinder Image <Service> Image Kube Schedul er Kube Controll er Kube SDN Kube DNS Kube etcd Kube Proxy Tiller Kube API Helm delete / Helm install