Mesos and OpenStack: The Perfect Container Tag Team
Discover how Mesos and OpenStack combine to provide an optimized environment for deploying Kubernetes and Swarm workloads, sharing network and storage resources, and enhancing container orchestration efficiency. Explore the architecture and benefits of Mesos, Kubernetes, and Swarm running on OpenStack.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Mesos and OpenStack: the perfect tag team for containers Ton Ngo Paolo Dettori Brad Topol @bradtopol @tango245 @ingpaolodettori Austin OpenStack Summit, 4/27/2016 1
Introduction Motivation OpenStack IaaS: compute, network, storage Mesos: efficient resource utilization Kubernetes, Swarm: user experience for containers orchestration Use cases Optimized environment to deploy both Kubernetes and Swarm workloads Sharing of network, storage from OpenStack Talk outline Mesos, Kubernetes, Swarm architecture Running on OpenStack, demo 2
Background - Swarm in a nutshell Exposes several Docker Engines as a single virtual Engine Exposes standard Docker API Tools that work with Docker can use Swarm to transparently scale to multiple hosts. Eg., Compose, Jenkins, Docker client Swarm Manager Scheduler Discovery Docker daemon Docker daemon Docker daemon Containers Containers Containers Swarm Node Swarm Node Swarm Node 3
Background Kubernetes in a nutshell Open source orchestration system for Docker containers Handles scheduling onto nodes in a compute cluster Actively manages workloads to ensure that their state matches the users declared intentions "labels" and "pods to group into logical units for easy management and discovery Replication controllers, services Model is quite different from native docker API / Swarm, cannot leverage Docker tools Cluster state -API server -Scheduler -Controller Mgr Kubernetes master Etcd cluster Support HA mode Kubelet/ Proxy Kubelet/ Proxy Kubelet/ Proxy Docker Engine Docker Engine Docker Engine Host Host Host 4
Background: Mesos in a nutshell Open-source cluster manager Efficient resource isolation and sharing across distributed applications, or frameworks Enables siloed applications to be consolidated on a shared pool of resources, delivering: Higher utilization Better application performance Rich framework ecosystem Hadoop, Spark, Kubernetes, Marathon, Docker, Rocket, MongoDB, Elastic Search 5
Using Swarm & Kubernetes with Mesos Mesos manages the actual resources on the cluster Incoming API/CLI are stored in a queue, waiting for offers from Mesos The framework s scheduler is used to choose the target host from the Mesos offers The framework sends a task to Mesos slave to create the container Swarm Kubernetes Docker CLI/API framework Scheduler framework Scheduler Offers Offers Tasks to Mesos Mesos Master Mesos Agents 6
Deploying on OpenStack Magnum Prep: key pair, image Create Mesos baymodel Create Mesos bay Launch service containers for Kubernetes, Swarm Ansible scripts + Shade Prep: key pair, image, network Create config file Deploy Nova instances Install software prereq Launch service containers for Mesos, Kubernetes, Swarm, etcd, zookeeper Normal interface for Kubernetes, Swarm 7
Networking Default networking: Docker Use host IP and port Kuryr for Swarm Docker libnetwork using Neutron Create network in Docker = Neutron network Create containers connected to networks Mesos patches needed for Swarm on Mesos Kuryr for Kubernetes Spec under review for CNI plugin Planned for Newton cycle Mesos slaves Nova instance Nova instance container container container container container subnet subnet Neutron network 1 Neutron network 2 8
Storage Default Use host storage Cinder Additional storage for workload Persistent storage Cinder for Kubernetes pods Docker volume driver Kuryr New mission to support storage On-going discussion Mesos slaves Nova instance Nova instance container container container container container as Docker storage as container volume Cinder Cinder 9
Lifecycle operations Add/remove nodes Network Manage private networks in cluster Connect to existing network Storage Add block storage to nodes Existing persistent storage from users. Monitoring cluster health Error recovery Software upgrade: node OS Mesos Framework: Kubernetes, Swarm 10
Demo 1. Deploy cluster by Ansible scripts 2. OpenStack infrastructure 3. Mesos UI 4. Deploy container on Kubernetes framework 5. Deploy container on Swarm framework 6. How container creation scales 11
Communities OpenStack Magnum Kuryr Mesos (selected contributions) Optimistic Offer Phase 1 [MESOS-1607], Allocator Refactoring for Optimistic Offering [Mesos-4392, Mesos-4553], Fine grained offer [MESOS-3765], CNI support [MESOS-4641], Volume Isolator [MESOS- 4355], Enhance DockerExecuter to support Docker's user-defined networks [MESOS-4369] Kubernetes Mesos framework (selected contributions) add docker labels to containers (PR #13612), MESOS: added docs on cold-standby HA mode for K8sm (PR #21894), etcd-based abac authorizor plugin (PR #23502), Create a generic interface from kubelet to cadvisor (PR #19708), collector interfaces and structs (PR #19951) Swarm framework (selected contributions) Include docker plugin mechanism in Swarm (PR #1646), ACL in Swarm (PR #1366), Pass the X-Registry- Auth info in createContainer for the internal pull (PR #1350), Change the scheduler lock in Mesos cluster (PR #1554), New network functions for mesos cluster: CreateNetwork(), RemoveNetwork(), and Networks() (PR #1633) 12