Book Image

Containers in OpenStack

Book Image

Containers in OpenStack

Overview of this book

Containers are one of the most talked about technologies of recent times. They have become increasingly popular as they are changing the way we develop, deploy, and run software applications. OpenStack gets tremendous traction as it is used by many organizations across the globe and as containers gain in popularity and become complex, it’s necessary for OpenStack to provide various infrastructure resources for containers, such as compute, network, and storage. Containers in OpenStack answers the question, how can OpenStack keep ahead of the increasing challenges of container technology? You will start by getting familiar with container and OpenStack basics, so that you understand how the container ecosystem and OpenStack work together. To understand networking, managing application services and deployment tools, the book has dedicated chapters for different OpenStack projects: Magnum, Zun, Kuryr, Murano, and Kolla. Towards the end, you will be introduced to some best practices to secure your containers and COE on OpenStack, with an overview of using each OpenStack projects for different use cases.
Table of Contents (17 chapters)
Title Page
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Walk-through


Kuryr exists in each host that runs containers and serves APIs required for the libnetwork remote network driver.

The following are the steps which are executed to create a container network provided by the neutron:

  1. A user sends a request to libnetwork to create a Docker network with the network driver specifier as Kuryr. The following example creates a Docker network named bar:
$ sudo docker network create --driver=kuryr --ipam-driver=kuryr --
        subnet 10.0.0.0/16 --gateway 10.0.0.1 --ip-range 10.0.0.0/24 bar
  1. libnetwork makes API calls to the Kuryr plugin to create the network
  2. Kuryr forwards the call to the Neutron and Neutron creates the network with the input data provided by Kuryr
  3. Upon receiving a response from the neutron, it prepares the output and sends it to libnetwork
  4. libnetwork stores the response to its key/value datastore backend
  5. The user can then launch a container using the network created previously:
$ sudo docker run --net=bar -itd --name=nginx-container nginx