Dol*_*hin 4 kubernetes traefik traefik-ingress
现在我使用HostSNI(
*)
来映射 TCP 服务,就像mysql\postgresql...
Kubernetes 集群 v1.18 中的 traefik 2.2.1 一样。因为我在本地机器上并且没有有效的认证。这是配置:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: mysql-ingress-tcp-route
namespace: middleware
spec:
entryPoints:
- mysql
routes:
- match: HostSNI(`*`)
services:
- name: report-mysqlha
port: 3306
Run Code Online (Sandbox Code Playgroud)
配置在我的本地计算机上运行良好。但我仍然想知道使用映射策略的副作用
HostSNI(
)
。HostSNI(
)
不使用域名有什么缺点?是否可以在我的本地计算机上使用假域名?
Ray*_*Ray 10
对于那些需要具有 TLS 直通和 SNI 路由的 TCP 示例的人
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: test-https
namespace: mynamespace
spec:
entryPoints:
- websecure # maps to port 443 by default
routes:
- match: HostSNI(`my.domain.com`)
services:
- name: myservice
port: 443
tls:
passthrough: true
Run Code Online (Sandbox Code Playgroud)
截至最新的 Traefik 文档(此时为 2.4):
如果 HTTP 路由器和 TCP 路由器都侦听相同的入口点,则 TCP 路由器将在 HTTP 路由器之前应用
值得注意的是,服务器名称指示是 TLS 协议的扩展。因此,只有 TLS 路由器才能使用该规则指定域名。但是,非 TLS 路由器必须明确使用带有 *(每个域)的规则来声明每个非 TLS 请求都将由路由器处理。
因此,回答您的问题:
HostSNI(`*`)
是使用ingressRouteTCP
不带tls 的唯一合理方法——因为您明确要求 TCP 路由器,而 TCP 不支持 TLS。
ingressRouteTCP
中取得了不同程度的成功,但它似乎确实是受支持的配置2HostSNI(`some.fqdn.here`)
tls:
entrypoint
(即mysql
)的任何流量都将通过此路由ingressRouteTCP
ingressRoute
具有相同的entrypoint
,则将ingressRouteTCP
按照1优先mysql
通过同一个路由多个不同的服务entrypoint: mysql
,您将无法基于此配置 归档时间: |
|
查看次数: |
17666 次 |
最近记录: |