Sh Práci kontejneru poté, co je zastaven

0

Otázka

Jsem zalohy můj Postgresql databáze pomocí této cronjob:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: postgres-backup
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: postgres-backup
            image: postgres:10.4
            command: ["/bin/sh"]
            args: ["-c", 'echo "$PGPASS" > /root/.pgpass && chmod 600 /root/.pgpass && pg_dump -Fc -h <host> -U <user> <db> > /var/backups/backup.dump']
            env:
            - name: PGPASS
              valueFrom:
                secretKeyRef:
                  name: pgpass
                  key: pgpass
            volumeMounts:
            - mountPath: /var/backups
              name: postgres-backup-storage
          restartPolicy: Never
          volumes:
          - name: postgres-backup-storage
            hostPath:
              path: /var/volumes/postgres-backups
              type: DirectoryOrCreate

V cronjob dostane úspěšně proveden, zálohovat je a uložit v kontejneru pro Práci, ale tento kontejner je zastaven po úspěšném provedení skriptu. samozřejmě, že chci pro přístup zálohování souborů v kontejneru, ale nemůžu, protože je zastaven nebo ukončen.

existuje způsob, jak spouštět příkazy shellu v kontejneru poté, co je ukončen, takže mám přístup k zálohování souborů uložených v kontejneru?

Vím, že bych mohl udělat, že na uzel, ale nemám oprávnění k přístupu.

containers kubernetes shell
2021-11-18 16:12:13
1

Nejlepší odpověď

2

@zmatený génius mi dal skvělý nápad vytvořit další stejný kontejner pro přístup k souborů dump, takže to je řešení, které funguje:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: postgres-backup
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: postgres-backup
            image: postgres:10.4
            command: ["/bin/sh"]
            args: ["-c", 'echo "$PGPASS" > /root/.pgpass && chmod 600 /root/.pgpass && pg_dump -Fc -h <host> -U <user> <db> > /var/backups/backup.dump']
            env:
            - name: PGPASS
              valueFrom:
                secretKeyRef:
                  name: dev-pgpass
                  key: pgpass
            volumeMounts:
            - mountPath: /var/backups
              name: postgres-backup-storage
          - name: postgres-restore
            image: postgres:10.4
            volumeMounts:
            - mountPath: /var/backups
              name: postgres-backup-storage
          restartPolicy: Never
          volumes:
          - name: postgres-backup-storage
            hostPath:
            # Ensure the file directory is created.
              path: /var/volumes/postgres-backups
              type: DirectoryOrCreate

poté, co, že jeden prostě musí sh do "postgres-obnovit" kontejner a získejte přístup k výpisu souborů.

díky

2021-11-18 19:25:09

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................