我们有一个用python编写的flask框架的web应用程序。应用程序代码已停靠并部署在kubernetes中。
一旦用户点击API,应用程序就会写入静态目录中的文件。我无法这样做。我知道,当我使用其他API检查静态位置中的文件列表时,它不会显示该文件。请帮忙。
YAML文件如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: backend-rc
labels:
type: backend-type
spec:
replicas: 32
template:
metadata:
labels:
type: backend-type
spec:
containers:
- name: backend-container
image: gcr.io/syw-msm/ts-m:pc-v1.0
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
dockerfile配置如下:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential python-tk
COPY . /app
WORKDIR /app
RUN chmod -R 777 /app/static
RUN pip install -r requirements.txt
RUN pip install fbprophet
ENTRYPOINT ["/usr/bin/python"]
CMD ["app.py"]
答案 0 :(得分:1)
您的定义中有32个副本。使应用程序在本地写入文件的API调用命中一个pod(副本),并且检查其存在的调用将命中另一个。预计该文件不存在。
如果将副本数量缩放为1,它将起作用。您可以尝试进行测试,但这可能不是您想要的。
如果您需要来自多个副本的r / w访问存储,则需要重新设计应用程序以使用某种形式的共享文件系统或数据库。
如果您关心该文件,无论如何这是一个好主意 - pods是短暂的,不是用于存储状态。