MicroK8s : Storage を有効にする2021/04/07 |
MicroK8s ビルトイン の Storage を有効にする場合は以下のように設定します。
|
[1] | プライマリーノードで、ビルトイン Storage を有効にします。 |
[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 が起動する [root@dlp ~]# microk8s kubectl -n kube-system get pods NAME READY STATUS RESTARTS AGE metrics-server-8bbfb4bdb-h6hsr 1/1 Running 0 21m calico-kube-controllers-847c8c99d-cglw5 1/1 Running 1 144m calico-node-nlzz4 1/1 Running 0 41m coredns-86f78bb79c-nvfqr 1/1 Running 0 21m kubernetes-dashboard-7ffd448895-hp574 1/1 Running 0 21m dashboard-metrics-scraper-6c4568dc68-fzngj 1/1 Running 0 21m hostpath-provisioner-5c65fbdb4f-7kxjw 1/1 Running 0 41s |
[2] | PVC (Persistent Volume Claim) オブジェクトを定義しての、Pod からのストレージ利用例です。 |
[root@dlp ~]#
vi my-pvc.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: # 任意の PVC 名 name: my-pvc spec: # アクセスモード: # - ReadWriteMany (複数ノード RW) # - ReadWriteOnce (単一ノード RW) # - ReadOnlyMany (複数ノード R) accessModes: - ReadWriteOnce # microk8s-hostpath を指定 storageClassName: microk8s-hostpath resources: requests: # 利用したいストレージのサイズ 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-573d1393-6721-45e2-af2f-24d4ccd047ff 1Gi RWO Delete Bound default/my-pvc microk8s-hostpath 2s[root@dlp ~]# microk8s kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-pvc Bound pvc-573d1393-6721-45e2-af2f-24d4ccd047ff 1Gi RWO microk8s-hostpath 32s
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:
# 事前に定義した PVC 名を指定
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 22s 10.1.142.78 dlp.srv.world <none> <none> # PVC の Path 確認 [root@dlp ~]# microk8s kubectl describe -n kube-system pod/hostpath-provisioner-5c65fbdb4f-7kxjw | grep PV_DIR PV_DIR: /var/snap/microk8s/common/default-storage[root@dlp ~]# microk8s kubectl describe pvc/my-pvc | grep ^Volume: Volume: pvc-573d1393-6721-45e2-af2f-24d4ccd047ff # テストページ作成 [root@dlp ~]# echo "Hello MicroK8s external Storage" > /var/snap/microk8s/common/default-storage/default-my-pvc-pvc-573d1393-6721-45e2-af2f-24d4ccd047ff/index.html
# アクセスして確認 [root@dlp ~]# curl 10.1.142.78 Hello MicroK8s external Storage |
Sponsored Link |