简体   繁体   English

错误:无法为容器“postgres”的volumeMount“postgres-storage”准备子路径

[英]Error: failed to prepare subPath for volumeMount "postgres-storage" of container "postgres"

I am trying to use persistent volume claims and facing this issue我正在尝试使用持久量声明并面临此问题

This is my postgres-deployment.yaml这是我的 postgres-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: postgres
  template:
    metadata:
      labels:
        component: postgres
    spec:
      volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim
      containers:
      - name: postgres
        image: postgres
        ports:
        - containerPort: 5432
        volumeMounts:
          - mountPath: /var/lib/postgresql/data
            name: postgres-storage
            subPath: postgres

when i debug pod using describe当我使用describe调试pod时

kubectl describe pod postgres-deployment-8576df7bfc-8mp5t

Events:
  Type     Reason     Age                  From                     Message
  ----     ------     ----                 ----                     -------
  Normal   Scheduled  3m4s                 default-scheduler        Successfully assigned default/postgres-deployment-8576df7bfc-8mp5t to docker-desktop
  Normal   Pulled     67s (x8 over 2m58s)  kubelet, docker-desktop  Successfully pulled image "postgres"
  Warning  Failed     67s (x8 over 2m58s)  kubelet, docker-desktop  Error: failed to prepare subPath for volumeMount "postgres-storage" of container "postgres"
  Normal   Pulling    53s (x9 over 3m3s)   kubelet, docker-desktop  Pulling image "postgres"

My pod is showing me this error我的 pod 向我显示了这个错误

$ kubectl get pods
NAME                                   READY   STATUS                       RESTARTS   AGE
postgres-deployment-8576df7bfc-8mp5t   0/1     CreateContainerConfigError   0          5m5

I am not sure where is the problem in config.我不确定配置中的问题在哪里。 but I am sure this is related to volumes because after adding volumes this problem appears 🤣但我确定这与卷有关,因为添加卷后会出现这个问题🤣

remove subpath.删除子路径。 can you try below yaml你可以试试下面的 yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: postgres
  template:
    metadata:
      labels:
        component: postgres
    spec:
      volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim
      containers:
      - name: postgres
        image: postgres
        ports:
        - containerPort: 5432
        volumeMounts:
          - mountPath: /var/lib/postgresql/data
            name: postgres-storage

I just deployed and it works我刚刚部署,它的工作原理

master $ kubectl get deploy
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
postgres-deployment   1/1     1            1           4m13s
master $ kubectl get po
NAME                                   READY   STATUS    RESTARTS   AGE
postgres-deployment-6b66bdd748-5q76h   1/1     Running   0          4m13s

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM