SlideShare a Scribd company logo
1 of 29
Download to read offline
Richa’rd Kova’cs
Kubernetes volumes
upside-down with
Discoblocks
Boring slide
● At work
○ Staff Kubernetes Integration Engineer
○ @Ondat (former StorageOS)
○ Operator, Scheduler, Controller
and Automation
● At IT space
○ Many years of DevOps, cloud
and containerization
○ Several years of Go, Java, so on
■ (why others than BASH exists?)
○ OSS devotee
○ Known as @mhmxs
Ondat
Cloud Native Storage
Cloud Native Storage
Ondat - Key features
● Built-in compression
● Encryption at rest
● Replication
● Data locality
● Shared volumes
● Snapshots
● Storage pooling
● Topologies
● Web Portal
● Free community edition [unlimited clusters, nodes and 1TB capacity]
● Rolling-upgrades - Tech preview
Persistent Volumes
● Implementation details are out of scope for Kubernetes
● Container Storage Interface [CSI]
○ Runs on “every” node, Kubelet calls via Unix socket
○ Plugin capabilities endpoint
○ Provision, Attach, Resize, Snapshot
○ Most runs in privileged mode
○ Dependency out of Devs control
Persistent Volumes
● storage.k8s.io.StorageClass/v1
○ Cluster wide resource
○ Defines common (low level) details of Persistent Volumes
■ Provisioner: ID of CSI driver
■ Parameters: passed to CSI driver
■ Reclaim policy: Retain, Delete
■ Allow volume expansion
■ Mount options
■ Volume binding mode: Immediate, WaitForFirstConsumer
○ Usually managed by Ops team
Persistent Volumes
● core.PersistentVolumeClaims/v1
○ Namespaced resource
○ Still not the volume itself (template)
○ Defines details of Persistent Volumes
■ Storage class or default
■ Access mode:
● ReadWriteOnce - RW single node
● ReadWriteOncePod -RW single pod
● ReadOnlyMany - R multi node
● ReadWriteMany - RW multi node
Persistent Volumes
■ Volume mode: Filesystem, Block
■ Capacity
■ Selector: matching PersistentVolume
● Both direction works: PVC->PV, PV/Snapshot <-PVC
● PVC with a non-empty selector can't have a PV dynamically
provisioned for it.
○ Yes, you are right, PVC maintainer has to know CSI driver details
○ Usually managed by Dev team
Persistent Volumes
● core.PersistentVolume/v1
○ Cluster wide resource
○ No direct connection with workload
○ Full with deprecated in-tree plugins
■ Host path
■ Local
■ CSI
○ Where data lives
○ Dynamic provisioning
■ Managed by CSI driver
○ Static provisioning
■ Managed by Ops team
Persistent Volumes
Persistent Volumes
● storage.k8s.io.VolumeAttachment/v1alpha1
○ Namespaced resource
○ Binds volume to exact node
○ Usually managed by ??? team - collaboration
■ Attacher - depends on CSI driver
■ Nodename - needs infra knowledge
■ PVC name - known by Devs
Difficulties
Difficulties
● Hard to be infrastructure independent
○ Different environments has different storage backends
○ Different storage backends needs different manifests
● Knowledge/permission gaps
○ Developers has to know different storage backends
○ Developers has to raise tickets to create cluster resources
● Manifest maintenance
○ Overlaying or templating, that is the question
● Scaling
○ Needs extra care on wide spectrum:
■ Manual
■ …
■ Full GitOps pipeline [monitoring, trigger, update, push, pull, apply]
???
Discoblocks
Discoblocks way
● Create a DiskConfig object per:
○ Environment
○ Workload
○ Storage speed
○ Storage capacity
○ Mount point
○ Node selector
○ Access mode
○ Availability mode
○ Availability zone
○ Auto-scaling policy
○ Mix of the above
● Enjoy automatic volume management and both horizontal and vertical auto-upscaling
Create your workload
as usual:
kubectl create deployment
––image=nginx nginx
DiskConfig
Demo
Workload creation
Volume resize
Downside
● Not production ready at the moment
● Only AWS EBS and Ondat CSI drivers are supported at the moment
○ New driver is a few bytes of “WebAssembly”
○ Bring Your Own Driver-Integration
● Not every application supports numeric order of directories
● StatefulSets support is incomplete
● Not well documented
● Not production ready at the moment
● Only AWS EBS and Ondat CSI drivers are supported at the moment
○ New driver is a few bytes of “WebAssembly”
○ Bring Your Own Driver-Integration
● Not every application supports numeric order of directories
● StatefulSets support is incomplete
● Not well documented
Future plans
● Inspire community to implement CSI drivers
● Implement full integration of StatefulSets
● Automatic snapshot feature would be nice
● Try and document edge case scenarios
● Improve performance at high scale
???
Thank you
@mhmxs
Discoblocks.pptx.pdf

More Related Content

Similar to Discoblocks.pptx.pdf

NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
Ruslan Meshenberg
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
DoKC
 
Deep dive into OpenStack storage, Sean Cohen, Red Hat
Deep dive into OpenStack storage, Sean Cohen, Red HatDeep dive into OpenStack storage, Sean Cohen, Red Hat
Deep dive into OpenStack storage, Sean Cohen, Red Hat
Sean Cohen
 

Similar to Discoblocks.pptx.pdf (20)

NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
 
RubiX
RubiXRubiX
RubiX
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
 
OpenNebulaConf2018 - Is Hyperconverged Infrastructure what you need? - Boyan ...
OpenNebulaConf2018 - Is Hyperconverged Infrastructure what you need? - Boyan ...OpenNebulaConf2018 - Is Hyperconverged Infrastructure what you need? - Boyan ...
OpenNebulaConf2018 - Is Hyperconverged Infrastructure what you need? - Boyan ...
 
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowOpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
Experiences sharing about Lambda, Kinesis, and Postgresql
Experiences sharing about Lambda, Kinesis, and PostgresqlExperiences sharing about Lambda, Kinesis, and Postgresql
Experiences sharing about Lambda, Kinesis, and Postgresql
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
Scaling Up Logging and Metrics
Scaling Up Logging and MetricsScaling Up Logging and Metrics
Scaling Up Logging and Metrics
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)
 
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookLinux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech day
 
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOceanCeph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOcean
 
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo..."Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
 
OpenVZ Linux Containers
OpenVZ Linux ContainersOpenVZ Linux Containers
OpenVZ Linux Containers
 
Rook - cloud-native storage
Rook - cloud-native storageRook - cloud-native storage
Rook - cloud-native storage
 
London Ceph Day Keynote: Building Tomorrow's Ceph
London Ceph Day Keynote: Building Tomorrow's Ceph London Ceph Day Keynote: Building Tomorrow's Ceph
London Ceph Day Keynote: Building Tomorrow's Ceph
 
Deep dive into OpenStack storage, Sean Cohen, Red Hat
Deep dive into OpenStack storage, Sean Cohen, Red HatDeep dive into OpenStack storage, Sean Cohen, Red Hat
Deep dive into OpenStack storage, Sean Cohen, Red Hat
 

More from Richárd Kovács

More from Richárd Kovács (6)

Crossplane and a story about scaling Kubernetes custom resources.pdf
Crossplane and a story about scaling Kubernetes custom resources.pdfCrossplane and a story about scaling Kubernetes custom resources.pdf
Crossplane and a story about scaling Kubernetes custom resources.pdf
 
eBPF in the view of a storage developer
eBPF in the view of a storage developereBPF in the view of a storage developer
eBPF in the view of a storage developer
 
Golang dot-testing-lite
Golang dot-testing-liteGolang dot-testing-lite
Golang dot-testing-lite
 
I wanna talk about nsenter
I wanna talk about nsenterI wanna talk about nsenter
I wanna talk about nsenter
 
First impression of the new cloud native programming language ballerina
First impression of the new cloud native programming language ballerinaFirst impression of the new cloud native programming language ballerina
First impression of the new cloud native programming language ballerina
 
Golang dot-testing
Golang dot-testingGolang dot-testing
Golang dot-testing
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Discoblocks.pptx.pdf

  • 2. Boring slide ● At work ○ Staff Kubernetes Integration Engineer ○ @Ondat (former StorageOS) ○ Operator, Scheduler, Controller and Automation ● At IT space ○ Many years of DevOps, cloud and containerization ○ Several years of Go, Java, so on ■ (why others than BASH exists?) ○ OSS devotee ○ Known as @mhmxs
  • 6. Ondat - Key features ● Built-in compression ● Encryption at rest ● Replication ● Data locality ● Shared volumes ● Snapshots ● Storage pooling ● Topologies ● Web Portal ● Free community edition [unlimited clusters, nodes and 1TB capacity] ● Rolling-upgrades - Tech preview
  • 7. Persistent Volumes ● Implementation details are out of scope for Kubernetes ● Container Storage Interface [CSI] ○ Runs on “every” node, Kubelet calls via Unix socket ○ Plugin capabilities endpoint ○ Provision, Attach, Resize, Snapshot ○ Most runs in privileged mode ○ Dependency out of Devs control
  • 8. Persistent Volumes ● storage.k8s.io.StorageClass/v1 ○ Cluster wide resource ○ Defines common (low level) details of Persistent Volumes ■ Provisioner: ID of CSI driver ■ Parameters: passed to CSI driver ■ Reclaim policy: Retain, Delete ■ Allow volume expansion ■ Mount options ■ Volume binding mode: Immediate, WaitForFirstConsumer ○ Usually managed by Ops team
  • 9. Persistent Volumes ● core.PersistentVolumeClaims/v1 ○ Namespaced resource ○ Still not the volume itself (template) ○ Defines details of Persistent Volumes ■ Storage class or default ■ Access mode: ● ReadWriteOnce - RW single node ● ReadWriteOncePod -RW single pod ● ReadOnlyMany - R multi node ● ReadWriteMany - RW multi node
  • 10. Persistent Volumes ■ Volume mode: Filesystem, Block ■ Capacity ■ Selector: matching PersistentVolume ● Both direction works: PVC->PV, PV/Snapshot <-PVC ● PVC with a non-empty selector can't have a PV dynamically provisioned for it. ○ Yes, you are right, PVC maintainer has to know CSI driver details ○ Usually managed by Dev team
  • 11. Persistent Volumes ● core.PersistentVolume/v1 ○ Cluster wide resource ○ No direct connection with workload ○ Full with deprecated in-tree plugins ■ Host path ■ Local ■ CSI ○ Where data lives ○ Dynamic provisioning ■ Managed by CSI driver ○ Static provisioning ■ Managed by Ops team
  • 13. Persistent Volumes ● storage.k8s.io.VolumeAttachment/v1alpha1 ○ Namespaced resource ○ Binds volume to exact node ○ Usually managed by ??? team - collaboration ■ Attacher - depends on CSI driver ■ Nodename - needs infra knowledge ■ PVC name - known by Devs
  • 15. Difficulties ● Hard to be infrastructure independent ○ Different environments has different storage backends ○ Different storage backends needs different manifests ● Knowledge/permission gaps ○ Developers has to know different storage backends ○ Developers has to raise tickets to create cluster resources ● Manifest maintenance ○ Overlaying or templating, that is the question ● Scaling ○ Needs extra care on wide spectrum: ■ Manual ■ … ■ Full GitOps pipeline [monitoring, trigger, update, push, pull, apply]
  • 16. ???
  • 18. Discoblocks way ● Create a DiskConfig object per: ○ Environment ○ Workload ○ Storage speed ○ Storage capacity ○ Mount point ○ Node selector ○ Access mode ○ Availability mode ○ Availability zone ○ Auto-scaling policy ○ Mix of the above ● Enjoy automatic volume management and both horizontal and vertical auto-upscaling
  • 19. Create your workload as usual: kubectl create deployment ––image=nginx nginx
  • 21. Demo
  • 24. Downside ● Not production ready at the moment ● Only AWS EBS and Ondat CSI drivers are supported at the moment ○ New driver is a few bytes of “WebAssembly” ○ Bring Your Own Driver-Integration ● Not every application supports numeric order of directories ● StatefulSets support is incomplete ● Not well documented
  • 25. ● Not production ready at the moment ● Only AWS EBS and Ondat CSI drivers are supported at the moment ○ New driver is a few bytes of “WebAssembly” ○ Bring Your Own Driver-Integration ● Not every application supports numeric order of directories ● StatefulSets support is incomplete ● Not well documented
  • 26. Future plans ● Inspire community to implement CSI drivers ● Implement full integration of StatefulSets ● Automatic snapshot feature would be nice ● Try and document edge case scenarios ● Improve performance at high scale
  • 27. ???