[FIXED] HorizontalPodAutoscaler überschreibt Volume beim Freigeben eines Pods

Ausgabe

ich habe eine Frage zu kubernates. Ich muss einen Horizontal Load Balancer für einen Dienst mit Kubernates konfigurieren. Speziell in meiner Yaml-Datei habe ich die folgende Art verwendet: HorizontalPodAutoscaler; Das Problem ergibt sich aus der Logik des Hochladens von Dateien auf das Volume: Kurz gesagt, wenn ein Pod freigegeben wird, werden die darin enthaltenen Daten überschrieben, sodass bei einem neuen Pod das Volume geleert wird. Liege ich falsch in den Konfigurationen? Konkret habe ich das Volume im Dockerfile so eingestellt, dass es das entsprechende Image des mit Kubernates gestarteten Dienstes erstellt.

Lösung

Es ist keine gute Idee, Daten in Dockerimage zu speichern, aber Sie können immer noch Folgendes tun:

  • Kopieren Sie Daten in das Docker-Image
  • Erstellen Sie im Kubernetes POD das PVC-Volume
  • Bringen Sie POD an PVC an und verwenden Sie die Volumenhalterung
  • Verwenden Sie den Init-Container , um Daten aus dem Docker-Pfad in den Pfad der Volume-Mount-Datei zu kopieren

Dockerfile

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


Beantwortet von –
Harsh Manvar


Antwort geprüft von –
Mildred Charles (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

[FIXED] Konnte dbatools nicht in Linux-Container laden

Ausgabe Ich installiere dbatools für die Ausführung auf einem Ubuntu-Container. Fehler: Could not import /usr/local/share/powershell/Modules/dbatools/1.1.142/bin/smo/coreclr/System.Security.SecureString.dll : Exception calling…