首页 > 解决方案 > PSQL + Kubernetes - 我的表在哪里?

问题描述

我有一个在服务上运行的 Scala 应用程序,使用 PostgreSql 服务,数据库管理插件(Slick)正在创建表

但是,需要编辑一个特定的表,我找不到它!

postgres 服务:

apiVersion: v1
kind: Service
metadata:
  name: core-db
spec:
  ports:
    - port: 5432
  selector:
    app: core-db
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: core-db
spec:
  template:
    metadata:
      labels:
        app: core-db
    spec:
      containers:
        - image: "image"
          name: core-db
          imagePullPolicy: IfNotPresent
          env:
            - name: POSTGRES_USER
              value: postgres
            - name: POSTGRES_PASSWORD
              value: postgres
          ports:
            - containerPort: 5432
              name: core-db
          volumeMounts:
            - name: core-storage
              mountPath: /var/lib/postgresql/db-data
      volumes:
          - name: core-storage
            persistentVolumeClaim:
                claimName: core-pv-claim
      imagePullSecrets:
        - name: regcred
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: core-pv-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi

我进入吊舱:

kubectl exec POD -it -- psql -U postgres

但 \d 显示没有关系

我做错了什么,我的数据到底在哪里?

编辑

\l
postgres  
app   
template0 
template1 

\c postgres
\dt
No relations found.

\c app
\dt
No relations found.

标签: postgresqlkubernetesgcloud

解决方案


我要检查问题出在哪里的步骤:

  1. 该应用程序正在运行,如果它是持久化数据,这些数据应该在某个地方。尝试kubectl delete deploy core-db。该应用程序是否仍在工作并保存数据?

    我期望no得到答案,因此我们可以转到以下几点。

    如果答案是yes,那么问题可能是:

    • 应用程序内的 db 连接字符串

    • 服务,你有多少个端点?kubectl get ep core-db

  2. exec psql pod 并连接到 postgres db \c postgres,然后\dt. 这里有桌子吗?

  3. exec psql pod 并连接到 app db\c app然后\dt. 这里有桌子吗?

  4. exec psql pod 并连接到 postgres 然后SELECT * FROM pg_stat_activity WHERE datname = 'app';


推荐阅读