Контейнер Kubernetes VolumeMounts не найден? - PullRequest
0 голосов
/ 10 апреля 2020

Я пытался создать postgresdb с приведенным ниже yaml в kubernetes, но столкнулся с ошибкой ниже

The Deployment "postgres-airflow" is invalid: spec.template.spec.containers[0].volumeMounts[0].name: Not found: "postgres-vol"

Может кто-нибудь пролить свет на это? Не уверен, что мне не хватает, и было бы еще более полезно, если бы кто-нибудь мог дать мне знать, как создавать динамические тома c, используя azure файловый ресурс в качестве хранилища. Любая помощь будет принята с благодарностью

Файл Yaml, который я использую для развертывания postgres ниже ...

kind: Deployment
apiVersion: apps/v1 
metadata:
  name: postgres-airflow
spec:
  replicas: 1 
  selector:
    matchLabels:
      name: postgres-airflow
  template:
    metadata:
      labels:
        name: postgres-airflow
    spec:
      restartPolicy: Always
      containers:
      - name: postgres
        image: postgres
        imagePullPolicy: IfNotPresent
        ports:
          - containerPort: 5432
            protocol: TCP
        volumeMounts:
        - mountPath: "/var/lib/postgresql/data/pgdata"
          name: postgres-vol
          subPath: pgdata
        env:
        - name: POSTGRES_USER
          value: root
        - name: POSTGRES_PASSWORD
          value: root
        - name: POSTGRES_DB
          value: airflow
        - name: PGDATA
          value: /var/lib/postgresql/data/pgdata
        - name: POD_IP
          valueFrom: { fieldRef: { fieldPath: status.podIP } }
        livenessProbe:
          initialDelaySeconds: 60
          timeoutSeconds: 5
          failureThreshold: 5
          exec:
            command:
            - /bin/sh
            - -c
            - exec pg_isready --host $POD_IP ||  if [[ $(psql -qtAc --host $POD_IP 'SELECT pg_is_in_recovery') != "f" ]]; then  exit 0 else; exit 1; fi
        readinessProbe:
          initialDelaySeconds: 5
          timeoutSeconds: 5
          periodSeconds: 5
          exec:
            command:
            - /bin/sh
            - -c
            - exec pg_isready --host $POD_IP
        resources:
          requests:
            ephemeral-storage: 5Gi
            memory: .5Gi
            cpu: .5
      volumes:
      - name: postgres-db-volume
        emptyDir: {}

1 Ответ

2 голосов
/ 10 апреля 2020

В томах у вас есть postgres-db-volume, но в томах монтирования вы дали postgres-vol, что не соответствует и приводит к этой ошибке.

Документы о том, как использовать azure общий файловый ресурс для динамической c PV подготовки.

...