O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Containers in OpenStack

Book Description

A practical book which will help the readers understand how the container ecosystem and OpenStack work together.

About This Book

  • Gets you acquainted with containerization in private cloud
  • Learn to effectively manage and secure your containers in OpenStack
  • Practical use cases on container deployment and management using OpenStack components

Who This Book Is For

This book is targeted towards cloud engineers, system administrators, or anyone from the production team who works on OpenStack cloud. This book act as an end to end guide for anyone who wants to start using the concept of containerization on private cloud. Some basic knowledge of Docker and Kubernetes will help.

What You Will Learn

  • Understand the role of containers in the OpenStack ecosystem
  • Learn about containers and different types of container runtimes tools.
  • Understand containerization in OpenStack with respect to the deployment framework, platform services, application deployment, and security
  • Get skilled in using OpenStack to run your applications inside containers
  • Explore the best practices of using containers in OpenStack.

In Detail

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.

Style and approach

An end to end guide for anyone who wants to start using the concept of containerization on private cloud.

Table of Contents

  1. Preface
    1. What this book covers
    2. What you need for this book
    3. Who this book is for
    4. Conventions
    5. Reader feedback
    6. Customer support
      1. Downloading the example code
      2. Errata
      3. Piracy
      4. Questions
  2. Working with Containers
    1. The historical context of virtualization
    2. Introduction to containers
    3. Container components
    4. Types of containers
      1. Machine containers
      2. Application containers
    5. Types of container runtime tools
      1. Docker
      2. Rocket
      3. LXD
      4. OpenVZ
      5. Windows Server containers
      6. Hyper-V containers
      7. Clear container
    6. Installation of Docker
    7. Docker hands-on
      1. Working with Docker images
        1. Listing images
        2. Getting new images
        3. Searching Docker images
        4. Deleting images
      2. Working with Docker containers
        1. Creating containers
        2. Listing containers
        3. Checking container's logs
        4. Starting containers
        5. Deleting containers
    8. Summary
  3. Working with Container Orchestration Engines
    1. Introduction to COE
    2. Docker Swarm
      1. Docker Swarm components
        1. Node
          1. Manager node
          2. Worker node
        2. Tasks
        3. Services
        4. Discovery service
        5. Scheduler
      2. Swarm mode
    3. Apache Mesos
      1. Apache Mesos and its components
        1. Master
        2. Slaves
        3. Frameworks
        4. Offer
        5. Tasks
        6. Zookeeper
    4. Kubernetes
      1. Kubernetes architecture
        1. External request
        2. Master node
          1. kube-apiserver
          2. etcd
          3. kube-controller-manager
          4. kube-scheduler
        3. Worker nodes
          1. kubelet
          2. kube-proxy
          3. Container runtime
          4. supervisord
          5. fluentd
      2. Concepts in Kubernetes
        1. Pod
        2. Replica sets and replication controllers
        3. Deployments
        4. Secrets
        5. Labels and selectors
        6. Services
        7. Volumes
    5. Kubernetes installation
    6. Kubernetes hands-on
    7. Summary
  4. OpenStack Architecture
    1. Introduction to OpenStack
    2. OpenStack architecture
    3. Introduction to KeyStone, the OpenStack identity service
    4. Introduction to Nova, the OpenStack compute service
    5. Introduction to Neutron, the OpenStack network service
    6. Introduction to Cinder, the OpenStack block storage service
    7. Introduction to Glance, the OpenStack image service
    8. Introduction to Swift, the OpenStack object store
    9. DevStack installation
      1. Creating a KeyStone user
      2. Assign role to the user
      3. Creating a VM using Nova
      4. Attach volume to VM
      5. Uploading an image to Swift
    10. Summary
  5. Containerization in OpenStack
    1. The need for containers in OpenStack
    2. Efforts within the OpenStack community to support containers
      1. Nova
      2. Heat
      3. Magnum
      4. Zun
      5. Kuryr
      6. Kolla
      7. Murano
      8. Fuxi
      9. OpenStack-Helm
    3. Summary
  6. Magnum – COE Management in OpenStack
    1. Magnum introduction
    2. Concepts
      1. Cluster template
      2. Cluster
      3. Cluster driver
      4. Heat Stack Template
      5. Template definition
      6. Certificate
      7. Service
      8. Stats
      9. Quotas
    3. Key features
      1. External load balancer for Kubernetes
      2. Transport Layer Security
      3. Scaling
      4. Storage
        1. Ephemeral storage
        2. Persistent storage
      5. Notifications
      6. Container monitoring
    4. Components
      1. Magnum API
      2. Magnum conductor
    5. Walk-through
    6. Magnum DevStack installation
    7. Managing COEs
    8. Summary
  7. Zun – Container Management in OpenStack
    1. Introduction to Zun
    2. Concepts
      1. Containers
      2. Images
      3. Services
      4. Hosts
      5. Capsules
      6. Container drivers
      7. Image drivers
      8. Network drivers
    3. Key features
      1. Cinder integration
      2. Container composition
      3. Kuryr networking
      4. Container sandbox
      5. CPU sets
    4. Components
      1. zun-api
      2. Zun scheduler
      3. zun-compute
      4. Zun WebSocket proxy
    5. Walk-through
    6. Zun DevStack installation
    7. Managing containers
    8. Summary
  8. Kuryr – Container Plugin for OpenStack Networking
    1. Introducing Kuryr
    2. Kuryr architecture
      1. Mapping the Docker libnetwork to the neutron API
      2. Providing the generic VIF-Binding infrastructure
      3. Providing containerized images of neutron plugins
      4. Nesting VMs and Magnum use cases
    3. Installation of Kuryr
    4. Walk-through
    5. Summary
  9. Murano – Containerized Application Deployment on OpenStack
    1. Introduction to Murano
    2. Murano concepts
      1. Environment
      2. Package
      3. Session
        1. The environment template
      4. Deployments
      5. Bundle
      6. Categories
    3. Key features
      1. Production-ready applications
      2. Application catalog UI
      3. Distributing workloads
      4. Application development
      5. Murano repository
      6. Cinder volumes
      7. Barbican support
      8. HOT packages
    4. Murano components
      1. The Murano API
      2. The Murano engine
      3. The Murano agent
      4. The Murano dashboard
    5. Walk-through
    6. Murano DevStack installation
    7. Deploying a containerized application
    8. Summary
  10. Kolla – Containerized Deployment of OpenStack
    1. Kolla introduction
    2. Key features
      1. Highly available deployment
      2. Ceph support
      3. Image building
      4. Docker hub support
      5. Local registry support
      6. Multiple build sources
      7. Dockerfile customization
    3. Architecture
    4. Deploying containerized OpenStack services
      1. Setting up a local registry
      2. Automatic host bootstrap
      3. Building images
      4. Deploying images
    5. Summary
  11. Best Practices for Containers and OpenStack
    1. The advantages of different OpenStack projects
    2. Best practices for securing and deploying containers
    3. Summary