This presentation was made as part of the Container Conference 2018 - www.containerconf.in
"Containers have gained lot of attention ever since it came into existence. And why not? With the speed and ease it provides for running user application, it is definitely the most preferred solution for many of the real world use cases.
OpenStack, on the other hand is a cloud solution which has always evolved in supporting newer technologies. OpenStack have many projects around containers that tries to cater the practical use cases. Some of the real world use cases that OpenStack fulfils are:
OpenStack deployment could be very complex and so is its upgrade. OpenStack Helm, Triple-O and Kolla uses Kubernetes, Docker that helps its users to easily deploy and upgrade their cloud.
Containers lacks the security as compared to VMs, so many users want to run their application on secure environment. OpenStack Zun enables Clear Containers and Kata Containers that provides the security of VMs and speed of containers.
Other use cases include running Kubernetes cluster on OpenStack, CI/CD, managing applications using microservices which can be done by Magnum, Zuul, Zun respectively. In this presentation, we will talk about the practical use cases where containers can help us and what OpenStack provides to fulfill those requirements."
2. About Us
• Madhuri Kumari
– Works at Intel. Core developer in OpenStack Zun and
Magnum. Author of Containers in OpenStack.
• Pradeep Kumar Singh
– Works at VMWare. Core developer in OpenStack Zun.
Author of Containers in OpenStack.
3. Agenda
• Introduction to Containers
• Introduction to OpenStack
• Evolution of Containers in OpenStack
• The Cast
– Infrastructure Provider
– Operator
– Application Developer
• Q/A
8. The Application Developers
• Writes the applications that run your business
• Cares about speed
• Likes to use the latest tools
• Does not want to care about infrastructure
• Does not obsess over cost or lock-in
9. Zun
• Zun is container management service which enables containers as first class
resource in OpenStack.
• It supports running containerized application on top of OpenStack infrastructure.
• Zun uses Docker to manage containers.
• Zun integrates with most of OpenStack services to provide advantage over Docker
such as Cinder, Kuryr, Glance, Heat etc.
Zun API
Zun
Compute
Docker
Keystone
KuryrNeutron
Glance
11. Docker
• Create, deploy, and run applications by using container
• Package up an application with all its dependencies.
12. The Operator
• Handles deployment, monitoring, scaling
• Cares about performance, reliability
• Wants solid and proven tools
• Does not want to micromanage infrastructure
• Concerned about lock-in
13. Magnum
• Magnum is the container infrastructure management service in OpenStack.
• Operators can use Magnum to deploy Container Orchestration Engines(COEs) such as
Kubernetes, Docker Swarm, Apache Mesos cluster on OpenStack infrastructure.
• Magnum supports running both the cluster on both VM and baremetal.
• It also supports load balancing, HA, scaling of the cluster.
14. Kuryr
• Kuryr provides networking to containers in OpenStack.
• It works as a network plugin to Docker and Kubernetes.
• Kuryr interacts with Neutron to provide networking resources.
• Gets one Neutron port to each container running on Nova instances
• Security groups can target single container.
15. Fuxi
• Fuxi provides volumes to containers in OpenStack.
• It works as a volume plugin to Docker.
• With Kuryr, Docker containers can use Cinder volume and Manila share.
16. The Infrastructure Provider
• Even in serverless, someone has to rack servers
• Can be public or private infrastructure
• Does not want to care about specific workloads
• Cares about cost and evolution
17. TripleO
• TripleO is an OpenStack Deployment & Management tool.
• TripleO is a project aimed at installing, upgrading and operating OpenStack clouds using
OpenStack’s own cloud facilities as the foundation - building on Nova, Ironic, Neutron and
Heat to automate cloud management at datacenter scale.
• With TripleO, you start by creating an undercloud (an actual operator facing deployment
cloud) that will contain the necessary OpenStack components to deploy and manage an
overcloud (an actual tenant facing workload cloud). The overcloud is the deployed solution
and can represent a cloud for any purpose (e.g. production, staging, test, etc). The operator
can choose any of available Overcloud Roles (controller, compute, etc.) they want to deploy
to the environment.
• It provides a fully containerized overcloud on Docker or on a baremetal or VM.
19. OpenStack-Ansible
• OpenStack-Ansible provides Ansible playbooks and roles for the deployment and
configuration of an OpenStack environment.
• OpenStack-Ansible has a flexible deployment configuration model that can deploy all
services in separate machine containers or on designated hosts without using containers,
and all network traffic either on a single network interface or on many network interfaces.
• This flexibility enables deployers to choose how to deploy OpenStack in the appropriate way
for the specific use case.
• It deploys OpenStack in “LXC” containers using Ansible
20. Kolla-Ansible
• Kolla provides production-ready containers and deployment tools for operating OpenStack
clouds that are scalable, fast, reliable, and upgradable using community best practices.
• Kolla-Ansible allows for complete customization. This permits operators with minimal
experience to deploy OpenStack quickly and as experience grows modify the OpenStack
configuration to suit the operator’s exact requirements.
• Kolla-Ansible uses light weight Docker containers to deploy OpenStack services using
Ansible.
21. OpenStack Helm
• Collection of OpenStack charts you can deploy with helm onto a Kubernetes pods.
• The goal of OpenStack-Helm is to enable deployment, maintenance, and upgrading of
loosely coupled OpenStack services and their dependencies individually or as part of
complex environments.