Storage
& Kubernetes
for everyone
Ryan Wallner
Technical Evangelist, ClusterHQ
@RyanWallner : ryan@clusterhq.com
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160288/7913449.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160290/docker-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2171867/4939a385-53b9-4ae7-94ae-6016a74995de.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2171869/d012b9f5-d174-42ee-a838-eb99ecf21957.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2171879/b4373572-37f6-4420-9614-90b16b099d72.jpeg)
Ryan Wallner
Technical Evangelist
@ryanwallner
Avid outdoorsman, works in tech.
Goals for this Talk
- Containers / Persistence
- Volumes / Docker Volumes
- Kubernetes Volumes
- Demo
- Q/A
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2172356/Untitled-1263.png)
Container
- Container = Process and Resource Isolation
- Linux Process (think of as light weight app vm)
- Does not need a hypervisor, shares a linux kernel
- Enables new architectures such as Microservices
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2176027/containerwhatis.jpg)
"Stateful" Container
- Secrets - public/private keys, password, etc
- Data - databases, sharded, clustered etc.
- Logs - to collect support bundles, run analytics for data mining, etc.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2172385/funny-pictures-chipmunk-has-storage.jpg)
"Stateless" Container
- Nothing to Disk
- Web Front-End
- Can stop and start as many containers as you like
- How http is stateless
- Container is ephemeral
Container Volumes
-
Inside the container
- docker image
- ephemeral
-
Outside UFS
- Docker (-v /myvol)
- emptyDir (k8s)
-
Host Filesystem
- Docker bind mounts (-v /tmp:/tmp)
- hostPath (k8s)
-
Shared/External
- Docker --volume-driver=
- Flocker (k8s,docker,mesos)
- gcePersistentDisk (k8s)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2172533/containers.png)
Kubernetes Volumes
- emtpyDir
- hostPath
- gcePersistentDisk
- awsElasticBlockStore
- nfs
- iscsi
- flocker
- rbd
- glusterfs
- secret
- persistentVolumeClaim
- gitrepo
- downwardAPI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
Kubernetes Volumes
-
emtpyDir
- temporary
-
hostPath
- bind mounts
- on host, in container
- doesn't scale
-
gcePersistentDisk
- standard or SSD
- can be RO across PODS
-
awsElasticBlockStore
- EBS for you POD
-
nfs
- Share must exist
- sync-and-share usecases
-
gitrepo
- auto clone repo to POD
-
downwardAPI
- writes requested data to text files in POD
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
Kubernetes
FLocker Volumes
-
Flocker (https://docs.clusterhq.com/en/latest/)
-
Manages - data volume lifecycle
-
Enables - Container + volume: atomic
-
Migrates - data volumes across hosts
-
Works - using container orchestrators
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
-
Pluggable
-
Amazon EBS
-
EMC
-
VMWare
-
NetApp
-
Huawei
-
OpenStack Cinder
-
Dell
-
Hedvig
-
Saratoga Speed
-
Nexenta
-
Ceph
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167819/flockerheroicon_2x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2172631/60546084.jpg)
Demo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167819/flockerheroicon_2x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167821/jmrT-coreos-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167827/55db51eefa3a1eca385bc326_awsblocks.png)
Orchestration
Scheduling
Networking
Service Discovery
Purpose Built OS
Security
Built-in Tooling
(docker, etcd, flannel, fleet)
Docker Volume Management
Automation
Mobility
Resiliency
Flexibility
1st Class Volumes
Reliability (mostly)
Public Cloud
Availability
What's In the stack?
https://github.com/wallnerryan/kube-aws-flocker
Example Application
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160289/Bt_pEfqCAAAiVyz.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167819/flockerheroicon_2x.png)
http://kubernetes.io/v1.1/examples/guestbook-go/README.html
- Partial vs Full resynchronization- http://redis.io/topics/replication
- redis persistance - http://redis.io/topics/persistence
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2167911/redis-dot-io.png)
high availability
THANK YOU
Thanks to Digital Ocean
We're Hiring!
@RyanWallner
Ryan@clusterhq.com
@clusterhq
![](https://s3.amazonaws.com/media-p.slid.es/uploads/396205/images/2160288/7913449.png)
More Info.
"High availability for you data with Kubernetes, Flocker and CoreOS"
By Ryan Wallner
"High availability for you data with Kubernetes, Flocker and CoreOS"
- 3,483