gpt4 book ai didi

docker - 如何在 Kubernetes 中保存数据?我试过 Persistent Volume 但它没有解决问题

转载 作者:行者123 更新时间:2023-12-05 05:48:00 24 4
gpt4 key购买 nike

代码读写的运行容器中有一个名为“data-persistent”的文件夹,我想保存在该文件夹中所做的更改。当我使用持久卷时,它会删除/隐藏该文件夹中的数据,并且代码会出错。那么我的方法应该是什么。

FROM python:latest
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
#RUN mkdir data-persistent
ADD linkedin_scrape.py .
COPY requirements.txt ./requirements.txt
COPY final_links.csv ./final_links.csv
COPY credentials.txt ./credentials.txt
COPY vectorizer.pk ./vectorizer.pk
COPY model_IvE ./model_IvE
COPY model_JvP ./model_JvP
COPY model_NvS ./model_NvS
COPY model_TvF ./model_TvF
COPY nocopy.xlsx ./nocopy.xlsx
COPY data.db /data-persistent/
COPY textdata.txt /data-persistent/
RUN ls -la /data-persistent/*
RUN pip install -r requirements.txt
CMD python linkedin_scrape.py --bind 0.0.0.0:8080 --timeout 90

还有我的部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-first-cluster1
spec:
replicas: 2
selector:
matchLabels:
app: scrape
template:
metadata:
labels:
app: scrape
spec:
containers:
- name: scraper

image: image-name
#
ports:
- containerPort: 8080
env:
- name: PORT
value: "8080"

volumeMounts:
- mountPath: "/dev/shm"
name: dshm
- mountPath: "/data-persistent/"
name: tester
volumes:
- name: dshm
emptyDir:
medium: Memory
- name: tester
persistentVolumeClaim:
claimName: my-pvc-claim-1

让我解释一下代码的工作流程。代码从 textdata.txt 文件中读取,该文件包含要抓取的链接索引,例如从 100 到 150,然后它抓取配置文件,将它们插入到 data.db 文件中,然后将要在下一次运行中抓取的序列写入 texdata.txt 文件,例如150 到 200。

最佳答案

首先,k8s卷挂载点覆盖原有文件系统/data-persistent/

要解决这种情况,您有很多选择

解决方案一

  • 编辑您的 docker 文件以将本地数据复制到/tmp-data-persistent
  • 然后添加“初始化容器”,将/tmp-data-persitent 的内容复制到/data-persistent,将数据复制到卷并应用持久性

方案二

  • 在 docker images 中复制数据是不好的,这会增加图像大小,并且还会统一代码和数据更改管道

  • 最好将数据保存在“s3”之类的任何共享存储中,并让“init container”比较和同步数据

如果像s3这样的云服务不可用

  • 您可以使用支持多读/写挂载的持久卷类型

  • 将相同的卷附加到另一个部署{使用 busybox 图像作为示例}并使用“kubectl cp”进行复制

  • 在完成复制后将临时部署规模缩减为零,您也是可以将其作为 CI 管道的一部分

关于docker - 如何在 Kubernetes 中保存数据?我试过 Persistent Volume 但它没有解决问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70895121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com