v2.0.0+incompatible Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2017 License: Apache-2.0 Imports: 17 Imported by: 0


CephFS Volume Provisioner for Kubernetes 1.5+

Using Ceph volume client

Test instruction

  • Build cephfs-provisioner and container image
go build cephfs-provisioner.go
docker build -t cephfs-provisioner .
  • Start Kubernetes local cluster

  • Create a Ceph admin secret

ceph auth get client.admin 2>&1 |grep "key = " |a^C '{print  $3'} |xargs echo -n > /tmp/secret
kubectl create secret generic ceph-secret-admin --from-file=/tmp/secret --namespace=kube-system
  • Start CephFS provisioner

Assume kubeconfig is at /root/.kube:

docker run -ti -v /root/.kube:/kube --privileged --net=host  cephfs-provisioner /usr/local/bin/cephfs-provisioner -master= -kubeconfig=/kube/config
  • Create a CephFS Storage Class

Replace Ceph monitor's IP in class.yaml with your own and create storage class:

kubectl create -f class.yaml
  • Create a claim
kubectl create -f claim.yaml
  • Create a Pod using the claim
kubectl create -f test-pod.yaml

Known limitations

  • Kernel CephFS doesn't work with SELinux, setting SELinux label in Pod's securityContext will not work.
  • Kernel CephFS doesn't support quota or capacity, capacity requested by PVC is not enforced or validated.
  • Currently each Ceph user created by the provisioner has allow r MDS cap to permit CephFS mount.


Inspired by CephFS Manila provisioner and conversation with John Spray


The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL