Home > Software design >  K8s postgres backup failed during S3 copy
K8s postgres backup failed during S3 copy

Time:03-07

I am trying to backup postgres database from RDS using K8s cronjob. I have created cronjob for it my EKS cluster and credentials are in Secrets. When Its try to copy backup fail into AWS S3 bucket pod fails with error: aws: error: argument command: Invalid choice, valid choices are: I tried different options but its not working.

Anybody please help in resolving this issue. Here is brief info: K8s cluster is on AWS EKS Db is on RDS I am using following config for my cronjob:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
 name: postgres-backup
 spec:
  schedule: "*/3 * * * *"
  jobTemplate:
    spec:
      backoffLimit: 0
      template:
        spec:
          initContainers:
            - name: dump
              image: postgres:12.1-alpine
              volumeMounts:
                - name: data
                  mountPath: /backup
              args:
                - pg_dump
                - "-Fc"
                - "-f"
                - "/backup/redash-postgres.pgdump"
                - "-Z"
                - "9"
                - "-v"
                - "-h"
                - "postgress.123456789.us-east-2.rds.amazonaws.com"
                - "-U"
                - "postgress"
                - "-d"
                - "postgress"
              env:
                - name: PGPASSWORD
                  valueFrom:
                    secretKeyRef:
                      # Retrieve postgres password from a secret 
                      name: postgres
                      key: POSTGRES_PASSWORD
          containers:
            - name: save
              image: amazon/aws-cli
              volumeMounts:
                - name: data
                  mountPath: /backup
              args:
                - aws
                - "--version"
              envFrom:
                - secretRef:
                    # Must contain AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION
                    name: s3-backup-credentials
          restartPolicy: Never
          volumes:
            - name: data
              emptyDir: {}

CodePudding user response:

Try this:

...
containers:
- name: save
  image: amazon/aws-cli
  ...
  args:
  - "--version"  # <-- the image entrypoint already call "aws", you only need to specify the arguments here.
...
  • Related