我有一个应用程序,它依赖于4个docker数据容器的数据,它需要运行一些测试。目前,我有他们的docker-compose文件和他们的图像,但我不能访问数据容器Dockerfile或实际数据。
这个应用程序在docker-compose中的工作原理如下:应用程序名为rtsp_server,它从st-andries4等数据容器加载不同的卷(我刚刚编写了其中一个)。
这是他们的docker-compose:
# The application
rtsp_server:
image: rtsp_server_image
volumes_from:
- rtsp_data_st_andries4:ro
ports:
- "8554:8554"
command: python ./rtsp-server.py /rtsp_data/st-andries-4 st_andries_4
# Data container
rtsp_data_st_andries4:
image: st_andries_4:1
volumes:
- /rtsp_data/st-andries-4
command: /bin/true
mem_limit: 10000000000我已经将应用程序rtsp_server带到了Kubernetes,它工作得很好,但我还需要把数据容器带到k8s,但我不知道怎么做。
发布于 2019-10-14 22:04:13
我不太确定你是想在Kubernetes上创建一个持久卷,还是想从现有的Docker数据容器中移动数据。
这是一个关于如何Configure a Pod to Use a PersistentVolume for Storage的Kubernetes文档。
首先,您应该创建一个PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"然后是PersistentVolumeClaim,因为这是pod用来请求物理存储的。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi最后,您可以在pod中添加如下所示的volumeMounts:
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage更新
要在多个pod之间共享PVC,您必须设置:
spec:
accessModes:
- ReadWriteMany我还建议您查看此博客Create ReadWriteMany PersistentVolumeClaims on your Kubernetes Cluster,并选择适合您需求的解决方案。
您可能还会对Rook项目感兴趣,该项目是Kubernetes的开源云原生存储。
https://stackoverflow.com/questions/58376230
复制相似问题