[英]docker data volume vs kubernetes persistent storage
docker engine supports data volumes docker 引擎支持数据量
A Docker data volume persists after a container is deleted
删除容器后Docker数据卷仍然存在
docker run
and docker-compose
both support it: docker run
和docker-compose
都支持它:
docker run --volume data_vol:/mount/point
volumes
key volumes
键命名卷kubernetes also supportspersistent volumes , but does it support the same concept of having a data volume - that is, a volume which resides within a container? kubernetes 也支持持久卷,但它是否支持具有数据卷的相同概念 - 即驻留在容器内的卷?
if kubernetes supports a data volume (within a container):如果 kubernetes 支持数据卷(在容器内):
i found some related questions , but couldn't get the answer i am looking for.我发现了一些相关的问题,但无法得到我正在寻找的答案。
What you are trying to say is:你想说的是:
If you do not specify a host path for a docker volume mount, docker dynamically provisions a path and persist it between restarts.如果您没有为 docker 卷挂载指定主机路径,docker 会动态提供路径并在重新启动之间保留它。
"that is, a volume which resides within a container" Volume is generated outside of container and mounted later. “即,位于容器内的卷”卷是在容器外生成并稍后安装。
For example:例如:
# data_vol location is decided by docker installation
docker run --volume data_vol:/mount/point
# host path is explicitly given
docker run --volume /my/host/path:/mount/point
In kubernetes terms, this is similar to dynamic provisioning.在 Kubernetes 术语中,这类似于动态配置。 If you want dynamic provisioning, you need to have Storage classes depending on your storage backend.
如果您想要动态配置,则需要根据您的存储后端拥有存储类。
Please read https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/ .请阅读https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/ 。
If you want to specify a host path, following is an example.如果要指定主机路径,以下是一个示例。 You can also achieve similar results by using NFS, block storage etc.
您还可以通过使用 NFS、块存储等来获得类似的结果。
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
hostPath:
path: /home/user/my-vol
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-ss
spec:
replicas: 1
selector:
matchLabels:
app: my-ss
serviceName: my-svc
template:
metadata:
labels:
app: my-ss
spec:
containers:
- image: ubuntu
name: my-container
volumeMounts:
- mountPath: /my-vol
name: my-vol
volumeClaimTemplates:
- metadata:
name: my-vol
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
selector:
matchLabels:
app: my-ss
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.