我已经在kubernetes pod上部署了postgresqlpod,想知道如何访问postgresqlgui。我无法使用入口路径访问它,因为我知道入口仅用于https目的,而postgres遵循TCP协议。任何线索我如何通过GUI访问?
部署人员.yaml
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "postgresql-development"
namespace: "development"
spec:
selector:
matchLabels:
app: "postgresql-development"
replicas: 1
strategy:
type: "RollingUpdate"
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template:
metadata:
labels:
app: "postgresql-development"
tier: "mysql"
spec:
containers:
-
name: "postgresql-development"
image: "postgresql:12.6"
imagePullPolicy: "Always"
env:
-
name: "POSTGRES_USER"
value: "postgres"
ports:
-
containerPort: 5432
name: "postgres"
volumeMounts:
-
name: "postgresql-persistent-storage"
mountPath: "/var/lib/postgresql"
volumes:
-
name: "postgresql-persistent-storage"
persistentVolumeClaim:
claimName: "postgresql-pvc-development"
imagePullSecrets:
-
name: "postgresql"
service.yaml
---
apiVersion: "v1"
kind: "Service"
metadata:
name: "postgresql-development"
namespace: "development"
labels:
app: "postgresql-development"
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
ports:
-
port: 59799
targetPort: 5432
protocol: TCP
selector:
app: "postgresql-development"
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
tier: mysql
ingress.yaml
---
apiVersion: "networking.k8s.io/v1beta1"
kind: "Ingress"
metadata:
name: "postgresql-development-ingress"
namespace: "development"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: "/$1"
spec:
rules:
-
host: "localhost"
http:
paths:
-
backend:
serviceName: "postgresql-development"
servicePort: 59799
path: "postgresql-development/(.*)"
入口API仅适用于第7层(HTTP(。在您的情况下,您希望访问第4层(TCP(。
为了实现您的目标,您可以:
- 在您的服务上使用Nodeport
- 一个处理TCP的入口控制器,如Traefik或Nginx
- 为了当地发展,Port Forward