Postgres / K8S: PANI C не удалось найти действительную запись контрольной точки / CrashLoopBackOff - PullRequest
1 голос
/ 09 марта 2020

Postgres не может начать выдавать ошибку:

PANIC could not locate a valid checkpoint record

В Google есть много решений, но все они должны подключить модуль для выполнения некоторых команд pg.

Но, поскольку я использую K8S, мой модуль переходит в состояние: CrashLoopBackOff, поэтому я больше не могу подключиться к нему.

Как мне сделать, чтобы исправить мою postgres DB?

РЕДАКТИРОВАТЬ:

Я пытался запустить команду:

pg_resetwal /var/lib/postgresql/data

с:

...
spec:
      containers:
      - args:
        - pg_resetwal
        - /var/lib/postgresql/data

Но я получаю:

pg_resetwal: cannot be executed by "root"
You must run pg_resetwal as the PostgreSQL superuser.

Может go дальше ...

EDIT2:

Я попытался запустить новый модуль с теми же прикрепленными томами и тем же контейнером postgres, но меняя команда для: pg_resetwal /var/lib/postgresql/data

Я также добавил:

securityContext:
              runAsUser: 0

Вот yaml для развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    reloader.stakater.com/auto: "true"
  labels:
    app: metadata-postgres-fix
  name: metadata-postgres-fix
  namespace: metadata
spec:
  selector:
    matchLabels:
      app: metadata-postgres-fix
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metadata-postgres-fix
    spec:
      containers:
      - args:
        - pg_resetwal
        - /var/lib/postgresql/data
        envFrom:
          - secretRef:
              name: metadata-env
        image: postgres:11.3
        name: metadata-postgres-fix
        securityContext:
          runAsUser: 0
        ports:
        - containerPort: 5432
        imagePullPolicy: Always
        volumeMounts:
        - mountPath: /etc/postgresql/postgresql.conf
          name: metadata-postgres-data
          subPath: postgres.conf
        - mountPath: /docker-entrypoint-initdb.d/init.sh
          name: metadata-postgres-data
          subPath: init.sh
        - mountPath: /var/lib/postgresql/data
          name: metadata-postgres-claim
          subPath: postgres
      restartPolicy: Always
      volumes:
      - name: metadata-postgres-data
        configMap:
          name: cfgmap-metadata-postgres
      - name: metadata-postgres-claim
        persistentVolumeClaim:
          claimName: metadata-postgres-claim
      nodeSelector:
        kops.k8s.io/instancegroup: nodes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...