I have a gluster node and i did test heketi and it is creating volumes using it's cli.
This is my storage class:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: myglusterfs
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/glusterfs
allowVolumeExpansion: true
reclaimPolicy: Retain
parameters:
resturl: "http://x.x.x:8080"
restuser: "admin"
secretName: "heketi-secret"
secretNamespace: "default"
volumetype: "replicate:0"
volumenameprefix: "k8s-dev"
clusterid: "4d9a77f712zb12x57dd42477b993e9af"
When i create a sample PVC it will stuck on pending state:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mypvc Pending myglusterfs 5m11s
# kubectl describe pvc mypvc
Name: mypvc
Namespace: default
StorageClass: myglusterfs
Status: Pending
Volume:
Labels: <none>
Annotations: volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/glusterfs
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Mounted By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 14s (x10 over 6m9s) persistentvolume-controller Failed to provision volume with StorageClass "myglusterfs": failed to create volume: failed to create volume: see kube-controller-manager.log for details
When i see kube-controller-manager
pod logs it's looks like this:
1 event.go:291] "Event occurred" object="default/mypvc" kind="PersistentVolumeClaim" apiVersion="v1" type="Warning" reason="ProvisioningFailed" message="Failed to provision volume with StorageClass \"myglusterfs\": failed to create volume: failed to create volume: see kube-controller-manager.log for details"
The question is: How i can find out why the pvc is in pending mode for ever? where is detailed logs?
When there is only one node on gluster cluster the volume type must be none.
volumetype: "none"