MicroK8s : Enable Storage2020/08/12 |
To enable MicroK8s built-in Storage, Configure like follows.
|
[1] | Enable built-in Storage on primary Node. |
[root@dlp ~]# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/lib64" [root@dlp ~]# microk8s enable storage Enabling default storage class deployment.apps/hostpath-provisioner created storageclass.storage.k8s.io/microk8s-hostpath created serviceaccount/microk8s-hostpath created clusterrole.rbac.authorization.k8s.io/microk8s-hostpath created clusterrolebinding.rbac.authorization.k8s.io/microk8s-hostpath created Storage will be available soon # [hostpath-provisioner] pod starts [root@dlp ~]# microk8s kubectl -n kube-system get pods NAME READY STATUS RESTARTS AGE coredns-588fd544bf-4d4kc 1/1 Running 0 23m dashboard-metrics-scraper-59f5574d4-lmgmt 1/1 Running 0 23m hostpath-provisioner-75fdc8fccd-fnsrv 1/1 Running 0 2m50s kubernetes-dashboard-6d97855997-bwg2g 1/1 Running 0 23m metrics-server-c65c9d66-kdxh8 1/1 Running 2 16h |
[2] | This is an example to use storage on a Pod to define PVC (Persistent Volume Claim) object. |
[root@dlp ~]#
vi my-pvc.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: # any PVC name name: my-pvc spec: # access mode: # - ReadWriteMany (RW from multi nodes) # - ReadWriteOnce (RW from a node) # - ReadOnlyMany (R from multi nodes) accessModes: - ReadWriteOnce # specify microk8s-hostpath storageClassName: microk8s-hostpath resources: requests: # storage size to use storage: 1Gi
[root@dlp ~]#
[root@dlp ~]# microk8s kubectl create -f my-pvc.yml persistentvolumeclaim/my-pvc created microk8s kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-d23a629b-67e9-4cc1-b0b6-dde3a8c60ddf 1Gi RWO Delete Bound default/my-pvc microk8s-hostpath 5s[root@dlp ~]# microk8s kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-pvc Bound pvc-d23a629b-67e9-4cc1-b0b6-dde3a8c60ddf 1Gi RWO microk8s-hostpath 29s
apiVersion: v1
kind: Pod
metadata:
name: nginx-mypv
labels:
name: nginx-mypv
spec:
containers:
- name: nginx-mypv
image: fedora/nginx
ports:
- name: web
containerPort: 80
volumeMounts:
- name: my-persistent-volume
mountPath: /usr/share/nginx/html
volumes:
- name: my-persistent-volume
persistentVolumeClaim:
# specify PVC name you defined
claimName: my-pvc
[root@dlp ~]#
[root@dlp ~]# microk8s kubectl create -f nginx-mypv.yml pod/nginx-mypv created microk8s kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-mypv 1/1 Running 0 25s 10.1.68.28 dlp.srv.world <none> <none> # confirm PVC Path [root@dlp ~]# microk8s kubectl describe -n kube-system pod/hostpath-provisioner-75fdc8fccd-fnsrv | grep PV_DIR PV_DIR: /var/snap/microk8s/common/default-storage[root@dlp ~]# microk8s kubectl describe pvc/my-pvc | grep ^Volume: Volume: pvc-d23a629b-67e9-4cc1-b0b6-dde3a8c60ddf # create a test page [root@dlp ~]# echo "Hello MicroK8s" > /var/snap/microk8s/common/default-storage/default-my-pvc-pvc-d23a629b-67e9-4cc1-b0b6-dde3a8c60ddf/index.html
# access to verify [root@dlp ~]# curl 10.1.68.28 Hello MicroK8s |
Sponsored Link |