Kubernetes Bangalore Meetup- July 2017
-
Upload
openebs -
Category
Technology
-
view
201 -
download
0
Transcript of Kubernetes Bangalore Meetup- July 2017
Containerized Storage for Containers
Kubernetes Bangalore Meetup July 08, 2017@OpenEBS
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
Dynamic Provisioning
High Availability
Data Protection
Storage Silos
Vendor Lock-in
Slow Upgrades
Monolithic!
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
DevOps workflow - Stateful/Stateless
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
NAS SAN S3 NAS Cloud
Any Server, Any Cloud
Manifests express intent
stateless
DevOps workflow - Stateful/Stateless
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 containersAny Server, Any Cloud Any Server, Any Cloud
Connector Based - Containerized Storage
Volumes
Provisioners
PVC/PV
StorageClasses
Attach/Detach
Controllers
CNCF/CSI
Container 1 Container 2 Container 3
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
stateful
Containerized storage for containers
Dynamic Provisioning
High Availability
Data Protection
Storage Silos, Kubernetes
Managed
Vendor Lock-in, Hybrid
Slow Upgrades, Seamless
Upgrades
Monolithic!, ContainerizedAny Server, Any Cloud
Kubernetes HCI - Containerized Storage
What is OpenEBS ?
OpenEBS is containerized storage for containers
Calico / Flannel owns networking for
K8S. OpenEBS owns storage.
Legacy
storage
X
Application
Pod
I run (use) OpenEBS just like I run (use)
K8S (EBS).
DevOps operations with OpenEBS
OpenEBS got the storage ops off my back!
Because of OpenEBS we are rolling into
production.
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-healingAdapt to varying workloads - Application Aware Storage (Zones)AWS EBS Like APIsStorage Analytics!
(Data Plane)Containerized volumesThin and scalable block storageEnterprise HA Intelligent QoSSmart Tiering for higher performance
Storage Orchestration - K8s Vs OpenEBS
Functionality K8s OpenEBS
Volume Life-cycle - provisioning, attaching/detach, de-provisioning X
Monitoring the volume data X
Scheduling the volume provisioning intelligently X
Smart space management X
Availability of volume X
Application aware backup/snapshots X
QoS guarantee (latency guarantee) X
Smart movement of the volumes across racks and regions X
Cataloging of storage requirements for different applications X
K8s takes care of connecting applications to stateful storage. Maya is the answer to the every other persistent storage question
OpenEBS 0.3 Demo : Data Scientist using
OpenEBS
UseCase: OpenEBS to provides
persistent storage for Jupyter
NoteBooks.
(Cluster Admin) Enables OpenEBS
on Kubernetes Cluster
(Developer / Data Scientist) Can
launch Jupyter Pod pointing to their
repository.
Admin’s interaction with OpenEBS
K8s master K8s minions
Storage classes
Central Repo
Install OpenEBS
kubectl apply -f openebs-operator.yaml
kubectl apply -f openebs-storageclasses.yaml
kubectl apply -f openebs-config.yaml
1
2
3
Developer’s interaction with OpenEBS
K8s master K8s minions
- Data science developer
- Wants to set up a jupyter notebook (not an expert in storage)
1
kubectl apply -f demo-jupyter-openebs.yaml
2
- Configure the jupyter yaml file for
all the jupyter functionality
- Read the available OpenEBS
storage classes and choose one
- Launch the jupyter application
kubectl get sc
Q&A
Join the community
#slackSlack.openebs.io
blog.openebs.io
@openebs
Cluster Admin - Enabling OpenEBS on K8s
K8s master K8s minions
Step 1: Use can existing K8s Cluster or Launch a new Cluster
(locally or in your fav cloud provider or use stackpoint.io to
create a cluster.)
Step 2: Configure OpenEBS on K8s.
kubectl apply -f openebs-operator.yaml
Step 3: Configure or Customize OpenEBS
kubectl apply -f openebs-config.yaml
kubectl apply -f openebs-storageclasses.yaml
https://github.com/openebs/openebs/tree/master/k8s
Developer - Using OpenEBS PVs
Step 1: Checkout the StorageClasses available
kubectl get sc
Step 2: Modify the Application YAML to use the openebs
storage class.
kubectl apply -f demo-jupyter-openebs.yaml
https://github.com/openebs/openebs/blob/master/k8s/demo/jupyter/demo-jupyter-openebs.yaml
K8s master K8s minions
Step 3: Launch Jupyter UI
http://<external-ip>:<port>/
What do you think?
https://github.com/openebs
Join the community
#slackSlack.openebs.io
blog.openebs.io
@openebs
https://www.openebs.io/careers/
Join Us and contribute to Kubernetes
- Prioritized Replication (HA) Networking/Storage
- Federated Clusters- Analytics and ML Services- CNCF/CSI