【问题标题】:How do I make it accessible from outside my local k8s through traefik如何通过 traefik 从本地 k8s 外部访问它
【发布时间】:2022-06-30 20:36:25
【问题描述】:

我正在使用 kubernetes,并且我已经使用 kind 在本地电脑上设置了一个 kluster。我还安装了 traefik 作为入口控制器,并且我已经设法通过一些入口访问了我在 kluster 和 grafana 中部署的 api(不进行端口转发或类似的事情)。但是对于 mongo 我不能。 API 和 grafana 需要 IngressRoute,而 mongo 需要 IngressRouteTCP

我定义的 IngressRouteTCP 是这样的:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
  name: mongodb-ingress-tcp
  namespace: mongo_namespace
spec:
  entryPoints:
    - web
  routes:
    - match: HostSNI(`mongo.localhost`)
      services:
        - name: mongodb
          port: 27017

但我收到此错误:

我知道我可以使用端口转发,但我想以这种方式(使用入口)

非常感谢

【问题讨论】:

    标签: mongodb traefik


    【解决方案1】:

    需要指定tls参数

    喜欢这个

      tls:
        certResolver: "bar"
        domains:
          - main: "snitest.com"
          sans:
            - "*.snitest.com"
    

    为避免使用 TLS,您需要匹配所有路由 HostSNI(`*`)

    需要注意的是,服务器名称指示是 TLS 协议的扩展。
    因此,只有 TLS 路由器才能使用该规则指定域名。
    但是,对于带有非 TLS 路由器的 HostSNI 有一个特殊用例:当想要一个匹配所有(非 TLS)请求的非 TLS 路由器时,应该使用特定的 HostSNI(`*`) 语法。
    

    DOCS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2016-08-04
      相关资源
      最近更新 更多