如何访问部署在Kubernetes集群上的postgresql



我已经在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

最新更新