This is a list of resources for all thingz stateful apps and tooling in and for Kubernetes. I did an initial dump of my bookmarks here but would really appreciate it if you heavily PR it, or if you don't feel comfortable doing this, at least raise an issue for what's missing. If you send in suggestions or update the resources directly, please also add yourself to the list of contributors using a website, an mail address or a Twitter handle to sign off.
Note: when you read in-tree it means it's part of the Kubernetes source code, otherwise we call it 3rd-party, that is, using some kind of Kubernetes extensibility mechanism.
Official Kubernetes docs and specifications.
- Volumes
- Configuring a pod to use a volume
- Persistent Volumes (PVs)
- Configuring a pod to use a PV
- Dynamically provisioning PVs via storage classes
- 01/2019: Highly-Available Stateful Workloads on Kubernetes with SAN storage
- 01/2019: Container Storage Interface (CSI) for Kubernetes GA
- 08/2018: Dynamically Expand Volume with CSI and Kubernetes
- 06/2018: How to write a Container Storage Interface (CSI) plugin
- 04/2018: Container Storage Interface (CSI) for Kubernetes Goes Beta
- 01/2018: Introducing Container Storage Interface (CSI) Alpha for Kubernetes
- 12/2017: Troubleshooting: Unable to mount volumes for pod because “volume is already exclusively attached to one node and can’t be attached to another”
- 12/2017: A Basic Guide to Kubernetes Storage
- 05/2017: Kubernetes: State and Storage
- 10/2016: Dynamic Provisioning and Storage Classes in Kubernetes
- HPE Storage for Containers Workshop at KubeCon US 2018: tutorial, slides
- Stateful Applications in Kubernetes: Ready for Production!
- Approaches for duplicating Kubernetes storage with Gluster
- Persistent Storage with Kubernetes in Production - Which Solution and Why?
- Kubernetes Storage Lingo 101 - Saad Ali, Google (Beginner Skill Level)
- Tutorial: Introduction to Stateful Applications on Kubernetes
- Container Engine: Storage Classes & Dynamic Provisioning in Kubernetes
- Using Kubernetes Local Storage for Scale-Out Storage Services
- Intro to Container Storage Interface (CSI)
-
Public cloud
- Amazon EKS Storage Classes
- Google GKE Storage
- Microsoft Azure AKS Persistent Volumes
-
On-premises and cross-cloud
- CephRBD
- GlusterFS
- MapR Data Fabric for Kubernetes
- OpenEBS
- OpenStack Cinder
- Portworx
- Quobyte
- Rook
- StorageOS
- Stork
- NetApp Trident
- Elastifile
- Openio
- HPE
- Docker FlexVolume driver Dory
- Blockbridge
- Hedvig
- EMC REX-Ray
- Virtuozzo
- Arrikto
- Reduxio
-
Chaos Engineering frameworks
- StatefulSets
- Run a Single-Instance Stateful Application
- Controller
- Custom Resources
- Extend the Kubernetes API with custom resources
- 10/2018: KubeDirector: The easy way to run complex stateful applications on Kubernetes
- 09/2018: How to Install Redis Enterprise Clusters Using Operators on OpenShift
- 08/2018: Getting Started with Apache Kafka and Kubernetes
- 08/2018: Getting started with MongoDB Enterprise Operator for Kubernetes
- 06/2018: Kubernetes StatefulSet In Action
- 05/2018: A complete guide to Kubernetes Operator SDK
- 05/2018: Introducing the Operator Framework: Building Apps on Kubernetes
- 05/2018: PostgreSQL Kubernetes: How to run HA Postgres on Kubernetes
- 04/2018: Comparing Kubernetes Operator Pattern with alternatives
- 04/2018: Kubernetes Persistent Volumes with Deployment and StatefulSet
- 04/2018: How to run HA MongoDB on Kubernetes
- 03/2018: Why Kubernetes Operators are a game changer
- 03/2018: Introducing the Oracle MySQL Operator for Kubernetes
- 12/2017: Kubernetes Elasticsearch Operator
- 08/2017: Kubernetes WordPress: How to run HA WordPress on Kubernetes
- 08/2017: MySQL Kubernetes: deploying and running MySQL on Kubernetes using statefulsets and kops
- 03/2017: PostgreSQL Operator for Kubernetes
- 03/2017: A new “Kafka” novel : the OpenShift & Kubernetes deployment
- 03/2017: Rook Operator: First class storage for Kubernetes
- 02/2017: Deploying PostgreSQL Clusters using StatefulSets
- 02/2017: Two days of pain or how I deployed GlusterFS to Kubernetes
- 01/2017: Running MongoDB on Kubernetes with StatefulSets
- 12/2016: Hacker News thread on StatefulSet: Run and Scale Stateful Applications Easily in Kubernetes
- 11/2016: Original CoreOS Operators launch explainer
- CI/CD, Kubernetes, and Databases: Better Together [Video, Slides]
- High Availability for Stateful GKE Workloads
- Why You Care About Kubernetes Operators
- A Kubernetes Operator for PostgreSQL - Architecture and Design
- Elasticsearch on Kubernetes
- Datastores
- Vitess, a database clustering system for horizontal scaling MySQL
- Kafka
- MariaDB Galera Helm chart
- Operators
- KubeDB - Run production-grade databases easily on Kubernetes
- Operator SDK
- Awesome Operators in the Wild
- Kanister - An Operator Focused on App-Level Data Management
- Node Disk Manager for Kubernetes
- Introducing the Confluent Operator: Apache Kafka on Kubernetes Made Simple
- KubeDirector
- The MySQL Operator - creates, configures and manages MySQL clusters running on Kubernetes
- None yet
- 09/2018: How to backup and restore MySQL on Red Hat OpenShift
- 05/2018: Recovering a StatefulSet from AWS EBS Snapshots
- KubeDB - Run production-grade databases easily on Kubernetes
- Kanister - Cross-data service backup and restore
- Data Protection for Containers with HPE Nimble Storage: Part I, Backup Part II, Restore
- Portworx PX-Enterprise