我有一個關于 kubernates 的問題要問你。我需要使用 Kubernates 在服務上配置水平負載均衡器。具體來說,在我的 yaml 檔案中,我使用了以下型別:Horizo??ntalPodAutoscaler;問題出在上傳檔案到volume的邏輯上:簡而言之,當一個pod被釋放時,里面的資料被覆寫,所以有了新的pod,volume就被清空了。我的配置錯了嗎?具體來說,我在Dockerfile中設定volume來構建對應的用Kubernates啟動的服務鏡像。
uj5u.com熱心網友回復:
將資料存盤在 Dockerimage 中不是一個好主意,但是您仍然可以做的是,
- 復制資料到docker鏡像
- 在 Kubernetes POD 中創建 PVC 卷
- 將 POD 附加到 PVC 并使用卷掛載
- 使用init容器將資料從docker路徑拷貝到volume掛載檔案路徑
檔案
FROM python:latest
COPY data.csv ./tmp/
Kubernetes YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: POD-name
spec:
replicas: 2
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
initContainers:
- name: copy
image: busybox:1.28
command: ["/bin/sh", "-c", "cp /tmp/data.csv /data/data.csv"]
volumeMounts:
- name: pvc
mountPath: /data/
containers:
- name: test
image: image:tag
ports:
- containerPort: 8080
env:
- name: PORT
value: "8080"
volumeMounts:
- mountPath: "/data/"
name: pvc
volumes:
- name: pvc
persistentVolumeClaim:
claimName: pvc-claim
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534138.html
