Container-Native Storage

Similar documents
OpenShift + Container Native Storage (CNS)

Backup strategies for Stateful Containers in OpenShift Using Gluster based Container-Native Storage

RED HAT GLUSTER TECHSESSION CONTAINER NATIVE STORAGE OPENSHIFT + RHGS. MARCEL HERGAARDEN SR. SOLUTION ARCHITECT, RED HAT BENELUX April 2017

You Have Stateful Apps - What if Kubernetes Would Also Run Your Storage?

Above the clouds with container-native storage

Learn. Connect. Explore.

Container-Native Storage & Red Hat Gluster Storage Roadmap

Introduction to Kubernetes Storage Primitives for Stateful Workloads

Red Hat Gluster Storage Roadmap Past, Present & Future

Raw Block Volume in Kubernetes Mitsuhiro Tanino, Principal Software Engineer, Hitachi Vantara

Designing MQ deployments for the cloud generation

What s New in Red Hat OpenShift Container Platform 3.4. Torben Jäger Red Hat Solution Architect

Kubernetes Integration with Virtuozzo Storage

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

Managing Compute and Storage at Scale with Kubernetes. Dan Paik / Google

Package your Java Application using Docker and Kubernetes. Arun

Why software defined storage matters? Sergey Goncharov Solution Architect, Red Hat

Managing and Protecting Persistent Volumes for Kubernetes. Xing Yang, Huawei and Jay Bryant, Lenovo

Red Hat Roadmap for Containers and DevOps

VMWARE PIVOTAL CONTAINER SERVICE

VMWARE ENTERPRISE PKS

GlusterFS and RHS for SysAdmins

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

Kubernetes: Twelve KeyFeatures

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Webinar Series. Cloud Native Storage. May 17, 2017

Important DevOps Technologies (3+2+3days) for Deployment

What s New in Kubernetes 1.10

Hedvig as backup target for Veeam

How Container Schedulers and Software-based Storage will Change the Cloud

Persistent Storage with Kubernetes in Production Which solution and why?

Disaster Recovery and Data Protection for Kubernetes Persistent Volumes. Xing Yang, Principal Architect, Huawei

CONTAINERS AND MICROSERVICES WITH CONTRAIL

VMWARE PKS. What is VMware PKS? VMware PKS Architecture DATASHEET

Merging Enterprise Applications with Docker* Container Technology

S Implementing DevOps and Hybrid Cloud

Hitachi & Red Hat collaborate: Container migration guide

INTRODUCING CONTAINER-NATIVE VIRTUALIZATION

Red Hat OpenShift Roadmap Q4 CY16 and H1 CY17 Releases. Lutz Lange Solution

Beyond 1001 Dedicated Data Service Instances

Next Generation Storage for The Software-Defned World

Integration of Flexible Storage with the API of Gluster

Red Hat Storage Server for AWS

Gluster can t scale - Is it a reality or a past? Atin Mukherjee Engineering Manager, Red Hat Gluster Storage

Persistent Storage with Docker in production - Which solution and why?

Red Hat Containers Roadmap. Red Hat A panel of product directors


Containers Infrastructure for Advanced Management. Federico Simoncelli Associate Manager, Red Hat October 2016

AGILE RELIABILITY WITH RED HAT IN THE CLOUDS YOUR SOFTWARE LIFECYCLE SPEEDUP RECIPE. Lutz Lange - Senior Solution Architect Red Hat

Running MarkLogic in Containers (Both Docker and Kubernetes)

Taming Distributed Pets with Kubernetes

Open Storage in the Enterprise

Choosing the Right Container Infrastructure for Your Organization

Lessons Learned: Deploying Microservices Software Product in Customer Environments Mark Galpin, Solution Architect, JFrog, Inc.

Internals of Docking Storage with Kubernetes Workloads

Kubernetes 1.9 Features and Future

Red Hat Storage Storage without limits

Software containers are likely to become a very important tool over the

MQ High Availability and Disaster Recovery Implementation scenarios

Deploying and Operating Cloud Native.NET apps

Container-Native Storage 3.9

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

FROM MONOLITH TO DOCKER DISTRIBUTED APPLICATIONS

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

Container Orchestration on Amazon Web Services. Arun

Windows Azure Services - At Different Levels

Red Hat Gluster Storage 3.3

Container in Production : Openshift 구축사례로 이해하는 PaaS. Jongjin Lim Specialist Solution Architect, AppDev

How to build scalable, reliable and stable Kubernetes cluster atop OpenStack.

Container Management : First Looks

Part2: Let s pick one cloud IaaS middleware: OpenStack. Sergio Maffioletti

Building Kubernetes cloud: real world deployment examples, challenges and approaches. Alena Prokharchyk, Rancher Labs

TEN LAYERS OF CONTAINER SECURITY

AWS Lambda: Event-driven Code in the Cloud

One year of Deploying Applications for Docker, CoreOS, Kubernetes and Co.

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

RED HAT GLUSTER STORAGE 3.2 MARCEL HERGAARDEN SR. SOLUTION ARCHITECT, RED HAT GLUSTER STORAGE

Kubernetes - Load Balancing For Virtual Machines (Pods)

Cisco Container Platform

State of OpenShift on Bare Metal

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

RED HAT QUAY. As part of OCP Architecture Workshop. Technical Deck

RED HAT GLUSTER STORAGE TECHNICAL PRESENTATION

Simple custom Linux distributions with LinuxKit. Justin Cormack

The 12-Factor app and IBM Bluemix IBM Corporation

vsphere Virtual Volumes

Real-life technical decision points in using cloud & container technology:

Non-disruptive, two node high-availability (HA) support keeps you operating against unplanned storage failures in the cloud

Convergence of VM and containers orchestration using KubeVirt. Chunfu Wen

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

Case Study: Aurea Software Goes Beyond the Limits of Amazon EBS to Run 200 Kubernetes Stateful Pods Per Host

Red Hat JBoss Middleware for OpenShift 3

The Elements of Kubernetes. Aaron Schlesinger Microsoft Azure Containers Lead, SIG-Service-Catalog

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Securing Microservice Interactions in Openstack and Kubernetes

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

Gluster roadmap: Recent improvements and upcoming features

Deploying and Operating Cloud Native.NET apps

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and

Transcription:

Container-Native Storage Solving the Persistent Storage Challenge with GlusterFS Michael Adam Manager, Software Engineering José A. Rivera Senior Software Engineer 2017.09.11

WARNING The following presentation may contain opinions, speculations, and bad jokes. These are entirely the fault of the presenters, and do not reflect the values of Red Hat or its subsidiaries.

INTRODUCTION

Michael Adam Manager, CNS Team Maintainer, gluster-kubernetes Continues upstream contributions to various projects gluster-kubernetes heketi Kubernetes Gluster, gluster-block Samba tinyproxy Samba Team member since 2007 José A. Rivera Developer, CNS Team Project Lead, gluster-kubernetes Has facilitated integration of GlusterFS with various other projects Samba Pacemaker Kubernetes Member of the Kubernetes Storage SIG Samba Team member since 2014 4

OUTLINE INTRODUCTION WHAT IS THIS? YOU ARE HERE BACKGROUND WHY DID WE DO THIS? PUTTING IT ALL TOGETHER HOW DID WE DO THIS? ROADMAP WHERE ARE WE GOING WITH THIS? 5

TL;DR: CONTAINER-NATIVE STORAGE Containerized persistent storage service for Kubernetes NODE 1 NODE 2 NODE 3 NODE 4 6

BACKGROUND

CONTAINERS Runtime isolation Containers are a way to isolate processes in their own runtime environments on the same kernel with minimal overhead. Scaling at orders of magnitude higher than traditional VMs Faster deployment and startup Ideal for "microservices" application architecture Run application components in isolation Keep components "stateless" Asynchronous communication (e.g. REST APIs) Flexible maintenance and scaling of individual components 8

KUBERNETES Container orchestration at scale An open-source system for automating deployment, management, and scaling ("orchestration") of containerized applications. Clustered resource management Manages containers as "pods" One or more containers and associated metadata Used for scheduling, resource allocation, and network identity Calls programs "apps" Calls its users developers Supports multiple container runtimes Docker, rkt, cri-o Abstracts away the underlying platform On-premise (baremetal, VMs,...) or in the cloud (AWS, GCE, Azure,...) 9

CONTAINER STORAGE Not completely stateless Containers are ephemeral in nature, using no actual storage on the host Destroying a container destroys its state All apps need some form of persistent storage Content (e.g. websites) Configuration Databases Infrastructure services also need persistent storage Container images Clustered log data Storage must be able to follow apps 10

CONTAINER STORAGE Accessible & flexible To maintain flexibility for container scheduling, accessing storage over the network is the ideal solution Support multiple access protocols iscsi NFS SMB Support multiple kinds of raw storage Cloud disks (e.g Amazon EBS, GCE Persistent Disk, AzureDisk) SAN block devices Local disks 11

CONTAINER STORAGE So it's all great, right? There was still no one solution that could provide: High availability Concurrent access Network resilience Ease of scale Abstraction of raw storage We thought we had something better to offer... 12

GLUSTERFS Software-defined, distributed filesystem Open-Source Software-defined storage Scale out / distributed file-volumes Highly available Easy to set up Easy to maintain Flexible Feature-rich https://gluster.org https://github.com/gluster/glusterfs 13

GLUSTERFS Going further... Why not containerize your storage solution? Monitor it as any other app Single control plane Integrate storage into Kubernetes nodes 14

PUTTING IT ALL TOGETHER

PERSISTENT VOLUMES Abstracting storage Kubernetes tries to abstract away storage from apps Storage volumes are called PersistentVolumes (PVs) Pods use PVs via PersistentVolumeClaims (PVCs) PVCs are generic requests for an amount of storage with particular access modes Kubernetes searches for a PV matching a given PVC Matched PV is "bound" to the PVC Presents any storage as local within containers Allows for both static and dynamic creation of PVs 16

DYNAMIC PROVISIONING Storage On-Demand Kubernetes can create volumes for users upon request, without admin intervention. PVCs mention a particular StorageClass (SC) Created by admin Describes the storage type Storage type is abstracted by SC SCs mention a Provisioner Each type of storage has its own Provisioner Creates a PV of appropriate size PV is bound to incoming PVC 17

KUBERNETES + GLUSTERFS Components In Kubernetes: Gluster provisioner GlusterFS mount plugin heketi: High-level REST interface for Gluster volume management GlusterFS One or more Gluster clusters Nodes running as containers inside Kubernetes Can also run externally gk-deploy Tool to deploy Gluster and heketi into an existing Kubernetes cluster 18

KUBERNETES + GLUSTERFS Dynamic provisioning PVC created by user GlusterFS provisioner is extracted from SC and invoked Provisioner extracts details (type/size) about request from PVC Provisioner tells heketi to create a corresponding Gluster volume heketi looks for a cluster that can satisfy the request If found, heketi creates a GlusterFS volume heketi hands the volume back to the provisioner Provisioner creates a PV with the GlusterFS volume details The PV is bound to the PVC 19

GLUSTERFS MOUNT PLUGIN Kubernetes provides storage to containers by bind mounting directories into the containers GlusterFS mount plugin recognizes how to mount GlusterFS volumes onto the host Ships with Kubernetes The Kubernetes HOST must be able to mount GlusterFS volumes Must have mount.glusterfs installed 20

HEKETI High-level service interface for managing GlusterFS volumes Hides nitty-gritty details from caller Just takes Size and Durability type Recognizes commands like create, delete, expand, Can manage multiple Gluster clusters RESTful API and companion CLI tool ( heketi-cli ) https://github.com/heketi/heketi 21

CONTAINERIZATION heketi: A simple use case Just a single usual application container heketi DB needs to be persisted (currently in gluster volume ) Gluster: Slightly more complicated Privileged Consumes block devices of the nodes Uses host network Stores state directly on Kubernetes node 22

DEMOS

ROADMAP

How did we get here? On kube 1.4: Dynamic provisioning On kube 1.5: Improved scalability (# of volumes) Openshift: support Gluster as registry backend Day-2: remove disk 25

What s going on right now On kube 1.6 (will land this month): Improved RWO support with gluster-block Support logging (elastic search) on Gluster Improved scalability (# volumes): brix mux Day-2: remove node Experimental S3-object access for apps 26

What will the future bring? On kube 1.7+ Integration into kubernetes primitives: Snapshotting Geo-replication Volume expansion... Support metrics (Cassandra / Prometheus) on Gluster Fully support S3 object access Reconcile heketi logic with Gluster proper ( gd2 ) scalability, robustness, brown-field,... Use local block PVs when ready StatefulSet for Gluster containers Stretch cluster 27

QUESTIONS?

THANKS! https://github.com/gluster/gluster-kubernetes Michael Adam <obnox@redhat.com> @obnoxxx @obnoxxx José A. Rivera <jarrpa@redhat.com> @jarrpa @jarrpa