Container Attached Storage
OpenEBS
Chennai Kubernetes Meetup 2
By,
Uday Kiran (@y_udaykiran)
Satyam Zode (@SatyamZode)
Manifests express
intent
K8S used with special care for apps requiring persistence
because they require brittle tight coupling.
Hard wired connections via plug-in
Container 1
(Node1)
Container 2
(Node 2)
Container 3
(Node 3)
stateless stateful
K8s workflow - Stateless vs Stateful
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
NAS SAN S3 NAS Cloud
Any Server, Any Cloud
Kubernetes with external Storage
Special care for apps requiring persistence because
they require brittle tight coupling.Volumes
Provisioners
PVC/PV
StorageClasses
Attach/Detach
Controllers
CNCF/CSI
Container 1 Container 2 Container 2
Hard wired connections via plug-in
stateful
NAS SAN S3 NAS Cloud
Maximum Agility
Declarative
Elastic
Multi-Cloud
Increased Productivity
Reduced IT Costs
Provisioning
State of State with Connected Storage
https://static-ssl.businessinsider.com/image/51560a4869bedd425f000003-960-720/pakistani-men-in-islamabad-try-to-right-a-truck-transporting-wheat-straw.j
pg
Dumping Storage from all the
containers into a shared
storage platform!
State of State -- What if?
https://wall-street.com/wp-content/uploads/2017/03/amazon-1.jpg
Storage is Containerized..
Manifests express
intent
stateless
K8s workflow - Stateless vs Stateful
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
stateful
No changes to DevOps workflow even for containers requiring
persistence. Users manifest their intent and the storage and
storage controllers adjust automatically as needed.
Data Container Data Container Data Container
Containerized storage for containers
Any Server, Any Cloud Any Server, Any Cloud
How is OpenEBS built ?
Storage containerization
Storage orchestration
Deep storage operations
Core Storage features
is built using
is integrated with
is built into (OpenEBS Maya)
is built into (OpenEBS)
(Control plane)
Smart Capacity Management
Volume Latency Monitoring and Auto-healing
Adapt to varying workloads - Application Aware Storage (Zones)
AWS EBS Like APIs
Storage Analytics!
(Data Plane)
Containerized volumes
Thin and scalable block storage
Enterprise HA
Intelligent QoS
Smart Tiering for higher performance
OpenEBS - Architecture
OpenEBS Control Plane1b
(cluster services)
OpenEBS Control Plane1c
(node services, aka
agents)
Providers/Plugins
via Terraform,
Ansible, Stackpoint,
Rancher
OpenEBS Data
Plane
(OpenEBS
Volumes)
OpenEBS Clusters
(on-prem or on-cloud).
OpenEBS Cloud Service - MAYA
Integrators 1a
Kubernetes Persistent Volume Categories
App
PV
K8s Node
App
PV
App
PV
Storage Server
Vol Vol Vol
Filesystem / BlockDev
NAS
K8s Node
App
PV
Vol Vol
App
PV
Vol
App
PV
Filesystem / BlockDev
DAS
K8s Node
App
PV
App
PV
App
PV
Vol Vol Vol
Filesystem / BlockDev
CAS
NAS - Network Attached Storage (Example: GPD, EBS)
DAS - Direct Attached Storage (Example: hostDir, Local PV)
CAS - Container Attached Storage (Example: OpenEBS)
Indicates functionality like replication, snapshots, encryption, compression, etc.,
Represent stateful Pods like Databases, etc.
Kubernetes Cluster
node2node1
OpenEBS Volumes - Jiva
Pod
Stateful
Workload
(DB, etc)
ov-ctrl
(iSCSI
Target)
ov-rep-1
(replica)
ov-rep-2
(replica)
Setup OpenEBS
DevOps
admin
(1) Format and Mount
(2) StoragePool
(3) StorageClass
OS
Developer
Using OpenEBS
(4) PVC
(5) PV /mnt/openebsOS /mnt/openebs
node3
OS /mnt/openebs
ov-rep-3
(replica)
○ 8 node Kubernetes cluster to 500+
nodes
○ Comments:
○ No storage ops team is available. That
rules out almost all storage
○ Each team on Kubernetes responsible
for running OpenEBS
○ Tried it out in 10 minutes and it
worked - “revolutionary for storage”
○ Community of other users a big
attraction
○ Have run many scenarios that cause
data loss typically for workloads on
Kubernetes - and for storage -
OpenEBS just works
Ryan’s Story
How to use OpenEBS?
# Install OpenEBS Operator
kubectl apply -f https://raw.githubusercontent.com/openebs/openebs/master/k8s/openebs-operator.yaml
# Install OpenEBS Storage Classes
kubectl apply -f https://raw.githubusercontent.com/openebs/openebs/master/k8s/openebs-storageclasses.yaml
Note: Make sure that you have iscsi installed on host machine
Contributing to OpenEBS
● OpenEBS Summer Hackfest https://openebs.io/hackfest
● Contribute to the different projects under OpenEBS umbrella
● Work on the issues tagged with summerhack
● Submit Pull Request on Github to OpenEBS Project.
Contributing to Kubernetes
● Sign CNCF CLA
● Find or file the issue and tag it with the sig group where the change
should be made.
● Special interest groups example: sig-storage, sig-instrumentation
etc.
● Raise PR!!
Thank you!
Slack.openebs.io
github.com/openebs

Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018

  • 1.
    Container Attached Storage OpenEBS ChennaiKubernetes Meetup 2 By, Uday Kiran (@y_udaykiran) Satyam Zode (@SatyamZode)
  • 2.
    Manifests express intent K8S usedwith special care for apps requiring persistence because they require brittle tight coupling. Hard wired connections via plug-in Container 1 (Node1) Container 2 (Node 2) Container 3 (Node 3) stateless stateful K8s workflow - Stateless vs Stateful Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 NAS SAN S3 NAS Cloud Any Server, Any Cloud
  • 3.
    Kubernetes with externalStorage Special care for apps requiring persistence because they require brittle tight coupling.Volumes Provisioners PVC/PV StorageClasses Attach/Detach Controllers CNCF/CSI Container 1 Container 2 Container 2 Hard wired connections via plug-in stateful NAS SAN S3 NAS Cloud Maximum Agility Declarative Elastic Multi-Cloud Increased Productivity Reduced IT Costs Provisioning
  • 4.
    State of Statewith Connected Storage https://static-ssl.businessinsider.com/image/51560a4869bedd425f000003-960-720/pakistani-men-in-islamabad-try-to-right-a-truck-transporting-wheat-straw.j pg Dumping Storage from all the containers into a shared storage platform!
  • 5.
    State of State-- What if? https://wall-street.com/wp-content/uploads/2017/03/amazon-1.jpg Storage is Containerized..
  • 6.
    Manifests express intent stateless K8s workflow- Stateless vs Stateful Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 stateful No changes to DevOps workflow even for containers requiring persistence. Users manifest their intent and the storage and storage controllers adjust automatically as needed. Data Container Data Container Data Container Containerized storage for containers Any Server, Any Cloud Any Server, Any Cloud
  • 7.
    How is OpenEBSbuilt ? Storage containerization Storage orchestration Deep storage operations Core Storage features is built using is integrated with is built into (OpenEBS Maya) is built into (OpenEBS) (Control plane) Smart Capacity Management Volume Latency Monitoring and Auto-healing Adapt to varying workloads - Application Aware Storage (Zones) AWS EBS Like APIs Storage Analytics! (Data Plane) Containerized volumes Thin and scalable block storage Enterprise HA Intelligent QoS Smart Tiering for higher performance
  • 8.
    OpenEBS - Architecture OpenEBSControl Plane1b (cluster services) OpenEBS Control Plane1c (node services, aka agents) Providers/Plugins via Terraform, Ansible, Stackpoint, Rancher OpenEBS Data Plane (OpenEBS Volumes) OpenEBS Clusters (on-prem or on-cloud). OpenEBS Cloud Service - MAYA Integrators 1a
  • 9.
    Kubernetes Persistent VolumeCategories App PV K8s Node App PV App PV Storage Server Vol Vol Vol Filesystem / BlockDev NAS K8s Node App PV Vol Vol App PV Vol App PV Filesystem / BlockDev DAS K8s Node App PV App PV App PV Vol Vol Vol Filesystem / BlockDev CAS NAS - Network Attached Storage (Example: GPD, EBS) DAS - Direct Attached Storage (Example: hostDir, Local PV) CAS - Container Attached Storage (Example: OpenEBS) Indicates functionality like replication, snapshots, encryption, compression, etc., Represent stateful Pods like Databases, etc.
  • 10.
    Kubernetes Cluster node2node1 OpenEBS Volumes- Jiva Pod Stateful Workload (DB, etc) ov-ctrl (iSCSI Target) ov-rep-1 (replica) ov-rep-2 (replica) Setup OpenEBS DevOps admin (1) Format and Mount (2) StoragePool (3) StorageClass OS Developer Using OpenEBS (4) PVC (5) PV /mnt/openebsOS /mnt/openebs node3 OS /mnt/openebs ov-rep-3 (replica)
  • 11.
    ○ 8 nodeKubernetes cluster to 500+ nodes ○ Comments: ○ No storage ops team is available. That rules out almost all storage ○ Each team on Kubernetes responsible for running OpenEBS ○ Tried it out in 10 minutes and it worked - “revolutionary for storage” ○ Community of other users a big attraction ○ Have run many scenarios that cause data loss typically for workloads on Kubernetes - and for storage - OpenEBS just works Ryan’s Story
  • 12.
    How to useOpenEBS? # Install OpenEBS Operator kubectl apply -f https://raw.githubusercontent.com/openebs/openebs/master/k8s/openebs-operator.yaml # Install OpenEBS Storage Classes kubectl apply -f https://raw.githubusercontent.com/openebs/openebs/master/k8s/openebs-storageclasses.yaml Note: Make sure that you have iscsi installed on host machine
  • 13.
    Contributing to OpenEBS ●OpenEBS Summer Hackfest https://openebs.io/hackfest ● Contribute to the different projects under OpenEBS umbrella ● Work on the issues tagged with summerhack ● Submit Pull Request on Github to OpenEBS Project.
  • 14.
    Contributing to Kubernetes ●Sign CNCF CLA ● Find or file the issue and tag it with the sig group where the change should be made. ● Special interest groups example: sig-storage, sig-instrumentation etc. ● Raise PR!!
  • 15.