Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities...

61
Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018 Saad Ali & Nikhil Kasinadhuni Google

Transcript of Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities...

Page 1: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes Storage: Current Capabilities and Future OpportunitiesSeptember 25, 2018Saad Ali & Nikhil KasinadhuniGoogle

Page 2: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Agenda

● Google & Kubernetes● Kubernetes Volume Subs ys tem● Container Storage Interface (CSI)● Untapped Opportunities● Q&A

Page 3: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Google & Kubernetes

Page 4: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

“Google is living a few years in the future and sends

the rest of us messages,”

-- Doug Cutting, Hadoop founder, 2013WWGD?

Page 5: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Humble Beginnings

Page 6: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Humble Beginnings

Google File Sys tem

Page 7: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...
Page 8: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Compute

Compute Engine

App Engine

Container Engine

Container Registry

Cloud Functions

Networking

Cloud Virtual Network

Cloud Load Balancing

Cloud CDN

Cloud Interconnect

Cloud DNS

Big Data

BigQuery Cloud Dataflow

Cloud Dataproc

Cloud Datalab

Cloud Pub/Sub Genomics

Storage and Databases

Cloud Storage

Cloud Bigtable

Cloud Datastore

Cloud SQL Cloud Spanner

Identity & Security

Cloud IAM Cloud Resource Manager

Cloud Security Scanner

KeyManagement

Service

BeyondCorp Data Loss Prevention

Identity -Aware Proxy

Security Key Enforcement

Persistent Disk

Machine Learning

Cloud Machine Learning

Cloud Vision API

Cloud Speech API

Cloud Natural Language API

Cloud Translation

API

CloudJobs API

Networking

Page 9: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Cattle Not Pets

Page 10: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...
Page 11: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Compute

Compute Engine

App Engine

Container Engine

Container Registry

Cloud Functions

Networking

Cloud Virtual Network

Cloud Load Balancing

Cloud CDN

Cloud Interconnect

Cloud DNS

Big Data

BigQuery Cloud Dataflow

Cloud Dataproc

Cloud Datalab

Cloud Pub/Sub Genomics

Storage and Databases

Cloud Storage

Cloud Bigtable

Cloud Datastore

Cloud SQL Cloud Spanner

Identity & Security

Cloud IAM Cloud Resource Manager

Cloud Security Scanner

KeyManagement

Service

BeyondCorp Data Loss Prevention

Identity -Aware Proxy

Security Key Enforcement

Persistent Disk

Machine Learning

Cloud Machine Learning

Cloud Vision API

Cloud Speech API

Cloud Natural Language API

Cloud Translation

API

CloudJobs API

Networking

Page 12: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...
Page 13: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...
Page 14: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes Storage Layer

Page 15: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

What do these words mean and how do they fit together?

Flex CSI

In-tree

Out-of-tree

Persistent VolumesPersistent Volume Claims

LocalStorage Classes

Dynamic Provisioning

Driver

Plugin

Volume

BlockFile

Object

Remote

Ephemeral

Stateful

Stateless

Page 16: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes PrincipleWorkload

Portability

Page 17: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

Kubernetes Goal

● Abs tract away clus ter deta ils● Decouple apps from infras tructure

To enable us ers to

● Write once, run anywhere (workload portability!)

● Avoid vendor lock-in

Page 18: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

Node 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

Node 3

Kernel/ OS

Hardware

Node 2

Kernel/ OS

Hardware

App 2 App 3 App 4

Page 19: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

GCE Ins tance 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

GCE Ins tance 3

Kernel/ OS

Hardware

GCE Ins tance 2

Kernel/ OS

Hardware

App 2 App 3 App 4

Page 20: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

EC2 Ins tance 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

EC2 Ins tance 3

Kernel/ OS

Hardware

EC2 Ins tance 2

Kernel/ OS

Hardware

App 2 App 3 App 4

Page 21: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

Bare Metal 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

Bare Metal 3

Kernel/ OS

Hardware

Bare Metal 2

Kernel/ OS

Hardware

App 2 App 3 App 4

Page 22: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

Node 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

Node 3

Kernel/ OS

Hardware

Node 2

Kernel/ OS

Hardware

App 2 App 3 App 4apiVersion: apps/v1kind: ReplicaSetmetadata:

name: frontendspec:

replicas: 2template:

spec:containers:- name: php-redis

image: gcr.io/google_samples/gb-frontend:v3

Page 23: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes: Workload Portability

Node 1

App 1

Kubernetes Clus ter

Kernel/ OS

Hardware

Node 3

Kernel/ OS

Hardware

Node 2

Kernel/ OS

Hardware

App 2 App 3 App 4

Frontend Pod

Replica 1

Frontend Pod

Replica 2

Page 24: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Problem with Containers and State

What about stateful apps?

Pod and ReplicaSet abs tract compute and memory.

1. Containers are ephemeral: no way to pers is t s ta te○ Conta iner termination/ cras hes res ult in los s of da ta○ Can’t run s ta teful applica tions

2. Containers can’t s hare data between each other.

ConsumersContent Manager

File Puller

WebServer

Pod

Page 25: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Challenges with Abstracting Storage

● Time series databases○ InfluxDB, Graphite, etc.

● File Storage○ NFS, SMB, etc.

● Block Storage○ GCE PD, AWS EBS, iSCSI, Fibre Channel, etc.

● File on Block Storage● And more!

So many different types of s torage

● Object Stores○ AWS S3, GCE GCS, etc.

● SQL Databases○ MySQL, SQL Server, Pos tgres , etc.

● NoSQL Databases○ MongoDB, Elas ticSearch, etc.

● Pub Sub Sys tems○ Apache Kafka, Google Cloud Pub/ Sub,

AWS SNS, etc.

What do we focus on?

Page 26: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

What do we focus on?

Out of scope:

● Object Stores○ AWS S3, GCE GCS, etc.

● SQL Databases○ MySQL, SQL Server, Pos tgres , etc.

● NoSQL Databases○ MongoDB, Elas ticSearch, etc.

● Pub Sub Sys tems○ Apache Kafka, Google Cloud Pub/ Sub, AWS

SNS, etc.● Time series databases

○ InfluxDB, Graphite, etc.● etc.

In s cope:

● File Storage○ NFS, SMB, etc.

● Block Storage○ GCE PD, AWS EBS, iSCSI, Fibre

Channel, etc.

● File on Block Storage

Page 27: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

What do we focus on?

Out of scope:

● Object Stores○ AWS S3, GCE GCS, etc.

● SQL Databases○ MySQL, SQL Server, Pos tgres , etc.

● NoSQL Databases○ MongoDB, Elas ticSearch, etc.

● Pub Sub Sys tems○ Apache Kafka, Google Cloud Pub/ Sub, AWS

SNS, etc.● Time series databases

○ InfluxDB, Graphite, etc.● etc.

In s cope:

● File Storage○ NFS, SMB, etc.

● Block Storage○ GCE PD, AWS EBS, iSCSI, Fibre

Channel, etc.

● File on Block Storage

Data Path Standardized (Posix, SCSI)

Data PathNot Standardized,

yet

Page 28: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes Volume Plugins

A way to reference block device or mounted filesystem (poss ibly with some data in it)

Access ible by all containers in pod

Volume plugins specify

● How volume is s etup in pod● Medium that backs it

Lifetime of volume is s ame as the pod or longer

ConsumersContent Manager

File Puller

WebServer

Pod

Page 29: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes has many volume pluginsRemote Storage● GCE Pers is tent Dis k● AWS Elas tic Block Store● Azure File Storage● Azure Data Dis k● Dell EMC ScaleIO● iSCSI● Flocker● NFS● vSphere● Glus terFS● Ceph File and RBD● Cinder● Quobyte Volume● FibreChannel● VMware Photon PD

Kubernetes Volume PluginsEphemeral Storage● EmptyDir● Expos e Kubernetes API

○ Secret○ ConfigMap○ DownwardAPI

Local● Hos t path● Local Pers is tent Volume (Beta)

Out-of-Tree● Flex (exec a binary)● CSI (Beta)● Other

Page 30: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Temp scratch file space from host machine

Data exis ts only for lifecycle of pod.

Can only be referenced “in-line” in pod definition not via PV/ PVC.

Volume Plugin: EmptyDir

Ephemeral Storage ConsumersContent Manager

File Puller

WebServer

EmptyDir

Pod

Page 31: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Temp scratch file space from host machine

Data exis ts only for lifecycle of pod.

Can only be referenced “in-line” in pod definition not via PV/ PVC.

Volume Plugin: EmptyDir

Ephemeral StorageapiVersion: v1kind: Podmetadata:name: test-pod

spec:containers:- image: k8s.gcr.io/container1name: container1volumeMounts:- mountPath: /sharedname: shared-scratch-space

- image: k8s.gcr.io/container2name: container2volumeMounts:- mountPath: /sharedname: shared-scratch-space

volumes:- name: shared-scratch-spaceemptyDir: {}

Page 32: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Ephemeral Storage

Built on top of EmptyDir:

● Secret Volume● ConfigMap Volume● DownwardAPI Volume

Populate Kubernetes API as files in to an EmptyDir

Page 33: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes PrincipleMeet the user

where they are

Page 34: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Ephemeral Storage

Built on top of EmptyDir:

● Secret Volume● ConfigMap Volume● DownwardAPI Volume

Populate Kubernetes API as files in to an EmptyDir

Page 35: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Data persists beyond lifecycle of any pod

Referenced in pod either in-line or via PV/ PVC

Examples :● GCE Pers is tent Dis k● AWS Elas tic Block Store● Azure Data Dis k● iSCSI● NFS● Glus terFS● Cinder● Ceph File and RBD● And more!

Remote Storage

Page 36: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Remote Storage

Kubernetes will automatically:

● Attach volume to node● Mount volume to pod

apiVersion: v1kind: Podmetadata:name: sleepypod

spec:volumes:- name: datagcePersistentDisk:pdName: panda-diskfsType: ext4

containers:- name: sleepycontainerimage: gcr.io/google_containers/busyboxcommand:- sleep- "6000"

volumeMounts:- name: datamountPath: /datareadOnly: false

Page 37: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Remote Storage

Kubernetes will automatically:

● Attach volume to node● Mount volume to pod

apiVersion: v1kind: Podmetadata:name: sleepypod

spec:volumes:- name: datagcePersistentDisk:pdName: panda-diskfsType: ext4

containers:- name: sleepycontainerimage: gcr.io/google_containers/busyboxcommand:- sleep- "6000"

volumeMounts:- name: datamountPath: /datareadOnly: false

Page 38: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Kubernetes PrincipleWorkload

Portability

Page 39: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Remote Storage

Pod yaml is no longer portable acros s clus ters !!

apiVersion: v1kind: Podmetadata:name: sleepypod

spec:volumes:- name: datagcePersistentDisk:pdName: panda-diskfsType: ext4

containers:- name: sleepycontainerimage: gcr.io/google_containers/busyboxcommand:- sleep- "6000"

volumeMounts:- name: datamountPath: /datareadOnly: false

Page 40: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Persistent Volumes & Persistent Volume Claims

Pers is tentVolume and Pers is tentVolumeClaim Abs traction

Decouples s torage implementation from s torage cons umption

Page 41: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

PersistentVolumeapiVersion: v1kind: PersistentVolumemetadata:name : myPV2

spec:accessModes:- ReadWriteOncecapacity:storage: 100Gi

persistentVolumeReclaimPolicy: RetaingcePersistentDisk:fsType: ext4pdName: panda-disk2

apiVersion: v1kind: PersistentVolumemetadata:name : myPV1

spec:accessModes:- ReadWriteOncecapacity:storage: 10Gi

persistentVolumeReclaimPolicy: RetaingcePersistentDisk:fsType: ext4pdName: panda-disk

Page 42: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

PersistentVolumeClaimapiVersion: v1kind: PersistentVolumeClaimmetadata:

name: mypvcnamespace: testns

spec:accessModes:- ReadWriteOnceresources:

requests:storage: 100Gi

Page 43: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

PV to PVC Binding$ kubectl create -f pv.yaml persistentvolume "pv1" createdpersistentvolume "pv2" created

$ kubectl get pvNAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGEpv1 10Gi RWO Available 1mpv2 100Gi RWO Available 1m

$ kubectl create -f pvc.yaml persistentvolumeclaim "mypvc" created

$ kubectl get pvNAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGEpv1 10Gi RWO Available 3mpv2 100Gi RWO Bound testns/mypvc 3m

Page 44: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Remote Storage

Volume referenced via PVC

Pod YAML is portable acros s clus ters again!!

apiVersion: v1kind: Podmetadata:

name: sleepypodspec:

volumes:- name: data

gcePersistentDisk:pdName: panda-diskfsType: ext4

containers:- name: sleepycontainer

image: gcr.io/google_containers/busyboxcommand:- sleep- "6000"

volumeMounts:- name: data

mountPath: /datareadOnly: false

volumes:- name: datapersistentVolumeClaim:

claimName: mypvc

Page 45: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Dynamic Provisioning

Clus ter admin pre-provis ioning PVs is painful and was teful.

Dynamic provis ioning creates new volumes on-demand (when reques ted by us er).

Eliminates need for clus ter adminis tra tors to pre-provis ion s torage.

Page 46: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Dynamic Provisioning

Dynamic provis ioning “enabled” by crea ting StorageClas s .

StorageClas s defines the parameters us ed during crea tion.

StorageClas s parameters opaque to Kubernetes s o s torage providers can expos e any number of cus tom parameters for the clus ter admin to us e.

kind: StorageClassapiVersion: storage.k8s.io/v1metadata:

name: slowprovisioner: kubernetes.io/gce-pdparameters:

type: pd-standard--kind: StorageClassapiVersion: storage.k8s.io/v1metadata:

name: fastprovisioner: kubernetes.io/gce-pdparameters:

type: pd-ssd

Page 47: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Dynamic Provisioning

Us ers cons ume s torage the s ame way: PVC

“Selecting” a s torage clas s in PVC triggers dynamic provis ioning

apiVersion: v1kind: PersistentVolumeClaimmetadata:

name: mypvcnamespace: testns

spec:accessModes:- ReadWriteOnceresources:requests:storage: 100Gi

storageClassName: fast

Page 48: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Dynamic Provisioning$ kubectl create -f storage_class.yaml storageclass "fast" created

$ kubectl create -f pvc.yamlpersistentvolumeclaim "mypvc" created

$ kubectl get pvc --all-namespacesNAMESPACE NAME STATUS VOLUME CAPACITY ACCESSMODES AGEtestns mypvc Bound pvc-331d7407-fe18-11e6-b7cd-42010a8000cd 100Gi RWO 6s

$ kubectl get pv pvc-331d7407-fe18-11e6-b7cd-42010a8000cdNAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGEpvc-331d7407-fe18-11e6-b7cd-42010a8000cd 100Gi RWO Delete Bound testns/mypvc 13m

Page 49: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Dynamic Provisioning

Volume referenced via PVCapiVersion: v1kind: Podmetadata:

name: sleepypodspec:

volumes:- name: data

persistentVolumeClaim:claimName: mypvc

containers:- name: sleepycontainer

image: gcr.io/google_containers/busyboxcommand:

- sleep- "6000"

volumeMounts:- name: data

mountPath: /datareadOnly: false

Page 50: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Hostpath Volumes

Expos e a directory on the hos t machine to pod

What happens if your pod is moved to a different node?

Don't us e hos tpath (unles s you know what you are doing)!!

Page 51: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Expose a local block or file as a PersistentVolume

Reduced durability

Us eful for building dis tributed s torage s ys tems

Us eful for high performance caching

Kubernetes takes care of data gravity

Referenced via PV/ ”PVC s o workload portability is maintained

Local Pers is tent Volumes

Page 52: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

In-Tree Volume Plugins

Kubernetes “In-tree” Volume Plugins are awes ome =)

Powerful abs traction for file and block s torage

Automate provis ioning, a ttaching, mounting, and more!

Storage portability via PV/ PVC/ StorageClas s objects

Page 53: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

In-Tree Volume Plugins

Kubernetes “In-tree” Volume Plugins are painful =(

● Painful for Kubernetes Developers○ Tes ting and mainta ining externa l code○ Bugs in volume plugins affect critica l Kubernetes components○ Volume plugins get full privileges of kubernetes components (kubelet and kube-controller-

manager)

● Painful for Storage Vendors○ Dependent on Kubernetes releas es○ Source code forced to be open s ource

Page 54: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Out-of-Tree Volume Plugins

Container Storage Interface (CSI) - Beta in v1.10; Targeting GA in v1.13● Follows in the s teps of CRI and CNI● Collaboration with other clus ter orches tra tion s ys tems● CSI makes Kubernetes volume layer truly extens ible● Plugins may be containerized

Flex Volumes ● Legacy a ttempt a t out-of-tree● Exec bas ed● Deployment difficult● Does n't s upport clus ters with no mas ter acces s

Page 55: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Untapped Opportunities

Page 56: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Legacy Software Local Execution

Edge / IoT Cloud bursting

Ecommerce site Catalog, ERP

Warehouse

Factory

Branch

Augmented Services

On-Prem Cloud

Cloud StorageCloud

ML

Big Query

Jurisdictional / PII

Europe

Secure records

US

IT policy

Application Portability

Page 57: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Snapshot Portability

Page 58: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Unified Observability

Page 59: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Uniform Management

Page 60: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

“The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it."

- Mark Weiser, The Computer for the 21st Century

Page 61: Kubernetes Storage: Current Capabilities and Future ... · Kubernetes Storage: Current Capabilities and Future Opportunities September 25, 2018. Saad Ali & Nikhil Kasinadhuni ...

Questions?

Get Involved!● Conta iner Storage Interface Community

○ github.com/ conta iner-s torage-interface/ community○ Meeting every week, Wednes days a t 9 AM (PT)○ conta iner-s torage-interface-community@googlegroups .com

● Kubernetes Storage Specia l-Interes t-Group (SIG)○ github.com/ kubernetes / community/ tree/ mas ter/ s ig-s torage○ Meeting every 2 weeks , Thurs days a t 9 AM (PST)○ kubernetes -s ig-s torage@googlegroups .com