Ssl 配置多个网关时,Istio和SDS不工作的HTTPS入口(返回404)
当我在一个名称空间中配置多个网关-虚拟服务对(每个对都指向基本HTTP服务)时,只有一个服务是可访问的。对另一方的调用通常是第二个配置的返回404。如果删除了第一个网关,则第二个服务可以访问 几周前我提出了一个github问题,其中包含了我的所有配置,但到目前为止没有响应。有人知道我做错了什么吗?基于此 网关端口名称必须是唯一的,如果它们共享同一端口。这是我们区分不同RDS块的唯一方法。我们刚才也讨论过这项议案。除非绝对必要,否则我不会动摇这条船 更多关于这个问题 选中它,事实上,若您配置了多个网关,第一个网关的名称是https,但第二个是https bookinfoSsl 配置多个网关时,Istio和SDS不工作的HTTPS入口(返回404),ssl,kubernetes,istio,Ssl,Kubernetes,Istio,当我在一个名称空间中配置多个网关-虚拟服务对(每个对都指向基本HTTP服务)时,只有一个服务是可访问的。对另一方的调用通常是第二个配置的返回404。如果删除了第一个网关,则第二个服务可以访问 几周前我提出了一个github问题,其中包含了我的所有配置,但到目前为止没有响应。有人知道我做错了什么吗?基于此 网关端口名称必须是唯一的,如果它们共享同一端口。这是我们区分不同RDS块的唯一方法。我们刚才也讨论过这项议案。除非绝对必要,否则我不会动摇这条船 更多关于这个问题 选中它,事实上,若您配置了多个
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
hosts:
- "httpbin.example.com"
编辑
这很奇怪,但我有另一个想法
在pilot中有一个具有以下行的:
routeName := gatewayRDSRouteName(s, config.Namespace)
此更改通过添加
HTTPS RDS路由的命名空间后缀。端口名仍然必须为空
名称空间边界内唯一,但此更改会导致添加
更具体的范围界定相当琐碎
您是否可以尝试创建如下示例中所示的两个名称空间
范例
在适当的名称空间中部署部署、服务、虚拟服务和网关的所有内容,并让我知道这是否有效
你能试着把主机从*改成一些名字吗?除了尝试ServerCertificate和privateKey之外,这是我唯一想到的事情,但从评论来看,我想你已经尝试过了
如果有帮助,请告诉我。我尝试使网关端口名唯一。这没用。只有一个网关可以工作。使用sds时,它们不能共存。我将尝试使用指定ServerCertificate和PrivateKey的旧方法。我注意到失败的调用中出现了错误的服务器证书。在下面的代码段中,它应该是CN=some.host.com….``$curl-v-k-noproxy**使用certpath初始化NSS:sql:/etc/pki/nssdb*跳过SSL对等证书验证*使用TLS\u ECDHE\u RSA\u和\u AES\u 128\u GCM\u SHA256*服务器证书进行SSL连接:*主题:CN=other.host.com,O=Dis,L=Springfield,ST=Denial,C=US…
routeName := gatewayRDSRouteName(s, config.Namespace)
apiVersion: v1
kind: Namespace
metadata:
name: httpbin
labels:
name: httpbin
istio-injection: enabled
---
apiVersion: v1
kind: Namespace
metadata:
name: nodejs
labels:
name: nodejs
istio-injection: enabled