Chapter 10. Software-defined Storage and Storage Management for Containers Flashcards
What is Software-defined storage and what aims it to do?
- represents storage virtualization
- aims to seperate the underlying storage hardware from the software that manages and provisions it
What is the benefit of Software-defined Storage and what additional features can it provide?
- physical hardware from several sources can be combined, as a single storage pool
- additional: resiliency features like replication, erasure-coding or snapshots of the pooled resources
What access methods does SDN allow?
- File
- Block
- Object
What are examples for Software-Defined Storage implementations?
- Ceph
- Gluster
- MinIO
- OpenEBS
- TrueNAS
What is Ceph and what does it support?
- implementation for SDN
- open source distributed storage system
- provides object, filesystem and block storage in a single unified storage cluster
- flexible, highly reliable, easy to manage
What are volumes in Kubernetes and what are they used for?
- essentially a directory backed by a storage medium
- storage medium and its content are determined by the volume typ
- Kubernetes uses volumes to attach external storage to containers managed by pods
In what relations is a volume to containers and how long-lived are they?
- volume linked to a pod
- shared among containers of that pod
- volume lifetime same as pod
- data remains between container restarts
- deletion of pod looses all data as well
What is the new approach for storage plugins in Kubernetes?
- based on third party drivers implementing Container Storage Interface
What does the new storage plugins approach in Kubernetes mean?
- CSI (Container Storage Interface) requires the Kubernetes Operators to download and install the desired CSI driver when needed
What are some of the Volume Types supported by Kubernetes?
- azure Disk, to mount azure Data Disk on containers of a pod
- azuFile
- awsElasticBlockStorage
- cephfs: mount a CephFS volume on containers of a pod
- configMap: attack decoupled storage object, encapsulates configuration data, scripts, possibly entire filesystems
- hostPath: share a directory from the host with containers of a pod
- persistentVolumeClaim
- secret: encoded sensitive informations, such as password, keys, certificates, tokens etc
What does the persistent volume subsystem enable?
- provides APIs to manage and consume storage
- for management of volumes PersistentVolume (PV) is used
- for consumation of volumes PersistentVolumeClaim (PVC) is used
What are Persistent volumes (PVs) in Kubernetes? How are they provisioned?
- piece of storage in the cluster
- provisioned either by an administrator (statically) or dynamically using Storage Classes
- resource in a cluster just like node is as cluster resource
- are Volume plugins like regular volumes
- but lifecycle is independent of any inidividual pods that use PV
- API object captures details of the implementation of the storage
How does the dynamic storage provisioning of PV in Kubernetes work abstractly?
- by using the Storage Class resource
- via a PersistentVolumeClaim a user sends a request for dynamic PV creation, which gets wired to the StorageClass resource
What is a Persistent Volume Claime (PVC) in Kubernetes?
- request for storage by a user
- users request for PV resource based on size, access modes and volume type
- once a suitable PV is found, it is bound to PVC
- after a successful bind, the PVC can be used in a Pod to allow the containers access to the PV
What are the steps for PVC-request by users in Kubernetes?
- Dynamic or static provisioning of PVs
- user requests a claim (PVC)
- Once suitable PV is found, PV is bound to PVC
- after successful bind the PVC is mounted to a pod to allow containers access to the PV