如何使用Docker Desktop for Windows Kubernetes和Ingres nginx公开postgres tcp端口

如何使用Docker Desktop for Windows Kubernetes和Ingres nginx公开postgres tcp端口,docker,nginx,kubernetes,nginx-ingress,Docker,Nginx,Kubernetes,Nginx Ingress,我正在和kubernetes一起使用“Docker Desktop for Windows”。到目前为止,它是伟大的 我想管理我的postgress数据库(TCP:5432)。我使用的是kubernetes的“ingress nginx”入口控制器,它可以 以下是我到目前为止的情况: apiVersion: v1 kind: ConfigMap metadata: name: tcp-services namespace: ingress-nginx data: 5432: &quo

我正在和kubernetes一起使用“Docker Desktop for Windows”。到目前为止,它是伟大的

我想管理我的postgress数据库(TCP:5432)。我使用的是kubernetes的“ingress nginx”入口控制器,它可以

以下是我到目前为止的情况:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  5432: "ingress-nginx/postgres:5432"

---
# SEE: https://kubernetes.io/docs/concepts/services-networking/ingress/

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-myproject.com
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: clusterissuer-selfsigned
    # See: https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/rewrite/README.md
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
spec:
  tls:
  - hosts:
    - www.myproject.com
    secretName: tls-myproject
  rules:
  # Avoid Quasar build paths:  /css, /fonts, /icons, /js
  - http:
      paths:
        # See https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/rewrite/README.md
      - path: /data(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: backend
            port:
              number: 80
...
现在我需要:

  • 添加“-tcp services configmap=”参数
  • 如果1)没有自动执行此操作,则显示5432
  • 我在kubernetes仪表板中找到了ingress nginx控制器,并进行了如下手动编辑,但其行为没有改变

    spec:
      replicas: 1
      selector:
        matchLabels:
          app.kubernetes.io/component: controller
          app.kubernetes.io/instance: ingress-nginx
          app.kubernetes.io/name: ingress-nginx
      template:
        metadata:
          creationTimestamp: null
          labels:
            app.kubernetes.io/component: controller
            app.kubernetes.io/instance: ingress-nginx
            app.kubernetes.io/name: ingress-nginx
        spec:
          volumes:
            - name: webhook-cert
              secret:
                secretName: ingress-nginx-admission
                defaultMode: 420
          containers:
            - name: controller
              image: >-
                k8s.gcr.io/ingress-nginx/controller:v0.41.0@sha256:e6019e536cfb921afb99408d5292fa88b017c49dd29d05fc8dbc456aa770d590
              args:
                - /nginx-ingress-controller
                - '--publish-service=$(POD_NAMESPACE)/ingress-nginx-controller'
                - '--election-id=ingress-controller-leader'
                - '--ingress-class=nginx'
                - '--configmap=$(POD_NAMESPACE)/ingress-nginx-controller'
                - '--validating-webhook=:8443'
                - '--validating-webhook-certificate=/usr/local/certificates/cert'
                - '--validating-webhook-key=/usr/local/certificates/key'
                - '--tcp-services-configmap=ingress-nginx/tcp-services'
    

    我错过了什么?我如何配置此,而不必手动编辑它?谢谢大家!

    我认为有两个问题

  • 您需要在postgress安装中单独安装nginx。这意味着您将拥有一些nginx吊舱/部署,以及存在于入口nginx名称空间中的服务。要执行此操作,请遵循指南。对于docker桌面部署,建议您遵循cloud部分中的yaml文件。是一个经历过这个过程的人

  • 一旦nginx安装到集群上,您需要从postgress部署/pod->service->entres开始。这些名称空间将与您的ingress nginx one不同(默认设置可以)。要配置它,您可以按照位于的指南进行操作。如果您想在此过程中进行测试,可以使用kubernetes
    port forward
    ing命令将postgress pod转发到本地机器。您还可以使用相同的方法测试您的服务


  • 我认为有两个问题

  • 您需要在postgress安装中单独安装nginx。这意味着您将拥有一些nginx吊舱/部署,以及存在于入口nginx名称空间中的服务。要执行此操作,请遵循指南。对于docker桌面部署,建议您遵循cloud部分中的yaml文件。是一个经历过这个过程的人

  • 一旦nginx安装到集群上,您需要从postgress部署/pod->service->entres开始。这些名称空间将与您的ingress nginx one不同(默认设置可以)。要配置它,您可以按照位于的指南进行操作。如果您想在此过程中进行测试,可以使用kubernetes
    port forward
    ing命令将postgress pod转发到本地机器。您还可以使用相同的方法测试您的服务


  • 我认为港口远期可能是最简单的可行办法。谢谢我认为港口远期可能是最简单的可行办法。谢谢