devops:setup_pgadmin_on_kubernetes

https://hub.helm.sh/charts/cetic/pgadmin

helm repo add cetic https://cetic.github.io/helm-charts
helm repo update
helm install cetic/pgadmin --name pgadmin --namespace pgadmin --set image.repository=dpage/pgadmin4:4.15 --set service.type=ClusterIP --set image.pullPolicy=IfNotPresent

PersistentVolume

apiVersion: v1
kind: PersistentVolume
metadata:
   name: pgadmin-pv
   namespace: pgadmin
   labels:
     app: pgadmin
spec:
  capacity:
    storage: 4Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: "/kubernetes_volumes/pgadmin-data"
    type: Directory
  persistentVolumeReclaimPolicy: Retain

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt
  name: pgadmin-ingress
  namespace: pgadmin
spec:
  rules:
  - host: pgadmin.autosys.tk
    http:
      paths:
      - backend:
          serviceName: pgadmin
          servicePort: 80
        path: /
  tls:
  - hosts:
    - pgadmin.autosys.tk
    secretName:  pgadmin-autosys-tk-tls

Ошибки

После апгрейда docker-образа с версии 4.15 до 4.17 под не смог запуститься с ошибкой:

WARNING: Failed to set ACL on the directory containing the configuration database: [Errno 1] Operation not permitted: '/var/lib/pgadmin'
PermissionError: [Errno 1] Operation not permitted: '/var/lib/pgadmin/sessions'

Это произошло потому, что у пользователь, от имени которого исполняется pgadmin, не является владельцем директории, которая смонтирована как persistentVolume. Поэтому, когда контейнер запускается (но еще не упал с Error) нужно найти процесс pgadmin:

#ps -aux | grep pgadmin
5050     16492  0.0  0.1  24720 22892 ?        Ss   16:07   0:00 /usr/local/bin/python /usr/local/bin/gunicorn --timeout 86400 --bind [::]:80 -w 1 --threads 25 --access-logfile - run_pgadmin:app

И сделать owner'ом папки пользователя с указанным id. В хостовой системе, на которой исполняется контейнер, такого пользователя может и не быть. Главное, чтобы в ACL директории был прописан правильный id:

sudo chown 5050:5050 /kubernetes_volumes/pgadmin-data/ -R
Enter your comment. Wiki syntax is allowed:
G K E E K
 
  • devops/setup_pgadmin_on_kubernetes.txt
  • Last modified: 2020/01/18 16:45
  • by admin