This is a guest post, originally posted on Angelos Kolaitis‘ personal blog, reproduced here with his permission. Angelos is a MicroK8s software engineer at Canonical.
How we brought a universal, cluster-wide storage solution to MicroK8s.
Why is storage in Kubernetes hard?
Kubernetes is well-known as an open-source system for automating deployment, scaling and management of containerised applications. As such, it uses concepts such as Pods
and Deployments
to abstract away details regarding the underlying compute, networking and storage infrastructure.
Storage is abstracted as PersistentVolumes
(a volume that is provisioned in the underlying infrastructure) and PersistentVolumeClaims
(a claim for a pod that uses a persistent volume) resources. Typically, running a Kubernetes cluster also involves running a CSI provisioner, which watches for PersistentVolumeClaims
and automatically provisions the requested volumes.
There are a large number of CSI…