首页 > 解决方案 > Kubernetes - 如何在 PVC 中提及 hostPath?

问题描述

我需要使用 PVC 来指定 PV 的规格,并且我还需要确保它使用 PV 中的自定义本地存储路径。

我无法弄清楚如何在 PVC 中提及主机路径

这是 PVC 配置:

apiVersion: v1 
kind: PersistentVolumeClaim
metadata: 
  name: mongo-pvc 
spec: 
  accessModes: 
    - ReadWriteOnce
  resources: 
    requests: 
      storage: 1Gi

这是 mongodb 部署:

spec:
    replicas: 1
    selector:
        matchLabels:
            app: mongo
    template:
        metadata:
            labels: 
                app: mongo
        spec:
            volumes: 
                - name: mongo-volume 
                  persistentVolumeClaim: 
                    claimName: mongo-pvc 
            containers:
                - name: mongo
                  image: mongo
                  ports:
                    - containerPort: 27017
                  volumeMounts: 
                    - name: mongo-volume 
                      mountPath: /data/db 

我如何以及在哪里提到要在此处安装的hostPath

标签: kubernetesmicroservicesgoogle-kubernetes-engine

解决方案


文档说您hostPath在创建 PV 时设置(创建 PVC 之前的步骤)。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

创建 PersistentVolumeClaim 后,Kubernetes 控制平面会查找满足声明要求的 PersistentVolume。如果控制平面找到具有相同 StorageClass 的合适 PersistentVolume,它将声明绑定到该卷。

请参阅https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/


推荐阅读