【发布时间】:2020-04-23 16:32:22
【问题描述】:
我们在 Kubernetes 上并使用 Istio 服务网格。目前,网关中有 HTTPS 的 SSL 终止。我在 istio-proxy 日志中看到 HTTP 协议是 HTTP 1.1。
我想将 HTTP 1.1 升级到 HTTP2,因为它具有各种优势。客户应该通过 SSL/TLS 调用我们的服务 HTTP2。
我正在使用此blog 进行有关此主题的内部演示。
这些是瓶颈:
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
到
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's Gateway documentation 中看到的示例。
我想知道:这是否允许来自浏览器(仅支持此模式)的 HTTP2 over TLS 连接?我可以像使用 HTTPS 一样提供 HTTP2 的 tls 详细信息吗?
2) 还有哪些其他需要更新的 Istio 配置?
3) 这种变化会破坏目前使用 http 协议的微服务吗?我该如何缓解这种情况?
4) 我正在阅读有关 DestinationRule 和 upgrade policy 的信息。这合适吗?
【问题讨论】:
标签: http kubernetes http2 kubernetes-ingress istio