【发布时间】:2021-03-10 04:18:35
【问题描述】:
一些 Dockerfile 有一个VOLUME 命令。
当这些容器部署在 Kubernetes 中,但没有提供 Kubernetes 卷时会发生什么:没有持久卷 (PV),也没有持久卷声明 (PVC)?
文件存储在哪里?
音量是否持久?
例如,Docker 的library/postgreSQL 容器镜像的 Dockerfile 镜像有:
VOLUME /var/lib/postgresql/data
stable/postgresql helm 图表不会总是创建 PV:
kind: StatefulSet
### SNIP SNIP ###
containers:
- name: {{ template "postgresql.fullname" . }}
image: {{ template "postgresql.image" . }}
### SNIP SNIP ###
volumeMounts:
{{ if .Values.persistence.enabled }}
- name: data
mountPath: {{ .Values.persistence.mountPath }}
subPath: {{ .Values.persistence.subPath }}
{{- end }}
### SNIP SNIP ###
{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }}
- name: data
persistentVolumeClaim:
{{- with .Values.persistence.existingClaim }}
claimName: {{ tpl . $ }}
{{- end }}
{{- else if not .Values.persistence.enabled }}
- name: data
emptyDir: {}
{{- else if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
volumeClaimTemplates:
- metadata:
name: data
{{- with .Values.persistence.annotations }}
annotations:
{{- range $key, $value := . }}
{{ $key }}: {{ $value }}
{{- end }}
{{- end }}
spec:
accessModes:
{{- range .Values.persistence.accessModes }}
- {{ . | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{ include "postgresql.storageClass" . }}
{{- end }}
【问题讨论】:
标签: docker kubernetes dockerfile docker-volume persistent-volumes