I have deployed postgresql pod on kubernetes pod, and want to know how can I access postgresql gui. I am not able to access it with ingress path, as I got to know ingress are meant for https purpose only whereas postgres follows TCP protocol. Any lead how can I access through GUI?
deployment.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/(.*)"
Ingress API are only for Layer 7 (HTTP). In your case you want to access Layer 4 (TCP).
To achieve you goal, you can:
for local development, Port Forward
1: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
2: https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#kind-ingressroutetcp
3: https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/
4: https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/