postgresql - 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.
解决方案
我要检查问题出在哪里的步骤:
该应用程序正在运行,如果它是持久化数据,这些数据应该在某个地方。尝试
kubectl delete deploy core-db
。该应用程序是否仍在工作并保存数据?我期望
no
得到答案,因此我们可以转到以下几点。如果答案是
yes
,那么问题可能是:应用程序内的 db 连接字符串
服务,你有多少个端点?
kubectl get ep core-db
exec psql pod 并连接到 postgres db
\c postgres
,然后\dt
. 这里有桌子吗?exec psql pod 并连接到 app db
\c app
然后\dt
. 这里有桌子吗?exec psql pod 并连接到 postgres 然后
SELECT * FROM pg_stat_activity WHERE datname = 'app';
推荐阅读
- c# - 如何防止算术溢出破坏类的内部状态?
- apache-kafka - DynamoDB 连接器处于降级状态
- java - 当我点击下一首歌时,我的搜索栏有时会更新,有时不会。我没有得到我的代码中的错误可能是使用搜索栏
- while-loop - 在文件处理中将文件的内容复制到另一个文件中
- typescript - 在角度给出错误中从量角器迁移到柏树
- button - 'HymnLyrics' 初始化程序的结果未使用
- c++ - 为什么大型数组会运行时错误而向量不会?
- c++ - 编译器是否优化了 `while(true)` 循环的条件检查?(C++)
- javascript - 试图用 casperjs 按 id 填充表格元素
- python-3.x - 已安装 lxml 但仍报告未安装