OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack Meetup
-
Upload
john-starmer -
Category
Technology
-
view
75 -
download
0
Transcript of OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack Meetup
OpenStack and ContainersWill They Blend? A Prequel
Who Am I?
John Starmer: @john_starmer
• Director of Education, Kumulus Technologies
• OpenStack educator since 2013
• Evolutionary / Marine Biologist
Kumulus Technologies: @kumulustech
• Systems consultants supporting cloud migration, integration, education
• Kumulus Tech Newsletter: https://kumul.us/newsletter/ • Five Minutes of Cloud: youtube.com/fiveminutesofcloud
© 2016@john_starmer
ComputeIronic
Kubernetes
Docker
Mesos
ContainersMagnum
BareMetalServers
ContainerOrchestration
VirtualServers
How OpenStack Initially Thought About Containers
ComputeNova
© 2016@john_starmer
bin/lib bin/lib
Hardware
APP1
OS1
Hypervisor
APP2
OS2
APP3
OS3
Host Operating System
bin/libbin/libbin/lib
Virtual Server
Hardware
APP
bin/lib
Container Engine
APP
bin/lib
APP
bin/lib
Host Operating System
Container
bin/libbin/lib
Hardware
APP1 APP3
Host Operating System
bin/lib bin/lib
APP2
bin/lib Bare Metal Server
• But let’s not simply assume that is the best option. • VM != Container != Bare Metal• Which is most appropriate for your (users) use case?• In the end we are trying to run applications.
© 2016@john_starmer
Why are we all here Anyway?
What if the application _is_ OpenStack?
© 2016@john_starmer
Microservices: “Small autonomous services that work together – independent processes communicating over APIs, focused on one thing, and doing one thing well (and) that allow for independent change.” – Sam Newman
OpenStack Operational Requirements
As a distributed application-
1)Reliable Interface - Load Balancer
2)Means to manage processes - Start/Stop/Restart
3)Change Management - Code changes - Scoped services
© 2016@john_starmer
Containers - Why are They Good for Applications?
• Resource bundling - limits scope
• Embedded process management – (container is either up or down - so is the app)
• Upgrades - Container is the upgrade/downgrade unit - scoped change
• …. but what about the need for persistent schema (e.g. Databases)
© 2016@john_starmer Hardware
APP
bin/lib
Container Engine
APP
bin/lib
APP
bin/lib
Host Operating System
Container Operating Environment
Container Cluster Management needs:
1) Reliable Interface via a Load Balancer
2) Means to manage processes - Start/Stop/Restart
3) Scheduling - when and where containers run.
4) Change Management - Provide means to provide scope/ app segregation
Can do this manually
Automated/service options
5) … Persistent storage -- integration with higher level storage services.
Containers could be the answer. So let’s containerize OpenStack services... Now how do we manage the containers?
© 2016@john_starmer
Kubernetes running OpenStack Containers
Kubernetes provides:
1)Load Balancing integration
2)Segregation and Process Management - (Pods - process and service level)
3)Replication Control - Change management.
4)Deployment – Makes sure defined replicas are running.
© 2016@john_starmer
Kubernetes with OpenStack Containers
Master
API Server
Replication Controller
Minion 1
Kubelet
Containers
Minion 2
Kubelet
Containers
Minion 3
Kubelet
Containers
etc daemon
Scheduler