OpenAFS as Persistent Storage inside Kubernetes using Container Storage Interface plugin for OpenAFS Yadavendra Yadav T odd DeSantis OpenAFS WorkShop 2019 Pittsburgh, US
• Application Modernization • Evolution of Container Agenda • Container Storage • Container Storage Interface • OpenAFS CSI Plugin • Demo
Monolithic
M i c r o s e r v i c e
Introduction to Container Introduction to Container
Containers and VMs Solve Different Problems Containers is more light and better performance: App1 App2 App3 • Portability : VM (Gigabytes) vs. Container (Megabytes), VMs are constraint to Hypervisor and hardware-emulation Bins/ Bins/ Bins/ • Performance : Containers can boot and restart in seconds, compared to App1 App2 App3 Libs Libs Libs minutes for virtual machines. And no extra overhead of a hypervisor and guest OS makes containers consume less CPU and memory. Bins/ Bins/ Bins/ OS OS OS • Management cost : Each VM requires a full functional operating system, Libs Libs Libs and then extra management for them. Standalone executable package of software with no overhead of OS. Hypervisor Container Engine Advantage to use containers: Host Operating System Host Operating System • Workload Isolation (less CPU/memory overhead and faster deployment than VMs) Host Server Host Server • Resource limitations (cgroups can constrain containers’ memory and CPU usage) • Layered image architecture such that each change to the package is tracked Virtual Machines Containers • Great to use container in DevOps, Batch processing, SaaS, Microservices etc Build once and Run anywhere
Kubernete s Architectu re
Containers are Ephemeral, Storage is Not
Block, File and Object Storage Block – Traditional storage is managed by OS i.e. LUN, DISK Which Array/Volume/LUN File –Unstructured data is managed with folders i.e. FILE SYSTEMS Which Directory/ Subdirectory/Filer Object – Higher growth data is unstructured and managed by APPLICATIONS
Container Storage
Local Host Stora ge
Storage Storage Host Applian Applian ce ce Dedicated storage
Distribu Distribu Hos Host ted File ted File t System System Distributed storage
Kubernetes Container Storage Persistent Persistent Volume Claim: Volumes: A Persistent A Persistent Volume Volume Claim (PV) is a piece of (PVC) is a storage in the request for cluster that has storage by a been provisioned by user. an administrator.
OpenAFS Dynamic Volume Provisioner ( Create & Mount Volume) 1GB OpenAF Mount S Developer claim POD claim Provisione r Create Volume Volume Bound pvc-72f93482-525d-x-x volume OpenAFS ( File system)
OpenAFS Dynamic Volume Provisioner ( Unmount & Delete Volume) Delete Applicati Un-Mount on Delete Developer POD claim claim Provisione r pvc-72f93482-525d-x-x volume OpenAFS ( File system)
Volume Lifecycle
Container Storage Plugin
K8s dynamic Provisioner Mesos Volume Docker Volume K8s fmexvolume Plugin Plugin Persi plugin K8s in-tree plugin Container Storage Interface Container Storage Interface
Container Storage Interface
Container Storage Interface
Container Storage Interface
OpenAFS PVC Creation Provisioner watch Worker Create Worker Worker Volume AFS 1GB AFS AFS OpenAF Plugin Plugin Plugin kubele kubele S kubele Master t t t OpenAF S Volume kubectl OpenAFS 1GB OpenAF S User
POD Creation Worker Worker POD Worker AFS AFS AFS Plugin Plugin Plugin kubele kubele Mount kubele Master Volume t t t OpenAF S watch Volume kubectl OpenAFS Create Pod User
POD Deletion Worker Worker POD Worker AFS AFS AFS Plugin Plugin Plugin kubele kubele Unmount kubele Master Volume t t t OpenAF S watch Volume kubectl OpenAFS Delete Pod User
Thank You 27
Recommend
More recommend