简体   繁体   中英

How to access postgresql, deployed on Kubernetes cluster

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:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM