Kubernetes can be used with external storage like NAS, SAN, and S3, but applications requiring persistence need special care due to tight coupling. OpenEBS addresses this by providing containerized storage that adjusts automatically to containers' needs, allowing persistence without changes to developers' workflows. It achieves this through containerized storage components and integration with Kubernetes, providing features like replication, snapshots, and intelligent QoS.
2. 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
3. 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
4. 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!
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 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
8. 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
9. 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.
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 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
12. 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
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!!