SlideShare a Scribd company logo
Persistent Storage with Kubernetes in Production
Which solution and why?
ContainerDays 2018, Hamburg, 19 June 2018
Cheryl Hung, Product and DevOps Manager
© StorageOS Ltd.
2© StorageOS Ltd.
Cheryl (@oicheryl)
Product and DevOps manager at
StorageOS
Ex-Google software eng, CNCF
Ambassador
Objectives
•Why is state so tricky?
•How do I compare storage?
•What storage should I use with Kubernetes?
3
@oicheryl
© StorageOS Ltd.
Objectives
•Why is state so tricky?
•How do I compare storage?
•What storage should I use with Kubernetes?
Anti-objective:
•Should I use a database/message
queue/key-value store... for my app?
4
@oicheryl
© StorageOS Ltd.
Why is state so
tricky?
5© StorageOS Ltd.
Why do I need storage?
@oicheryl
© StorageOS Ltd.
7
@oicheryl
© StorageOS Ltd.
Why do I need storage?
First challenge: No storage pets
8
@oicheryl
© StorageOS Ltd.
Second challenge: Data needs to follow
9
@oicheryl
© StorageOS Ltd.
Third challenge: Humans are fallible
10
@oicheryl
© StorageOS Ltd.
How do I compare
storage?
11© StorageOS Ltd.
From the CNCF Landscape
@oicheryl
© StorageOS Ltd.
@oicheryl
14
Eight Principles of
Cloud Native Storage
What is Cloud Native?
Horizontally scalable
No single point of failure
Resilient and self healing
Minimal operator overhead
Decoupled from the underlying platform
15
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
Storage should be presented to and consumed by
applications, not by operating systems or
hypervisors
1 Application
centric
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
Storage should be presented to and consumed by
applications, not by operating systems or
hypervisors
The storage platform should be able to run
anywhere. Upgrades and scaling is non-disruptive.
1 Application
centric
2 Platform
agnostic
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
Storage should be presented to and consumed by
applications, not by operating systems or
hypervisors
The storage platform should be able to run
anywhere. Upgrades and scaling is non-disruptive.
Storage resources should be declared and
composed just like all other resources required by
applications and services.
1 Application
centric
2 Platform
agnostic
3 Declarative
& composable
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
Storage should be presented to and consumed by
applications, not by operating systems or
hypervisors
The storage platform should be able to run
anywhere. Upgrades and scaling is non-disruptive.
Storage resources should be declared and
composed just like all other resources required by
applications and services.
Storage resources and services should be easy
to be provisioned, consumed, moved and
managed via an API.
1 Application
centric
2 Platform
agnostic
3 Declarative
& composable
4 API driven
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
5 Natively
secure
Storage services should integrate and inline
security features such as encryption and RBAC.
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
5 Natively
secure
6 Agile
Storage services should integrate and inline
security features such as encryption and RBAC.
The platform should be able to move application
data between locations, dynamically resize and
snapshot volumes.
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
5 Natively
secure
6 Agile
7 Performant
Storage services should integrate and inline
security features such as encryption and RBAC.
The platform should be able to move application
data between locations, dynamically resize and
snapshot volumes.
The storage platform should offer deterministic
performance in complex distributed environments.
@oicheryl
© StorageOS Ltd.
Eight principles of Cloud Native Storage
5 Natively
secure
6 Agile
7 Performant
8 Consistently
available
Storage services should integrate and inline
security features such as encryption and RBAC.
The platform should be able to move application
data between locations, dynamically resize and
snapshot volumes.
The storage platform should offer deterministic
performance in complex distributed environments.
The storage platform should ensure high
availability, durability, consistency with a
predictable, proven data model.
@oicheryl
© StorageOS Ltd.
What storage should I
use with Kubernetes?
24© StorageOS Ltd.
@oicheryl
Extremely quick intro to Kubernetes
© StorageOS Ltd.
• An open source container orchestrator platform,
originally developed by Google
• One of the fastest moving projects in open source; “The
Linux of the cloud”
• Abstraction layer for infrastructure
@oicheryl
Extremely quick intro to Kubernetes
© StorageOS Ltd.
“Always run my application (packaged as a
container/pod) with four replicas”
@oicheryl
Extremely quick intro to Kubernetes
© StorageOS Ltd.
@oicheryl
Kubernetes Storage Model: Persistent Volumes and Claims
© StorageOS Ltd.
Registers PVs in the pool
Pool of Persistent VolumesAdministrator
PV PV PVPV
@oicheryl
Kubernetes Storage Model: Persistent Volumes and Claims
© StorageOS Ltd.
Claims a PV from the pool
claim
Administrator
Developer
Registers PVs in the pool
Pool of Persistent Volumes
PV PV PVPV
@oicheryl
Kubernetes Storage Model: Persistent Volumes and Claims
© StorageOS Ltd.
claim
Registers PVs in the pool
Claims a PV from the pool
References claim in pod
claim
Pool of Persistent Volumes
Pod
Administrator
Developer
PVPV PV PVPV
@oicheryl
Dynamic provisioning with Storage Classes
© StorageOS Ltd.
Registers Storage Classes
Storage Classes
NS
PVstandard
fast
Administrator
@oicheryl
Dynamic provisioning with Storage Classes
© StorageOS Ltd.
Registers Storage Classes
claim
Storage Classes
NS
PV
fast
Administrator
Developer
Claims a PV from the pool
standard
@oicheryl
Dynamic provisioning with Storage Classes
© StorageOS Ltd.
claim
Registers Storage Classes
References claim in pod
claim
Storage Classes
NS
PV
Pod
fast
Administrator
Developer
Claims a PV from the pool
fast
PV
standard
@oicheryl
Meet Jane
© StorageOS Ltd.
A DevOps engineer at a media
company
Needs to migrate client Wordpress
websites into Kubernetes
What storage should she choose?
1. What is my use case?
35
App binaries App data Config Backup
@oicheryl
© StorageOS Ltd.
2. What are my performance requirements?
36
App binaries
Ephemeral
App data
Latency,
availability,
performant
Config
Shared
Backup
Cost efficient,
cloud
@oicheryl
© StorageOS Ltd.
@oicheryl
3. How should developers access storage?
© StorageOS Ltd.
Block
Fixed-size ‘blocks’ in
a rigid arrangement
– ideal for enterprise
databases
File
‘Files’ in
hierarchically nested
‘folders’ – ideal for
active documents
Object
‘Objects’ in scalable
‘buckets’ – ideal for
unstructured big
data and archiving
4. Where is the storage deployed and managed?
●CO supports one or more Interfaces to interact
with the Storage System
●Storage System can (A) support control-plane
interface API directly and interact directly with the
CO or can (B) interact with the CO via an API
framework layer or other Tools.
●Storage system must support the ability to
provision and consume (C) volumes through a
standard interface to be considered Interoperable
●Workloads interact (C) with storage systems over
various data-plane methods
Cluster Orchestrators
Control-Plane Interfaces
(CSI, DVDI, Flex, Native)
Storage SystemsFrameworks and Tools
AB
B
Workloads
C
© StorageOS Ltd.
@oicheryl
@oicheryl
Jane’s storage requirements
© StorageOS Ltd.
● Postgres database
● Database location, credentials
● Database and website backups
● User uploaded media
Database location and credentials
© StorageOS Ltd.
@oicheryl
1. Use case? Configuration
2. Performance requirements? Shared across instances
3. Access? Kubernetes provides Secrets for sensitive data
such as passwords, and ConfigMap for arbitrary config. Both
can be accessed by the application through environment
variables
4. Deployed and managed? Tight integration with Kubernetes
User uploaded media
© StorageOS Ltd.
@oicheryl
1. Use case? Shared media
2. Performance requirements? Large blobs of data, shared
across pods
3. Access? Shared filesystem
4. Deployed and managed?
Cloud: Managed NFS, or object store if the app can support it
On prem: Distributed FS (not NFS)
Database and website backup
© StorageOS Ltd.
@oicheryl
1. Use case? Backup and archival
2. Performance requirements? Durability, cost, snapshots
3. Access? Object store
4. Deployed and managed?
Cloud: Managed object store, long term cold storage
On prem: Object store (not NAS)
Postgres for application data
© StorageOS Ltd.
@oicheryl
1. Use case? Transactional database
2. Performance requirements? High availability, low latency,
deterministic performance
3. Access? Database connector
4. Deployed and managed?
Cloud: Cloud volumes (watch out for attach/detach times,
compliance) or managed db (limited offerings)
On prem: Software defined storage
Software defined storage
@oicheryl
© StorageOS Ltd.
@oicheryl
© StorageOS Ltd.
High availability with StorageOS
@oicheryl
© StorageOS Ltd.
47
To Recap…
Storage principles
1 Application
centric
2 Platform
agnostic
3 Declarative/
composable
4 API driven
5 Natively
secure
6 Agile
7 Performant
8 Consistently
available
© StorageOS Ltd.
@oicheryl
1. Use case?
2. Performance
requirements?
3. Access?
4. Deployed and
managed?
CSI in beta in Kubernetes 1.10
@oicheryl
© StorageOS Ltd.
Browser-based tutorials
• demo.storageos.cloud
Quickstart
• storageos.com/kubernetes
@oicheryl
StorageOS resources
© StorageOS Ltd.
Thanks
Slides at oicheryl.com
© StorageOS Ltd.
What is StorageOS?
© StorageOS Ltd.
@oicheryl
What is StorageOS?
© StorageOS Ltd.
@oicheryl
Platform
agnostic
Horizontally
scalable
Stateful workloads
eg. database
Docker/K8s
integration
High
availability
StorageOS architecture
@oicheryl
© StorageOS Ltd.
StorageOS architecture
© StorageOS Ltd.
@oicheryl
StorageOS is conceptually pretty simple; it’s a virtualization layer on top of any
commodity or cloud storage. It’s deployed as one container per node, as a
DaemonSet.
1. Nodes contribute local block storage to the storage pool.
2. Virtual volumes (block storage formatted with a standard filesystem) are
created through the StorageOS volume plugin.
3. Any pods can mount the virtual volumes from any node. If a pod is
rescheduled to a different node, StorageOS simply redirects reads and
writes so the pod can continue to access the storage.
StorageOS architecture
© StorageOS Ltd.
@oicheryl
It’s designed to scale horizontally by adding more nodes. New nodes contribute
their storage into the storage pool, or, if they don’t have storage themselves,
can access storage on other nodes.
High availability with StorageOS
© StorageOS Ltd.
@oicheryl
High availability with StorageOS
© StorageOS Ltd.
@oicheryl
StorageOS uses a hybrid master/replica architecture, where replicas are
distributed across nodes.
Replication is very simple in StorageOS. Volume D is created with two replicas.
StorageOS creates the replicas (D2, D3) and schedules them to two different
nodes (N3, N5). Incoming writes to D are synchronously replicated to D2 and
D3, ie. writes are not persisted until acknowledged by both replicas.
If N1 fails, one of D2 or D3 gets promoted to master, providing instant failover
and no interruption of service. StorageOS creates and resyncs a new replica on
N2 or N4 in the background.
StorageOS: A modular enterprise storage solution in a container
59
• Manages data
access requests
• Pools aggregate
storage for
presentation
• Runs as a
container
DATA PLANE
• Manages config,
health, scheduling,
policy, provisioning
and recovery
• API is accessed by
plugins, CLI, GUI
• Runs as a
container
CONTROL PLANE
© 2013-2017 StorageOS Ltd. All rights reserved.
More reading
Download the technical architecture overview at
storageos.com/storageos-platform-architecture-overview.
Try out in your browser, with zero downloads or configuration:
demo.storageos.cloud
Full documentation at docs.storageos.com.

More Related Content

What's hot (19)

PDF
Eight principles of cloud native storage
Cheryl Hung
 
PPTX
6 Storage Workloads Ideal for Microsoft Azure
Buurst
 
PDF
Cloud Bursting: Leveraging the Cloud to Maintain App Performance during Peak ...
Veritas Technologies LLC
 
PPTX
Kubernetes with Docker Enterprise for multi and hybrid cloud strategy
Ashnikbiz
 
PDF
Hadoop cluster using_vesper
Vengadessin Perumal
 
PPTX
How Container Schedulers and Software-based Storage will Change the Cloud
David vonThenen
 
PDF
Aerospike AdTech Gets Hacked in Lower Manhattan
Aerospike
 
PPTX
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
OpenEBS
 
PPTX
A First-Hand Look at What's New in HDP 2.3
DataWorks Summit
 
PDF
Examining Technical Best Practices for Veritas and AWS Using a Detailed Refer...
Veritas Technologies LLC
 
PDF
It's Prime Time for OpenStack--What Are You Waiting For?
Veritas Technologies LLC
 
PPTX
Hedvig slides from VMworld 2016
Eric Carter
 
PPTX
Running a High Performance NoSQL Database on Amazon EC2 for Just $1.68/Hour
Aerospike, Inc.
 
PPTX
EMC Hadoop Starter Kit - ViPR Edition
walshe1
 
PPTX
Aws best practices
Abed Abo Waddee'a
 
PDF
Best Practices for Using Alluxio with Spark
Alluxio, Inc.
 
PPTX
Introduction to Apache Accumulo
busbey
 
PPTX
An Introduction to Apache Geode (incubating)
Anthony Baker
 
PDF
01282016 Aerospike-Docker webinar
Aerospike, Inc.
 
Eight principles of cloud native storage
Cheryl Hung
 
6 Storage Workloads Ideal for Microsoft Azure
Buurst
 
Cloud Bursting: Leveraging the Cloud to Maintain App Performance during Peak ...
Veritas Technologies LLC
 
Kubernetes with Docker Enterprise for multi and hybrid cloud strategy
Ashnikbiz
 
Hadoop cluster using_vesper
Vengadessin Perumal
 
How Container Schedulers and Software-based Storage will Change the Cloud
David vonThenen
 
Aerospike AdTech Gets Hacked in Lower Manhattan
Aerospike
 
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
OpenEBS
 
A First-Hand Look at What's New in HDP 2.3
DataWorks Summit
 
Examining Technical Best Practices for Veritas and AWS Using a Detailed Refer...
Veritas Technologies LLC
 
It's Prime Time for OpenStack--What Are You Waiting For?
Veritas Technologies LLC
 
Hedvig slides from VMworld 2016
Eric Carter
 
Running a High Performance NoSQL Database on Amazon EC2 for Just $1.68/Hour
Aerospike, Inc.
 
EMC Hadoop Starter Kit - ViPR Edition
walshe1
 
Aws best practices
Abed Abo Waddee'a
 
Best Practices for Using Alluxio with Spark
Alluxio, Inc.
 
Introduction to Apache Accumulo
busbey
 
An Introduction to Apache Geode (incubating)
Anthony Baker
 
01282016 Aerospike-Docker webinar
Aerospike, Inc.
 

Similar to Persistent Storage with Kubernetes in Production (20)

PDF
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
PDF
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
PDF
Introduction to Container Storage
Cheryl Hung
 
PDF
There's no such thing as a stateless architecture
Cheryl Hung
 
PDF
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
PDF
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
PPTX
StorageOS - 8 core principles of cloud native storage
StorageOS
 
PDF
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
MayaData
 
PDF
Choose the Right Container Storage for Kubernetes
Yusuf Hadiwinata Sutandar
 
PDF
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
Docker, Inc.
 
PDF
MayaData Datastax webinar - Operating Cassandra on Kubernetes with the help ...
MayaData Inc
 
PDF
Data protection in a kubernetes-native world
LibbySchulze
 
PDF
Choosing the right storage for stateful workloads on Kubernetes
LibbySchulze
 
PDF
Open ebs 101
LibbySchulze
 
PDF
Storage os kubernetes clusters need persistent data
LibbySchulze
 
PDF
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
OpenEBS
 
PDF
Containerized Storage for Containers: Why, What and How OpenEBS Works
Matt Baldwin
 
PDF
Kubecon 2019 Recap
Aarno Aukia
 
PDF
South Bay Kubernetes DevOps
OpenEBS
 
PDF
Redis Conf 2019--Container Attached Storage for Redis
OpenEBS
 
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
Introduction to Container Storage
Cheryl Hung
 
There's no such thing as a stateless architecture
Cheryl Hung
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
StorageOS - 8 core principles of cloud native storage
StorageOS
 
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
MayaData
 
Choose the Right Container Storage for Kubernetes
Yusuf Hadiwinata Sutandar
 
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
Docker, Inc.
 
MayaData Datastax webinar - Operating Cassandra on Kubernetes with the help ...
MayaData Inc
 
Data protection in a kubernetes-native world
LibbySchulze
 
Choosing the right storage for stateful workloads on Kubernetes
LibbySchulze
 
Open ebs 101
LibbySchulze
 
Storage os kubernetes clusters need persistent data
LibbySchulze
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
OpenEBS
 
Containerized Storage for Containers: Why, What and How OpenEBS Works
Matt Baldwin
 
Kubecon 2019 Recap
Aarno Aukia
 
South Bay Kubernetes DevOps
OpenEBS
 
Redis Conf 2019--Container Attached Storage for Redis
OpenEBS
 
Ad

More from Cheryl Hung (20)

PDF
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
PDF
SlideShare a Scribd company logo Search Submit Search Upload Download free...
Cheryl Hung
 
PDF
Building AI platforms together, for everyone @ SOOCon25.pdf
Cheryl Hung
 
PDF
Building the Future, Together - Kubernetes Community Days, 2024
Cheryl Hung
 
PDF
Key Trends Shaping Cloud Infrastructure and Edge Infrastructure
Cheryl Hung
 
PDF
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
PDF
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
PPTX
Multi-Arch Infra From the Ground Up.pptx
Cheryl Hung
 
PDF
Multi-arch from the ground up
Cheryl Hung
 
PDF
Crossing the chasm with multi-arch
Cheryl Hung
 
PDF
Lessons Learned from 3 years inside CNCF
Cheryl Hung
 
PDF
Infrastructure matters - The DevOps Conference, Copenhagen
Cheryl Hung
 
PDF
Infrastructure matters.pdf
Cheryl Hung
 
PDF
Cloud Native Trends and 2022 Predictions - Cheryl Hung, 16 June 2022 - Cloud ...
Cheryl Hung
 
PDF
Lessons learned from 3 years inside cncf - WTF is Cloud Native, 4 September 2021
Cheryl Hung
 
PDF
Lessons learned from 3 years inside CNCF - Swiss Cloud Native Day
Cheryl Hung
 
PDF
10 predictions for cloud native in 2021 - Fidelity Cloud Cast
Cheryl Hung
 
PDF
10 predictions for cloud native in 2021 - Cheryl Hung GIFEE day
Cheryl Hung
 
PPTX
Data and Storage Ecosystem Opportunities and Need - Cheryl Hung Sodacon2020 k...
Cheryl Hung
 
PPTX
10 predictions for cloud native in 2021
Cheryl Hung
 
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
SlideShare a Scribd company logo Search Submit Search Upload Download free...
Cheryl Hung
 
Building AI platforms together, for everyone @ SOOCon25.pdf
Cheryl Hung
 
Building the Future, Together - Kubernetes Community Days, 2024
Cheryl Hung
 
Key Trends Shaping Cloud Infrastructure and Edge Infrastructure
Cheryl Hung
 
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Multi-Arch Infra From the Ground Up.pptx
Cheryl Hung
 
Multi-arch from the ground up
Cheryl Hung
 
Crossing the chasm with multi-arch
Cheryl Hung
 
Lessons Learned from 3 years inside CNCF
Cheryl Hung
 
Infrastructure matters - The DevOps Conference, Copenhagen
Cheryl Hung
 
Infrastructure matters.pdf
Cheryl Hung
 
Cloud Native Trends and 2022 Predictions - Cheryl Hung, 16 June 2022 - Cloud ...
Cheryl Hung
 
Lessons learned from 3 years inside cncf - WTF is Cloud Native, 4 September 2021
Cheryl Hung
 
Lessons learned from 3 years inside CNCF - Swiss Cloud Native Day
Cheryl Hung
 
10 predictions for cloud native in 2021 - Fidelity Cloud Cast
Cheryl Hung
 
10 predictions for cloud native in 2021 - Cheryl Hung GIFEE day
Cheryl Hung
 
Data and Storage Ecosystem Opportunities and Need - Cheryl Hung Sodacon2020 k...
Cheryl Hung
 
10 predictions for cloud native in 2021
Cheryl Hung
 
Ad

Recently uploaded (20)

PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Python basic programing language for automation
DanialHabibi2
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 

Persistent Storage with Kubernetes in Production

  • 1. Persistent Storage with Kubernetes in Production Which solution and why? ContainerDays 2018, Hamburg, 19 June 2018 Cheryl Hung, Product and DevOps Manager © StorageOS Ltd.
  • 2. 2© StorageOS Ltd. Cheryl (@oicheryl) Product and DevOps manager at StorageOS Ex-Google software eng, CNCF Ambassador
  • 3. Objectives •Why is state so tricky? •How do I compare storage? •What storage should I use with Kubernetes? 3 @oicheryl © StorageOS Ltd.
  • 4. Objectives •Why is state so tricky? •How do I compare storage? •What storage should I use with Kubernetes? Anti-objective: •Should I use a database/message queue/key-value store... for my app? 4 @oicheryl © StorageOS Ltd.
  • 5. Why is state so tricky? 5© StorageOS Ltd.
  • 6. Why do I need storage? @oicheryl © StorageOS Ltd.
  • 8. First challenge: No storage pets 8 @oicheryl © StorageOS Ltd.
  • 9. Second challenge: Data needs to follow 9 @oicheryl © StorageOS Ltd.
  • 10. Third challenge: Humans are fallible 10 @oicheryl © StorageOS Ltd.
  • 11. How do I compare storage? 11© StorageOS Ltd.
  • 12. From the CNCF Landscape @oicheryl © StorageOS Ltd.
  • 15. What is Cloud Native? Horizontally scalable No single point of failure Resilient and self healing Minimal operator overhead Decoupled from the underlying platform 15 @oicheryl © StorageOS Ltd.
  • 16. Eight principles of Cloud Native Storage Storage should be presented to and consumed by applications, not by operating systems or hypervisors 1 Application centric @oicheryl © StorageOS Ltd.
  • 17. Eight principles of Cloud Native Storage Storage should be presented to and consumed by applications, not by operating systems or hypervisors The storage platform should be able to run anywhere. Upgrades and scaling is non-disruptive. 1 Application centric 2 Platform agnostic @oicheryl © StorageOS Ltd.
  • 18. Eight principles of Cloud Native Storage Storage should be presented to and consumed by applications, not by operating systems or hypervisors The storage platform should be able to run anywhere. Upgrades and scaling is non-disruptive. Storage resources should be declared and composed just like all other resources required by applications and services. 1 Application centric 2 Platform agnostic 3 Declarative & composable @oicheryl © StorageOS Ltd.
  • 19. Eight principles of Cloud Native Storage Storage should be presented to and consumed by applications, not by operating systems or hypervisors The storage platform should be able to run anywhere. Upgrades and scaling is non-disruptive. Storage resources should be declared and composed just like all other resources required by applications and services. Storage resources and services should be easy to be provisioned, consumed, moved and managed via an API. 1 Application centric 2 Platform agnostic 3 Declarative & composable 4 API driven @oicheryl © StorageOS Ltd.
  • 20. Eight principles of Cloud Native Storage 5 Natively secure Storage services should integrate and inline security features such as encryption and RBAC. @oicheryl © StorageOS Ltd.
  • 21. Eight principles of Cloud Native Storage 5 Natively secure 6 Agile Storage services should integrate and inline security features such as encryption and RBAC. The platform should be able to move application data between locations, dynamically resize and snapshot volumes. @oicheryl © StorageOS Ltd.
  • 22. Eight principles of Cloud Native Storage 5 Natively secure 6 Agile 7 Performant Storage services should integrate and inline security features such as encryption and RBAC. The platform should be able to move application data between locations, dynamically resize and snapshot volumes. The storage platform should offer deterministic performance in complex distributed environments. @oicheryl © StorageOS Ltd.
  • 23. Eight principles of Cloud Native Storage 5 Natively secure 6 Agile 7 Performant 8 Consistently available Storage services should integrate and inline security features such as encryption and RBAC. The platform should be able to move application data between locations, dynamically resize and snapshot volumes. The storage platform should offer deterministic performance in complex distributed environments. The storage platform should ensure high availability, durability, consistency with a predictable, proven data model. @oicheryl © StorageOS Ltd.
  • 24. What storage should I use with Kubernetes? 24© StorageOS Ltd.
  • 25. @oicheryl Extremely quick intro to Kubernetes © StorageOS Ltd. • An open source container orchestrator platform, originally developed by Google • One of the fastest moving projects in open source; “The Linux of the cloud” • Abstraction layer for infrastructure
  • 26. @oicheryl Extremely quick intro to Kubernetes © StorageOS Ltd. “Always run my application (packaged as a container/pod) with four replicas”
  • 27. @oicheryl Extremely quick intro to Kubernetes © StorageOS Ltd.
  • 28. @oicheryl Kubernetes Storage Model: Persistent Volumes and Claims © StorageOS Ltd. Registers PVs in the pool Pool of Persistent VolumesAdministrator PV PV PVPV
  • 29. @oicheryl Kubernetes Storage Model: Persistent Volumes and Claims © StorageOS Ltd. Claims a PV from the pool claim Administrator Developer Registers PVs in the pool Pool of Persistent Volumes PV PV PVPV
  • 30. @oicheryl Kubernetes Storage Model: Persistent Volumes and Claims © StorageOS Ltd. claim Registers PVs in the pool Claims a PV from the pool References claim in pod claim Pool of Persistent Volumes Pod Administrator Developer PVPV PV PVPV
  • 31. @oicheryl Dynamic provisioning with Storage Classes © StorageOS Ltd. Registers Storage Classes Storage Classes NS PVstandard fast Administrator
  • 32. @oicheryl Dynamic provisioning with Storage Classes © StorageOS Ltd. Registers Storage Classes claim Storage Classes NS PV fast Administrator Developer Claims a PV from the pool standard
  • 33. @oicheryl Dynamic provisioning with Storage Classes © StorageOS Ltd. claim Registers Storage Classes References claim in pod claim Storage Classes NS PV Pod fast Administrator Developer Claims a PV from the pool fast PV standard
  • 34. @oicheryl Meet Jane © StorageOS Ltd. A DevOps engineer at a media company Needs to migrate client Wordpress websites into Kubernetes What storage should she choose?
  • 35. 1. What is my use case? 35 App binaries App data Config Backup @oicheryl © StorageOS Ltd.
  • 36. 2. What are my performance requirements? 36 App binaries Ephemeral App data Latency, availability, performant Config Shared Backup Cost efficient, cloud @oicheryl © StorageOS Ltd.
  • 37. @oicheryl 3. How should developers access storage? © StorageOS Ltd. Block Fixed-size ‘blocks’ in a rigid arrangement – ideal for enterprise databases File ‘Files’ in hierarchically nested ‘folders’ – ideal for active documents Object ‘Objects’ in scalable ‘buckets’ – ideal for unstructured big data and archiving
  • 38. 4. Where is the storage deployed and managed? ●CO supports one or more Interfaces to interact with the Storage System ●Storage System can (A) support control-plane interface API directly and interact directly with the CO or can (B) interact with the CO via an API framework layer or other Tools. ●Storage system must support the ability to provision and consume (C) volumes through a standard interface to be considered Interoperable ●Workloads interact (C) with storage systems over various data-plane methods Cluster Orchestrators Control-Plane Interfaces (CSI, DVDI, Flex, Native) Storage SystemsFrameworks and Tools AB B Workloads C © StorageOS Ltd. @oicheryl
  • 39. @oicheryl Jane’s storage requirements © StorageOS Ltd. ● Postgres database ● Database location, credentials ● Database and website backups ● User uploaded media
  • 40. Database location and credentials © StorageOS Ltd. @oicheryl 1. Use case? Configuration 2. Performance requirements? Shared across instances 3. Access? Kubernetes provides Secrets for sensitive data such as passwords, and ConfigMap for arbitrary config. Both can be accessed by the application through environment variables 4. Deployed and managed? Tight integration with Kubernetes
  • 41. User uploaded media © StorageOS Ltd. @oicheryl 1. Use case? Shared media 2. Performance requirements? Large blobs of data, shared across pods 3. Access? Shared filesystem 4. Deployed and managed? Cloud: Managed NFS, or object store if the app can support it On prem: Distributed FS (not NFS)
  • 42. Database and website backup © StorageOS Ltd. @oicheryl 1. Use case? Backup and archival 2. Performance requirements? Durability, cost, snapshots 3. Access? Object store 4. Deployed and managed? Cloud: Managed object store, long term cold storage On prem: Object store (not NAS)
  • 43. Postgres for application data © StorageOS Ltd. @oicheryl 1. Use case? Transactional database 2. Performance requirements? High availability, low latency, deterministic performance 3. Access? Database connector 4. Deployed and managed? Cloud: Cloud volumes (watch out for attach/detach times, compliance) or managed db (limited offerings) On prem: Software defined storage
  • 46. High availability with StorageOS @oicheryl © StorageOS Ltd.
  • 48. Storage principles 1 Application centric 2 Platform agnostic 3 Declarative/ composable 4 API driven 5 Natively secure 6 Agile 7 Performant 8 Consistently available © StorageOS Ltd. @oicheryl 1. Use case? 2. Performance requirements? 3. Access? 4. Deployed and managed?
  • 49. CSI in beta in Kubernetes 1.10 @oicheryl © StorageOS Ltd.
  • 50. Browser-based tutorials • demo.storageos.cloud Quickstart • storageos.com/kubernetes @oicheryl StorageOS resources © StorageOS Ltd.
  • 52. What is StorageOS? © StorageOS Ltd. @oicheryl
  • 53. What is StorageOS? © StorageOS Ltd. @oicheryl Platform agnostic Horizontally scalable Stateful workloads eg. database Docker/K8s integration High availability
  • 55. StorageOS architecture © StorageOS Ltd. @oicheryl StorageOS is conceptually pretty simple; it’s a virtualization layer on top of any commodity or cloud storage. It’s deployed as one container per node, as a DaemonSet. 1. Nodes contribute local block storage to the storage pool. 2. Virtual volumes (block storage formatted with a standard filesystem) are created through the StorageOS volume plugin. 3. Any pods can mount the virtual volumes from any node. If a pod is rescheduled to a different node, StorageOS simply redirects reads and writes so the pod can continue to access the storage.
  • 56. StorageOS architecture © StorageOS Ltd. @oicheryl It’s designed to scale horizontally by adding more nodes. New nodes contribute their storage into the storage pool, or, if they don’t have storage themselves, can access storage on other nodes.
  • 57. High availability with StorageOS © StorageOS Ltd. @oicheryl
  • 58. High availability with StorageOS © StorageOS Ltd. @oicheryl StorageOS uses a hybrid master/replica architecture, where replicas are distributed across nodes. Replication is very simple in StorageOS. Volume D is created with two replicas. StorageOS creates the replicas (D2, D3) and schedules them to two different nodes (N3, N5). Incoming writes to D are synchronously replicated to D2 and D3, ie. writes are not persisted until acknowledged by both replicas. If N1 fails, one of D2 or D3 gets promoted to master, providing instant failover and no interruption of service. StorageOS creates and resyncs a new replica on N2 or N4 in the background.
  • 59. StorageOS: A modular enterprise storage solution in a container 59 • Manages data access requests • Pools aggregate storage for presentation • Runs as a container DATA PLANE • Manages config, health, scheduling, policy, provisioning and recovery • API is accessed by plugins, CLI, GUI • Runs as a container CONTROL PLANE © 2013-2017 StorageOS Ltd. All rights reserved.
  • 60. More reading Download the technical architecture overview at storageos.com/storageos-platform-architecture-overview. Try out in your browser, with zero downloads or configuration: demo.storageos.cloud Full documentation at docs.storageos.com.