
我有這種情況,我想將在 docker 容器上運行的 postgres 資料庫連接到在本地 kubernetes 集群(minikube)上運行的 pgadmin Web 客戶端
我已經讓 postgres 與 docker 一起作業,而 pgadmin 與 kubernetes 一起作業。
我可以通過 Web 瀏覽器 (pgadminclient.com) 訪問 pgadmin
我可以從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: [email protected]
- 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:
uj5u.com熱心網友回復:
您的 minikube 集群使用的 VM 與 docker 在 windows/mac 上用于提供容器運行時的 VM 不同。這使得訪問非常棘手。
但是由于您的用例是模擬集群外的資料庫,因此它的服務非常好。您已經在外部公開了 docker 埠,因此您可以使用主機的外部 IP(來自 wifi、lan 等)作為 pgadmin 的主機。minikube 將訪問外部 ip/埠,然后將其映射回 docker vm 和容器。(我沒有測驗它,但它應該可以作業。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/398543.html
標籤:PostgreSQL的 码头工人 Kubernetes 管理员
上一篇:連接被拒絕:在docker-compose上的Jetty上運行的web應用程式上的mariaDB
下一篇:谷歌云部署容器虛擬機“命令”選項
