【发布时间】:2021-12-30 06:58:20
【问题描述】:
我有这种情况,我想将在 docker 容器上运行的 postgres 数据库连接到在本地 kubernetes 集群 (minikube) 上运行的 pgadmin Web 客户端
我已经让 postgres 使用 docker,pgadmin 使用 kubernetes。
我可以通过网络浏览器访问 pgadmin (pgadminclient.com)
我可以从kubernetes外部访问容器中的postgres,但是我不能从kubernetes pgadmin访问postgres,我可以使用什么样的组件来实现连接并将正确的值放在这里
apiVersion: apps/v1
kind: Deployment
metadata:
name: pgadmin-deployment
labels:
app: pgadmin
spec:
replicas: 1
selector:
matchLabels:
app: pgadmin
template:
metadata:
labels:
app: pgadmin
spec:
containers:
- name: pgadmin4
image: dpage/pgadmin4
ports:
- containerPort: 80
env:
- name: PGADMIN_DEFAULT_EMAIL
value: rocco@mail.com
- name: PGADMIN_DEFAULT_PASSWORD
value: qwerty
---
apiVersion: v1
kind: Service
metadata:
name: pgadmin-service
spec:
selector:
app: pgadmin
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pgadmin-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: pgadminclient.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: pgadmin-service
port:
number: 80
还有我的 docker-compose 文件
version: "3.8"
services:
postgresdb:
image: postgres
volumes:
- db-data:/var/lib/postgresql/data
restart: always
ports:
- "5432:5432"
environment:
- DATABASE_HOST=127.0.0.1
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=qwerty
- POSTGRES_DB=practicedb
volumes:
db-data:
【问题讨论】:
-
你也可以在 Kubernetes 中运行数据库吗?还是 Compose 中的 pgadmin?是什么促使这种设置同时使用多个容器运行时?
-
嗨大卫!感谢您的评论。我可以在 kubernetes 中运行数据库,但是由于我正在学习,我想尝试并了解如何实现这样的连接。因为下一步我要做的是使用 AWS RDS 连接一个 postgres,所以数据库也将在集群之外。
标签: postgresql docker kubernetes pgadmin