一. 創建Host類型pv
1.1 創建pv yaml文件
-bash-4.2# cat abc_mount_pvc.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: abc name: abc spec: replicas: 3 selector: matchLabels: app: abc strategy: {} template: metadata: creationTimestamp: null labels: app: abc spec: containers: - image: registry.abc.com/abc/abc:1260cd6 name: iam imagePullPolicy: Always resources: {} volumeMounts: - name: abcvolume mountPath: /data/static volumes: - name: abcvolume persistentVolumeClaim: claimName: mypvc status: {}
本地掛載目錄路徑: `/data/static` 數據將會持久化到該路徑下面
1.2 kubectl創建pv
-bash-4.2# kubectl create namespace abc#### 創建namespace做資源隔離 -bash-4.2# kubectl create -f abc_pv.yaml -n abc rsistentvolume/myvolume created -bash-4.2# kubectl get pv -n abc NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE myvolume 5Gi RWO,RWX Retain Available normal 4s -bash-4.2#
二、創建pvc
2.1 創建pvc yaml文件
-bash-4.2# vim abc_pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mypvc spec: storageClassName: normal accessModes: - ReadWriteOnce resources: requests: storage: 3Gi
2.2 kubectl創建pvc
-bash-4.2# kubectl create -f abc_pvc.yaml -n abc persistentvolumeclaim/mypvc created -bash-4.2# kubectl get pvc -n abc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mypvc Bound myvolume 5Gi RWO,RWX normal 6s -bash-4.2# -bash-4.2# kubectl get pv -n abc NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE myvolume 5Gi RWO,RWX Retain Bound iam/mypvc normal 73s -bash-4.2#
當`STATUS`狀態為`Bound`說明`pvc`已經綁定到`pv`上,到這里已完成初步的`pvc`、`pv`的綁定
三、創建deploy yaml文件
3.1 掛載pvc
-bash-4.2# cat abc_mount_pvc.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: abc name: abc spec: replicas: 3 selector: matchLabels: app: abc strategy: {} template: metadata: creationTimestamp: null labels: app: abc spec: containers: - image: registry.abc.com/abc/abc:1260cd6 name: abc imagePullPolicy: Always resources: {} volumeMounts: - name: abcvolume mountPath: /data/static volumes: - name: abcvolume persistentVolumeClaim: claimName: mypvc status: {} -bash-4.2#
3.2 kubectl創建deploy
-bash-4.2# kubectl create -f abc_mount_pvc.yaml -n abc deployment.apps/iam created -bash-4.2# -bash-4.2# -bash-4.2# kubectl get po -n abc NAME READY STATUS RESTARTS AGE abc-666475bcf9-gxgfb 1/1 Running 0 8s abc-666475bcf9-lcljd 1/1 Running 0 8s abc-666475bcf9-t6tbv 1/1 Running 0 8s -bash-4.2#
3.3 檢查是否掛載成功
a. 進入port檢查
-bash-4.2# kubectl -n abc exec -it abc-666475bcf9-t6tbv -- /bin/sh ~/iam # ls AUTHORS api-ref doc nohup.out test-requirements.txt ChangeLog babel.cfg docker requirements.txt tools Dockerfile build etc setup tox.ini LICENSE build.sh iam setup.cfg README.rst build_k8s.sh iam.egg-info setup.py ~/iam #
b. 創建一個文件
~/iam # ls /data/static/ ~/iam # cat /etc/passwd >/data/static/pwd.txt ~/iam # ls /data/static/ pwd.txt
c. 檢查持久化
-bash-4.2# ll /data/static/ total 8 -rw-r--r-- 1 root root 1230 Jul 19 22:44 pwd.txt
完成調試。