我们使用 Kubernetes 并使用 Istio Service Mesh。目前,网关中存在针对 HTTPS 的 SSL 终止。我在 istio-proxy 日志中看到 HTTP 协议是 HTTP 1.1。
由于 HTTP2 的各种优点,我想将 HTTP 1.1 升级到 HTTP2。客户端应通过 SSL/TLS 调用我们的服务 HTTP2。
我正在用这个blog https://blog-tech.groupeonepoint.com/playing-with-istio-service-mesh-on-kubernetes/有关此主题的内部演示。
这些是瓶颈:
1)我想提出一个引起最少变化的计划。我了解我需要更新网关
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- "*"
tls:
mode: SIMPLE
serverCertificate: /etc/certs/server.pem
privateKey: /etc/certs/privatekey.pem
to
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http2
protocol: HTTP2
hosts:
- "*"
tls:
mode: SIMPLE
serverCertificate: /etc/certs/server.pem
privateKey: /etc/certs/privatekey.pem
基于我在中看到的例子Istio 的网关文档 https://istio.io/docs/reference/config/networking/gateway/#Server.
我想知道:这是否允许来自浏览器(仅支持此模式)的 HTTP2 over TLS 连接?我可以像使用 HTTPS 一样提供 HTTP2 的 tls 详细信息吗?
2) 还有哪些其他需要更新的 Istio 配置?
3)此更改是否会破坏当前使用http协议的微服务?我怎样才能减轻这种情况?
4)我正在阅读有关 DestinationRule 的内容并且升级政策 https://istio.io/docs/reference/config/networking/destination-rule/#ConnectionPoolSettings-HTTPSettings-H2UpgradePolicy。这合适吗?