[root@node-16 pv]#
[root@node-16 pv]# rbd create foo2 --size 8092
[root@node-16 pv]# rbd feature disable foo2 exclusive-lock, object-map, fast-diff, deep-flatten
[root@node-16 pv]# rbd info foo2
rbd image 'foo2':
size 7.9 GiB in 2023 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: 6dfd1caa6384
block_name_prefix: rbd_data.6dfd1caa6384
format: 2
features: layering
op_features:
flags:
create_timestamp: Sun Apr 26 14:20:20 2020
access_timestamp: Sun Apr 26 14:20:20 2020
modify_timestamp: Sun Apr 26 14:20:20 2020
[root@node-16 pv]#
[root@node-16 pv]# kubectl get secret
NAME TYPE DATA AGE
ceph-secret kubernetes.io/rbd 1 4d20h
db01-mysql Opaque 2 24m
[root@node-16 pv]#
[root@node-16 pv]# modprobe rbd
[root@node-16 pv]#
[root@node-16 pv]# rbd map foo2
/dev/rbd1
[root@node-16 pv]# mkfs.xfs -f /dev/rbd1
meta-data=/dev/rbd1 isize=512 agcount=8, agsize=259072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2071552, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0003
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteOnce
rbd:
monitors:
- 10.83.35.10:6789,10.83.35.11:6789,10.83.35.12:6789
pool: rbd
image: foo2
user: admin
secretRef:
name: ceph-secret
fsType: xfs
readOnly: false
persistentVolumeReclaimPolicy: Recycle
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# kubectl apply -f pv.yaml
persistentvolume/pv0003 created
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv0003 8Gi RWO Recycle Bound default/db01-mysql 26s
pvc-19046ef8-3027-48ed-8f3f-59c166775df3 16Gi RWO Delete Bound kube-system/prometheus-data-prometheus-0 managed-nfs-storage 2d5h
pvc-52a6655f-3ea9-47f3-ab3c-1db4c283b21f 1Gi RWO Delete Bound kube-system/grafana-data-grafana-0 managed-nfs-storage 2d5h
pvc-943d26da-c541-486a-9844-ea4a2260e91d 2Gi RWO Delete Bound kube-system/alertmanager managed-nfs-storage 2d5h
pvc-ffb7cc2a-c7d1-48f3-9c69-1dfa6fd44352 1Gi RWO Delete Bound default/nginx-pvc-1g nginx.storageclass 4d4h
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
db01-mysql Bound pv0003 8Gi RWO 27m
nginx-pvc-1g Bound pvc-ffb7cc2a-c7d1-48f3-9c69-1dfa6fd44352 1Gi RWO nginx.storageclass 4d4h
[root@node-16 pv]#
[root@node-16 pv]# kubectl describe pod db01-mysql-6ff46d6ccb-6whjz
--------------
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
Warning FailedScheduling <unknown> default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
Normal Scheduled <unknown> default-scheduler Successfully assigned default/db01-mysql-6ff46d6ccb-6whjz to node-17
Normal SuccessfulAttachVolume 3m42s attachdetach-controller AttachVolume.Attach succeeded for volume "pv0003"
Warning FailedMount 99s kubelet, node-17 Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[data default-token-vb9td]: timed out waiting for the condition
Warning FailedMount 69s (x3 over 2m51s) kubelet, node-17 MountVolume.WaitForAttach failed for volume "pv0003" : rbd image rbd/foo2 is still being used
[root@node-16 pv]# rbd unmap foo2
[root@node-16 pv]# kubectl describe pod db01-mysql-6ff46d6ccb-6whjz
----------
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
Warning FailedScheduling <unknown> default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
Normal Scheduled <unknown> default-scheduler Successfully assigned default/db01-mysql-6ff46d6ccb-6whjz to node-17
Normal SuccessfulAttachVolume 5m1s attachdetach-controller AttachVolume.Attach succeeded for volume "pv0003"
Warning FailedMount 2m58s kubelet, node-17 Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[data default-token-vb9td]: timed out waiting for the condition
Warning FailedMount 2m28s (x3 over 4m10s) kubelet, node-17 MountVolume.WaitForAttach failed for volume "pv0003" : rbd image rbd/foo2 is still being used
Normal Pulling 2m26s kubelet, node-17 Pulling image "busybox:1.29.3"
Normal Pulled 2m9s kubelet, node-17 Successfully pulled image "busybox:1.29.3"
Normal Created 2m9s kubelet, node-17 Created container remove-lost-found
Normal Started 2m9s kubelet, node-17 Started container remove-lost-found
Normal Pulling 2m8s kubelet, node-17 Pulling image "mysql:5.7.28"
Normal Pulled 52s kubelet, node-17 Successfully pulled image "mysql:5.7.28"
Normal Created 50s kubelet, node-17 Created container db01-mysql
Normal Started 50s kubelet, node-17 Started container db01-mysql
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# kubectl get deployment|grep db01
db01-mysql 1/1 1 1 33m
[root@node-16 pv]#
[root@node-16 pv]# kubectl get pod |grep db01
db01-mysql-6ff46d6ccb-6whjz 1/1 Running 0 33m
[root@node-16 pv]#
[root@node-16 pv]#
[root@node-16 pv]# kubectl get pod -o wide|grep db01
db01-mysql-6ff46d6ccb-6whjz 1/1 Running 0 33m 10.244.1.15 node-17 <none> <none>
[root@node-16 pv]#
[root@node-16 pv]# kubectl get service|grep db01
db01-mysql ClusterIP 10.0.0.206 <none> 3306/TCP 33m
[root@node-16 pv]#