# Migration of application pods from Multus to Host and viceVersa
:::danger
This testing is done Pod network to Host network in minikube cluster and the result is similar to multus cluster as well.
:::
:::danger
Testing is done only for CephFS and RBD not for NFS
:::
## Migration from Host to Pod Network
* Deploy ceph cluster and CSI should be using Host networking
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]kuberc get po
NAME READY STATUS RESTARTS AGE
csi-cephfsplugin-5wpbw 2/2 Running 0 3m21s
csi-cephfsplugin-provisioner-6c84b57bc9-gc4hf 5/5 Running 0 3m20s
csi-rbdplugin-provisioner-66969c54d-kcp7v 5/5 Running 0 3m21s
csi-rbdplugin-tdsls 2/2 Running 0 3m21s
rook-ceph-exporter-minikube-866f865684-vw5wj 1/1 Running 0 98s
rook-ceph-mds-myfs-a-69c844c8cd-mtm89 1/1 Running 0 104s
rook-ceph-mds-myfs-b-6c9c556bff-r647x 1/1 Running 0 100s
rook-ceph-mgr-a-5f584dfc9d-s8pc8 1/1 Running 0 2m31s
rook-ceph-mon-a-644465bb44-4pkck 1/1 Running 0 3m
rook-ceph-operator-5f9bc6d66d-6ffsn 1/1 Running 0 3m23s
rook-ceph-osd-0-7966cb76b6-qrjcp 1/1 Running 0 119s
rook-ceph-osd-prepare-minikube-9qzs5 0/1 Completed 0 2m9s
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]kuberc get cephcluster
NAME DATADIRHOSTPATH MONCOUNT AGE PHASE MESSAGE HEALTH EXTERNAL FSID
my-cluster /var/lib/rook 1 6m17s Ready Cluster created successfully HEALTH_OK 5df76aeb-d3d9-43b4-806e-0bb9441112b5
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]kuberc get po/csi-rbdplugin-tdsls -oyaml |grep -i hostnetwork
hostNetwork: true
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f examples $]kuberc get po/csi-cephfsplugin-5wpbw -oyaml |grep -i hostnetwork
hostNetwork: true
```
* Check csi configmap and see if netNamespacePath is set or not
This is just to ensure everything is good
```yaml=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get cm rook-ceph-csi-config -oyaml
apiVersion: v1
data:
csi-cluster-config-json: '[{"clusterID":"rook-ceph","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"","subvolumeGroup":"","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":["kubernetes.io/hostname","topology.kubernetes.io/region","topology.kubernetes.io/zone","topology.rook.io/chassis","topology.rook.io/rack","topology.rook.io/row","topology.rook.io/pdu","topology.rook.io/pod","topology.rook.io/room","topology.rook.io/datacenter"]},"namespace":"rook-ceph"},{"clusterID":"e1026845ad66577abae1d16671b464c8","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"","subvolumeGroup":"csi","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":null},"namespace":"rook-ceph"}]'
kind: ConfigMap
metadata:
creationTimestamp: "2024-01-23T13:46:16Z"
name: rook-ceph-csi-config
namespace: rook-ceph
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: false
controller: true
kind: Deployment
name: rook-ceph-operator
uid: 6df65e36-c138-42b8-a5c5-6b372b951d99
resourceVersion: "1379"
uid: 895fab41-2237-412b-b866-895793d97dbb
```
* Create CephFS/RBD PVC and mount it to application pods and do I/O Operation
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
cephfs-pvc Bound pvc-b021a7b1-d58d-4b89-8514-6e43671e6299 1Gi RWO rook-cephfs 23s
rbd-pvc Bound pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7 1Gi RWO rook-ceph-block 7s
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
NAME READY STATUS RESTARTS AGE
csicephfs-demo-pod 1/1 Running 0 2m2s
csirbd-demo-pod 1/1 Running 0 106s
```
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl exec -it csicephfs-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 1.0G 0 1.0G 0% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# echo testing >/var/lib/www/html/a
# cat /var/lib/www/html/a
testing
#
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl exec -it csirbd-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
/dev/rbd0 976M 2.6M 958M 1% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# echo testing > /var/lib/www/html/a
# cat /var/lib/www/html/a
testing
#
```
* Now lets move the csi to pod networking by setting `CSI_ENABLE_HOST_NETWORK: "false"` in rook operator configmap and verify we have holder pods gets created
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get configmap/rook-ceph-operator-config -oyaml |grep CSI_ENABLE_HOST_NETWORK
CSI_ENABLE_HOST_NETWORK: "false"
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get po
NAME READY STATUS RESTARTS AGE
csi-cephfsplugin-holder-my-cluster-lmwff 1/1 Running 0 23s
csi-cephfsplugin-ld5gq 2/2 Running 0 21s
csi-cephfsplugin-provisioner-6c84b57bc9-gc4hf 5/5 Running 0 15m
csi-rbdplugin-holder-my-cluster-vv8cw 1/1 Running 0 23s
csi-rbdplugin-provisioner-66969c54d-kcp7v 5/5 Running 0 15m
csi-rbdplugin-xdrjh 2/2 Running 0 21s
rook-ceph-exporter-minikube-866f865684-vw5wj 1/1 Running 0 13m
rook-ceph-mds-myfs-a-69c844c8cd-mtm89 1/1 Running 0 13m
rook-ceph-mds-myfs-b-6c9c556bff-r647x 1/1 Running 0 13m
rook-ceph-mgr-a-5f584dfc9d-s8pc8 1/1 Running 0 14m
rook-ceph-mon-a-644465bb44-4pkck 1/1 Running 0 14m
rook-ceph-operator-5f9bc6d66d-6ffsn 1/1 Running 0 15m
rook-ceph-osd-0-7966cb76b6-qrjcp 1/1 Running 0 13m
rook-ceph-osd-prepare-minikube-9qzs5 0/1 Completed 0 14m
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
csi-cephfsplugin 1 1 1 1 1 <none> 15m
csi-cephfsplugin-holder-my-cluster 1 1 1 1 1 <none> 27s
csi-rbdplugin 1 1 1 1 1 <none> 15m
csi-rbdplugin-holder-my-cluster 1 1 1 1 1 <none> 27s
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get po/csi-cephfsplugin-ld5gq -oyaml |grep -i hostnetwork
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get po/csi-rbdplugin-xdrjh -oyaml |grep -i hostnetwork
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get cmrc get cm rook-ceph-csi-config -oyaml
apiVersion: v1
data:
csi-cluster-config-json: '[{"clusterID":"rook-ceph","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"/var/lib/kubelet/plugins/rook-ceph.cephfs.csi.ceph.com/rook-ceph.net.ns","subvolumeGroup":"","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"/var/lib/kubelet/plugins/rook-ceph.rbd.csi.ceph.com/rook-ceph.net.ns","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":["kubernetes.io/hostname","topology.kubernetes.io/region","topology.kubernetes.io/zone","topology.rook.io/chassis","topology.rook.io/rack","topology.rook.io/row","topology.rook.io/pdu","topology.rook.io/pod","topology.rook.io/room","topology.rook.io/datacenter"]},"namespace":"rook-ceph"},{"clusterID":"e1026845ad66577abae1d16671b464c8","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"","subvolumeGroup":"csi","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":null},"namespace":"rook-ceph"}]'
kind: ConfigMap
metadata:
creationTimestamp: "2024-01-23T13:46:16Z"
name: rook-ceph-csi-config
namespace: rook-ceph
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: false
controller: true
kind: Deployment
name: rook-ceph-operator
uid: 6df65e36-c138-42b8-a5c5-6b372b951d99
resourceVersion: "1993"
uid: 895fab41-2237-412b-b866-895793d97dbb
```
## Migration from Pod to Host Network
* Now the csi pods are moved to pod network lets do i/o and verify we are able to delete and recreate the same app pods without any problem
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csirbd-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
/dev/rbd0 976M 2.6M 958M 1% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# cat /var/lib/www/html/a
testing
# echo test > /var/lib/www/html/b
# exit
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csicephfs-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 1.0G 0 1.0G 0% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# cat /var/lib/www/html/a
testing
# echo test > /var/lib/www/html/b
# exit
```
* Lets delete the pod and check if we are able to recreate it
* Verify mount exists on the node
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]minikube ssh
_ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
$ mount |grep cephfs
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/pods/263eb6ca-8f61-4857-99bc-2fe649d1cd6e/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/pods/263eb6ca-8f61-4857-99bc-2fe649d1cd6e/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
$ mount |grep rbd
/dev/rbd0 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16)
/dev/rbd0 on /var/lib/kubelet/pods/e313fc91-74d4-4732-94d6-597d3d0ef3c7/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/pods/e313fc91-74d4-4732-94d6-597d3d0ef3c7/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16)
$
```
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
NAME READY STATUS RESTARTS AGE
csicephfs-demo-pod 1/1 Running 0 14m
csirbd-demo-pod 1/1 Running 0 13m
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl delete po/csicephfs-demo-pod
pod "csicephfs-demo-pod" deleted
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl delete po/csirbd-demo-pod
pod "csirbd-demo-pod" deleted
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
No resources found in default namespace.
```
* validate mount exists on the node now
```bash=
$ mount |grep cephfs
$ mount |grep rbd
$
```
* Lets recreate the app pods and check if we are using pod networking for csi now
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
NAME READY STATUS RESTARTS AGE
csicephfs-demo-pod 1/1 Running 0 7s
csirbd-demo-pod 1/1 Running 0 13s
```
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc logs po/csi-cephfsplugin-ld5gq -c csi-cephfsplugin
I0123 14:09:06.562980 51254 cephcmds.go:71] ID: 15 Req-ID: 0001-0009-rook-ceph-0000000000000001-9e506c9d-10fc-45e1-9a67-6f1345b279d3 command succeeded: nsenter [--net=/var/lib/kubelet/plugins/rook-ceph.cephfs.csi.ceph.com/rook-ceph.net.ns -- mount -t ceph 10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount -o name=csi-cephfs-node,secretfile=/tmp/csi/keys/keyfile-3725154805,mds_namespace=myfs,_netdev]
I0123 14:09:06.563033 51254 nodeserver.go:252] ID: 15 Req-ID: 0001-0009-rook-ceph-0000000000000001-9e506c9d-10fc-45e1-9a67-6f1345b279d3 cephfs: successfully mounted volume 0001-0009-rook-ceph-0000000000000001-9e506c9d-10fc-45e1-9a67-6f1345b279d3 to /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount
I0123 14:09:06.563113 51254 utils.go:171] ID: 15 Req-ID: 0001-0009-rook-ceph-0000000000000001-9e506c9d-10fc-45e1-9a67-6f1345b279d3 GRPC response: {}
```
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc logs po/csi-rbdplugin-xdrjh -c csi-rbdplugin
I0123 14:09:06.670447 51263 cephcmds.go:71] ID: 15 Req-ID: 0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 command succeeded: nsenter [--net=/var/lib/kubelet/plugins/rook-ceph.rbd.csi.ceph.com/rook-ceph.net.ns -- rbd --id csi-rbd-node -m 10.106.151.105:6789 --keyfile=***stripped*** map replicapool/csi-vol-30ed5397-b244-402c-b21a-65f3032b3956 --device-type krbd --options noudev]
I0123 14:09:06.670508 51263 nodeserver.go:422] ID: 15 Req-ID: 0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 rbd image: replicapool/csi-vol-30ed5397-b244-402c-b21a-65f3032b3956 was successfully mapped at /dev/rbd0
```
We can check that cephfs/rbd mount is done on the holder pod now.
* Lets again do the i/o now
```bash
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csicephfs-demo-pod -- sh
# cat /var/lib/www/html/a
testing
# echo test > /var/lib/www/html/c
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 1.0G 0 1.0G 0% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
#
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csirbd-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
/dev/rbd0 976M 2.6M 958M 1% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# cat /var/lib/www/html/a
testing
# echo test > /var/lib/www/html/c
#
```
* Now lets move the csi to host network
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get configmap/rook-ceph-operator-config -oyaml |grep CSI_ENABLE_HOST_NETWORK
CSI_ENABLE_HOST_NETWORK: "true"
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get po/csi-cephfsplugin-265j9 -oyaml |grep -i hostnetwork
hostNetwork: true
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get po/csi-rbdplugin-hfbp6 -oyaml |grep -i hostnetwork
hostNetwork: true
```
* There is a small bug in Rook if a csi pod is moved to host network, the netnamespace path is not removed from csi configmap, for now lets remove it manually by editing csi configmap
```bash=
🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc edit cm rook-ceph-csi-config
configmap/rook-ceph-csi-config edited
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kuberc get cm rook-ceph-csi-config -oyaml
apiVersion: v1
data:
csi-cluster-config-json: '[{"clusterID":"rook-ceph","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"","subvolumeGroup":"","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":["kubernetes.io/hostname","topology.kubernetes.io/region","topology.kubernetes.io/zone","topology.rook.io/chassis","topology.rook.io/rack","topology.rook.io/row","topology.rook.io/pdu","topology.rook.io/pod","topology.rook.io/room","topology.rook.io/datacenter"]},"namespace":"rook-ceph"},{"clusterID":"e1026845ad66577abae1d16671b464c8","monitors":["10.106.151.105:6789"],"cephFS":{"netNamespaceFilePath":"","subvolumeGroup":"csi","kernelMountOptions":"","fuseMountOptions":""},"rbd":{"netNamespaceFilePath":"","radosNamespace":""},"nfs":{"netNamespaceFilePath":""},"readAffinity":{"enabled":false,"crushLocationLabels":null},"namespace":"rook-ceph"}]'
kind: ConfigMap
metadata:
creationTimestamp: "2024-01-23T13:46:16Z"
name: rook-ceph-csi-config
namespace: rook-ceph
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: false
controller: true
kind: Deployment
name: rook-ceph-operator
uid: 6df65e36-c138-42b8-a5c5-6b372b951d99
resourceVersion: "2778"
uid: 895fab41-2237-412b-b866-895793d97dbb
```
* Now lets try to access the existing applications
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]minikube ssh
mou _ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
$ mount |grep cephfs
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/pods/4123eb59-a6af-451f-ab07-e2dd16446bfe/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/pods/4123eb59-a6af-451f-ab07-e2dd16446bfe/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
$ mount |grep rbd
/dev/rbd0 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16)
/dev/rbd0 on /var/lib/kubelet/pods/7b5448a2-7e22-4548-a35e-b4d4acd992ca/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/pods/7b5448a2-7e22-4548-a35e-b4d4acd992ca/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16)
$
```
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csirbd-demo-pod -- sh
# cat /var/lib/www/html/c
test
# echo again > /var/lib/www/html/d
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
/dev/rbd0 976M 2.6M 958M 1% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# exit
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csicephfs-demo-pod -- sh
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 28G 6.0G 21G 23% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda1 28G 6.0G 21G 23% /etc/hosts
shm 64M 0 64M 0% /dev/shm
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 1.0G 0 1.0G 0% /var/lib/www/html
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.0G 0 2.0G 0% /proc/asound
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
# cat /var/lib/www/html/c
test
# echo again > /var/lib/www/html/d
#
```
* Now lets delete the application pods and verify the mount exists on the host
```bash=
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
NAME READY STATUS RESTARTS AGE
csicephfs-demo-pod 1/1 Running 0 12m
csirbd-demo-pod 1/1 Running 0 12m
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl deletetl delete po/csirbd-demo-pod
pod "csirbd-demo-pod" deleted
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl deletetl delete po/csicephfs-demo-pod
pod "csicephfs-demo-pod" deleted
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
No resources found in default namespace.
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]minikube ssh
_ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
$ mount |grep cephfs
$ mount |grep rbd
$ ll /dev/r
random rfkill rtc rtc0
$ ll /dev/r
random rfkill rtc rtc0
$ ll /dev/r
-bash: ll: command not found
$
```
* lets recreate the application and see
```bash
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl createtl create -f ../cephfs/pod.yaml
pod/csicephfs-demo-pod created
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl createtl create -f pod.yaml
pod/csirbd-demo-pod created
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl get po
NAME READY STATUS RESTARTS AGE
csicephfs-demo-pod 1/1 Running 0 31s
csirbd-demo-pod 1/1 Running 0 29s
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csicephfs-demo-pod -- sh
# cat /var/lib/www/html/d
again
# exit
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]kubectl execectl exec -it csirbd-demo-pod -- sh
# cat /var/lib/www/html/d
again
#
```
```bash
[🎩︎]mrajanna@li-2cfbef4c-22d9-11b2-a85c-a3e4a93c405f rbd $]minikube ssh
mou _ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
mou$ mount |grep cephfs
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/de8695c15b0729676ef3f47ec8b12c4b65a70d1a1e7ac7a4531294fe30eb3bbb/globalmount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /var/lib/kubelet/pods/0b9ee432-bb08-442e-aa9e-4b066d6b0527/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs,_netdev)
10.106.151.105:6789:/volumes/csi/csi-vol-9e506c9d-10fc-45e1-9a67-6f1345b279d3/e61b8727-311e-42a6-83cb-07fff99f7c77 on /mnt/vda1/var/lib/kubelet/pods/0b9ee432-bb08-442e-aa9e-4b066d6b0527/volumes/kubernetes.io~csi/pvc-b021a7b1-d58d-4b89-8514-6e43671e6299/mount type ceph (rw,relatime,name=csi-cephfs-node,secret=<hidden>,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=myfs)
$ mount |grep rbd
/dev/rbd0 on /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.rbd.csi.ceph.com/7d0b17024664d12a9a6c112a522996ed73f68349b1b2ea9f8426e2abf852623d/globalmount/0001-0009-rook-ceph-0000000000000002-30ed5397-b244-402c-b21a-65f3032b3956 type ext4 (rw,relatime,stripe=16)
/dev/rbd0 on /var/lib/kubelet/pods/7f14f942-39ff-4a0b-84fb-f88cef14017c/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16,_netdev)
/dev/rbd0 on /mnt/vda1/var/lib/kubelet/pods/7f14f942-39ff-4a0b-84fb-f88cef14017c/volumes/kubernetes.io~csi/pvc-b27dac9f-0ce0-47ab-b1e8-7e0fd1452bf7/mount type ext4 (rw,relatime,stripe=16)
$
```