Docker on OpenStack with Kubernetes
If you’re building applications for OpenStack and deploying them with Docker containers, you need a powerful, usable management tool to integrate with OpenStack. Google, with its extensive experience operating a cloud using container technology, developed the open source Kubernetes orchestration system to manage containerized applications in a clustered environment.
Mirantis and Google have joined forces to bring the Kubernetes container management to OpenStack using Murano by creating a Kubernetes package. Murano enables developers to self-service provision Kubernetes clusters from the Murano browsable catalog.
Kubernetes, like OpenStack, is a fast-moving open source project that can be a huge challenge to digest without help. At the OpenStack Summit in Vancouver, Kit Merker from Google and I are giving a presentation on using Docker on OpenStack with Kubernetes where we’ll demonstrate not only how to manage containers with Kubernetes, but the agility, control, and scale you can achieve with Kubernetes.
Following is an overview of what we’ll be covering.
Docker, meet Kubernetes. Kubernetes meet Murano
Lightweight, easy-to-use, and extensible, Kubernetes manages containerized applications across multiple hosts, providing a simpler way to deploy, maintain, and scale applications. It also provides a cloud-independent level of abstraction for Dockerized applications, making it easier to move workloads between public, private, and hybrid clouds, which enables application operation across cloud technologies.
More specifically, Kubernetes is a system for managing Dockerized applications that are made up of smaller component services, which must be scheduled in resource groups with the same networking conditions for the application to work as intended.
To consolidate service management, Kubernetes uses “pods” and “labels” to group an application’s containers into logical units for easy management and discovery. A pod is the basic Kubernetes work-based unit. While Docker containers are not assigned to hosts, Kubernetes groups closely-related containers together in a pod, which represents one or more containers that should be controlled as a single group.
Kubernetes provides a layer over the pod infrastructure providing scheduling and services management of Docker containers. Labels basically act as a user-defined tag placed above the pod to mark them as a part of a group. Kubernetes labels enable services to select containers based on the assigned tag, allowing the services to retrieve a list of backend servers to pass traffic to. After labeling pods, you can then manage and target them for action.
What’s in it for you?
With Kubernetes and Murano you get:
Orchestration for sophisticated multi-tier, scale-out applications managed within containers
Google’s best practices for Docker container management
Easy Kubernetes integration with OpenStack Murano
OpenStack’s flexible infrastructure management and cost savings
Application integration to simplify moving workloads across different types of clouds