美文网首页
520.【kubernetes】PVC

520.【kubernetes】PVC

作者: 七镜 | 来源:发表于2022-12-15 05:15 被阅读0次

一、创建 PVC

PVC 作为用户对存储资源的需求申请,主要涉及存储空间请求、访问模式、PV 选择条件和存储类别等信息的设置。
上示例(申请 8GiB 存储空间,访问模式为 ReadOnlyMany,存储类别为“directpv-min-io”):

cat >test-direct-pvc.yaml  <<EOF
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: testqijingpvc
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
  storageClassName: direct-csi-min-io
EOF

创建:

[root@k8s0 test_persistent_volume]# kubectl create -f test-direct-pvc.yaml 
persistentvolumeclaim/testqijingpvc created

验证:

[root@k8s0 test_persistent_volume]# kubectl get pvc                        
NAME                               STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS        AGE
mongo-persistent-storage-mongo-0   Bound     pvc-cb9e0f2f-a5d2-4281-aa14-9881a8f7ef67   100Gi      RWO            direct-csi-min-io   9d
mongo-persistent-storage-mongo-1   Bound     pvc-51a693a3-a1cc-4e7e-97de-eb8c9162ac63   100Gi      RWO            direct-csi-min-io   9d
mongo-persistent-storage-mongo-2   Bound     pvc-3c6fa343-a13e-4fc3-93a8-8826a60405ba   100Gi      RWO            direct-csi-min-io   9d
testpvc                            Bound     pvc-3e802a9e-ab1b-46cc-829d-e5d107cb4308   100Mi      RWO            direct-csi-min-io   10m
testqijingpvc                      Pending                                                                        direct-csi-min-io   3s

二、Pod 使用 PVC

在PVC 创建成功之后,Pod 就可以以存储卷(Volume)的方式使用 PVC 的存储资源了。PVC 受限于命名空间,Pod 在使用 PVC 时,必须与 PVC 处于同一个命名空间。

Kubernetes 为 Pod 挂载 PVC 的过程如下:系统在 Pod 所在的命名空间中找到其配置的 PVC,然后找到 PVC 绑定的后端 PV,将 PV 存储挂载到 Pod,将 PV 存储挂载到 Pod 所在的 Node 的目录下,最后将 Node 的目录挂载到 Pod 的容器内。

在 Pod 中使用 PVC 时,需要在 YAML 配置中设置 PVC 类型的 Volume,然后在容器中通过 volumeMounts.mountPath 设置容器内的挂载目录,示例如下:

[root@k8s0 test_persistent_volume]# cat > test-qijing-pod.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: qijing-test-pod
spec:
  containers:
  - name: myfronted
    image: nginx
    volumeMounts:
    - mountPath: "/var/www/html"
      name: qijingpd
  volumes:
    - name: qijingpd
      persistentVolumeClaim:
        claimName: testqijingpvc 
EOF

创建:

[root@k8s0 test_persistent_volume]# kubectl create -f test-qijing-pod.yaml 
pod/qijing-test-pod created

验证:

pod/qijing-test-pod created
[root@k8s0 test_persistent_volume]# kubectl get po
NAME                                     READY   STATUS             RESTARTS         AGE
qijing-test-pod                          1/1     Running            0                18s

进入容器内部执行:df -h

  • 可以看到指定的目录确实挂载了一个盘,验证成功。

相关文章

网友评论

      本文标题:520.【kubernetes】PVC

      本文链接:https://www.haomeiwen.com/subject/pfcofdtx.html