Kubernetes Storage and Volumes Explained in crash way

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare

Storage Types?

  • BLOCK Storage
    e.g – Laptop, ebs, disks,
  • Network Storage
    e.g – NFS, efs, files
  • OBJECT STORAGE
    e.g – git, google drive, s3, blob

How we can make kubernetes understanding these storage types for using in pods?

  • “volume plugins” which is in built in kubernetes

What are the volume plugins supported in kubernetes?

  • awsElasticBlockStore – AWS Elastic Block Store (EBS)
  • azureDisk – Azure Disk
  • azureFile – Azure File
  • cephfs – CephFS volume
  • cinder – Cinder (OpenStack block storage) (deprecated)
  • csi – Container Storage Interface (CSI)
  • fc – Fibre Channel (FC) storage
  • flexVolume – FlexVolume
  • flocker – Flocker storage
  • gcePersistentDisk – GCE Persistent Disk
  • glusterfs – Glusterfs volume
  • hostPath – HostPath volume (for single node testing only; WILL NOT WORK in a multi-node cluster; consider using local volume instead)
  • iscsi – iSCSI (SCSI over IP) storage
  • local – local storage devices mounted on nodes.
  • nfs – Network File System (NFS) storage
  • photonPersistentDisk – Photon controller persistent disk. (This volume type no longer works since the removal of the corresponding – cloud provider.)
  • portworxVolume – Portworx volume
  • quobyte – Quobyte volume
  • rbd – Rados Block Device (RBD) volume
  • scaleIO – ScaleIO volume (deprecated)
  • storageos – StorageOS volume
  • vsphereVolume – vSphere VMDK volume

Role & Responsibilties

Who would Add “Storage types” in clustor – kubernetes clustor administrator
Who would Use attached volume in clustor – kubernetes user and developer

How to Add “Storage types” using “volume plugins” to the kubernetes clustor by clustor administrator?

Manual -> STATIC - Costly - Faster			
Automatic Method -> DYNAMIC - less Costly - Less Faster   

		ADMIN			USER/DEVELOPER

STATIC		PV			PVC -> VOLUME ATTACHMENT TO POD -> Mount Inside a container
		CLUSTOR			NAMESPACE
DYNAMIC		SC -> PV		PVC -> VOLUME ATTACHMENT TO POD -> Mount Inside a container
		CLUSTOR			NAMESPACE

PV = Persistent Volumes
PVC = Persistent Volumes Claim
SC = StorageClass


STATIC	=> PV -> PVC -> VOLUME ATTACHMENT TO POD -> Mount Inside a container 
DYNAMIC => PVC(Request) -> SC -> PV -> PVC(Respected) -> VOLUME ATTACHMENT TO POD -> Mount Inside a container 




 534  mkdir pv
  535  cd pv
  536  clear
  537  ls
  538  vi pv.yaml
  539  kubectl get pv
  540  kubectl apply -f pv.yaml
  541  kubectl get pv
  542  vi pv.yaml
  543  kubectl apply -f pv.yaml
  544  kubectl get pv
  545  clear
  546  ls
  547  vi pvc.yaml
  548  kubectl get pvc
  549  kubectl get pv
  550  kubectl apply -f pvc.yaml
  551  kubectl get pvc
  552  kubectl get pv
  553  vi pvc.yaml
  554  kubectl apply -f pvc.yaml
  555  vi pvc.yaml
  556  kubectl apply -f pvc.yaml
  557  kubectl get pvc
  558  kubectl get pv
  559  clear
  560  vi pod.yaml
  561  kubectl apply -f pod.yaml
  562  kubectl get pods
  563  kubectl exec task-pv-pod ls /usr/share/nginx/html
  564  kubectl exec task-pv-pod touch /usr/share/nginx/html/index.html
  565  kubectl exec task-pv-pod ls /usr/share/nginx/html
  566  clear
  567  kubectl delete -f pod.yaml
  568  kubectl apply -f pod.yaml
  569  kubectl exec task-pv-pod ls /usr/share/nginx/htmlCode language: JavaScript (javascript)

Reference

Assignment

  • #1 – How certitifate based Authentication works? exaplain in kubernetes context.
  • #1 – What is Block Storage?
  • #3 – How volume plugins in kubernetes works?
  • #4 – What is StorageClass? and How to work with it with sample StorageClass, PV, PVC, POD.ymal