如何将Istio服务网格从http升级到http2?
我们在Kubernetes上,使用Istio服务网格。目前,网关中存在HTTPS的SSL终止。我在istio代理日志中看到HTTP协议是HTTP 1.1 我想将HTTP1.1升级到HTTP2,因为它有很多优点。客户应通过SSL/TLS调用我们的服务HTTP2 我用这个作为这个主题的内部演示 这些是瓶颈: 1) 我想提出一个改变最少的计划。我知道我需要从更新网关如何将Istio服务网格从http升级到http2?,http,kubernetes,http2,kubernetes-ingress,istio,Http,Kubernetes,Http2,Kubernetes Ingress,Istio,我们在Kubernetes上,使用Istio服务网格。目前,网关中存在HTTPS的SSL终止。我在istio代理日志中看到HTTP协议是HTTP 1.1 我想将HTTP1.1升级到HTTP2,因为它有很多优点。客户应通过SSL/TLS调用我们的服务HTTP2 我用这个作为这个主题的内部演示 这些是瓶颈: 1) 我想提出一个改变最少的计划。我知道我需要从更新网关 apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: n
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
到
根据我在文章中看到的例子
我想知道:这会允许从浏览器(只支持这种模式)通过TLS连接HTTP2吗?我可以像使用HTTPS那样提供HTTP2的tls详细信息吗
2) 需要更新的其他Istio配置有哪些
3) 此更改是否会中断当前使用http协议的微服务?我如何减轻这种影响
4) 我读到了关于命运和规则的书。这合适吗 根据我的知识和istio(http2处于稳定阶段)
1) 这是否允许从浏览器(仅支持此模式)进行HTTP2 over TLS连接?我可以像使用HTTPS那样提供HTTP2的tls详细信息吗
是的,它应该允许http2
2) 需要更新的其他Istio配置有哪些 您可以选择应用http2的位置:
手动协议选择 可以通过命名服务端口名[-]手动指定协议。支持以下协议:
- grpc
- grpc
- 网
- http
- http2
- https
- 蒙戈
- mysql*
- redis*
- tcp
- tls
- udp
3) 此更改是否会中断当前使用http协议的微服务?我如何减轻这种影响 4) 我在读有关DestinationRule和升级策略的文章。这合适吗 我认为这应该是一个很好的适合,你将不得不升级和改变服务到http2
我希望它能帮助你。你好。我按照建议更新了服务。我得到503个错误。有什么原因吗?Hello@Anophallimala,所以如果您更改网关和目标规则,服务中的http名称一切正常,但如果您将其更改为http2,它会失败吗?就我在你的另一个帖子上查到的,选项1一切正常吗?是的,@jt97。没错。服务中的http工作正常。但是,当我把它改成http2时,它开始给我503。两种情况下的目的地规则保持不变。
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
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-ingress
spec:
selector:
app: my-ingress-gateway
servers:
- port:
number: 80
name: **http2**
protocol: **HTTP2**
hosts:
- "*"
kind: Service
metadata:
name: myservice
spec:
ports:
- number: 80
name: http2