Storage
& Kubernetes
for everyone
Ryan Wallner
Technical Evangelist, ClusterHQ
@RyanWallner : ryan@clusterhq.com
Ryan Wallner
Technical Evangelist
@ryanwallner
Avid outdoorsman, works in tech.
Goals for this Talk
- Containers / Persistence
- Volumes / Docker Volumes
- Kubernetes Volumes
- Demo
- Q/A
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
"Stateful" Container
- Secrets - public/private keys, password, etc
- Data - databases, sharded, clustered etc.
- Logs - to collect support bundles, run analytics for data mining, etc.
"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)
Kubernetes Volumes
- emtpyDir
- hostPath
- gcePersistentDisk
- awsElasticBlockStore
- nfs
- iscsi
- flocker
- rbd
- glusterfs
- secret
- persistentVolumeClaim
- gitrepo
- downwardAPI
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
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
-
-
Pluggable
-
Amazon EBS
-
EMC
-
VMWare
-
NetApp
-
Huawei
-
OpenStack Cinder
-
Dell
-
Hedvig
-
Saratoga Speed
-
Nexenta
-
Ceph
-
Demo
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
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
high availability
THANK YOU
Thanks to Digital Ocean
We're Hiring!
@RyanWallner
Ryan@clusterhq.com
@clusterhq
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,541