Workloads • Cassandra, MongoDB, GlusterFS, etc. • Replicate sharded data for high availability, fault tolerance • Critical infrastructure / applications • Data locality for performance • Data gravity • Execute on where the data is today • High performance tuning
stable identity and volumes • Pod Disruption Budget for controlled disruption • Pod Affinity, Anti-Affinity for co-location, spreading (1.6 beta) • Pod Priority and Preemption (1.8 alpha)
have a lot of problems • Not portable • Security risk! apiVersion: v1 kind: Pod metadata: name: my-pod spec: nodeName: node-1 volumes: - name: data hostPath: path: /mnt/some-disk containers: ...
each node • Custom scheduler and/or operator • Custom local disk reservation and lifecycle manager Consequences • Can’t leverage existing Kubernetes features • StatefulSets, scaling, rolling updates, etc. • High barrier to entry for adopting Kubernetes
User’s storage requests • “I need 100GB of fast storage” • PV: Cluster’s specific volume implementation • “I have a 100GB local volume available on node-1 at /mnt/disks/ssd0” User PVClaim Pod Cluster Admin PersistentVolumes
NodeAffinity • Scheduler logic for data gravity 1.9 Alpha • Perform PVC/PV binding during pod scheduling User PVClaim Pod Cluster Admin PersistentVolumes
block devices in line with Kube primitives • Enable durable access to raw block storage • Provide flexibility for users/vendors to support all storage types • Prior to v1.8 all users got a volume with a filesystem • Break GitHub
and local storage! Replicated MySQL example using StatefulSets: https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ Try it out yourself: • Follow local volume user guide to bring up a cluster with some local disks • Take existing StatefulSet examples and Helm charts, and change the StorageClassName in the PersistentVolumeClaim to your local StorageClass
affinity and smarter scheduling • Consumption of statically provisioned raw block persistent volumes for Fibre Channel Building blocks for stateful, distributed, performant workloads