我一直试图在kubernetes中使用以下yaml创建postgresdb,但遇到以下错误
The Deployment "postgres-airflow" is invalid: spec.template.spec.containers[0].volumeMounts[0].name: Not found: "postgres-vol"
可以请一些对此有所说明吗?不知道我缺少什么,如果有人可以让我知道如何使用azure文件共享作为storageClass来创建动态卷,这将更加有用。任何帮助将不胜感激
我正在用来部署postgres的Yaml文件如下...
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: {}
最佳答案
在卷中,您具有postgres-db-volume
,但是在卷中,您提供的postgres-vol
不匹配并导致此错误。
有关如何使用azure文件共享进行动态PV设置的Docs。
关于kubernetes - 找不到Kubernetes容器VolumeMounts吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61134549/