如何将Istio Service Mesh从http升级到http2?

问题描述 投票:0回答:1

我们在Kubernetes上,并使用Istio Service Mesh。当前,网关中有用于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中看到的示例。

我想知道:这是否将允许来自浏览器(仅支持此模式)的TLS上的HTTP2连接?我可以像使用HTTPS一样提供HTTP2的tls详细信息吗?

2)还有哪些其他Istio配置要更新?

3)此更改会中断当前正在使用http协议的微服务吗?我该如何缓解呢?

4)我正在阅读有关DestinationRule和upgrade policy的信息。这很合适吗?

http kubernetes http2 kubernetes-ingress istio
1个回答
2
投票

基于我的知识,istio documentation和istio feature stages(处于稳定阶段的http2)

1)这是否将允许来自浏览器(仅支持此模式)的基于TLS的HTTP2连接?我可以像使用HTTPS一样提供HTTP2的tls详细信息吗?

是,应该允许使用http2。


2)还有哪些其他Istio配置要更新?

您可以选择应用http2的位置:



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:
    - "*"


手动协议选择

可以通过将服务端口名称命名为[-]来手动指定协议。支持以下协议:

  • grpc
  • grpc
  • web
  • http
  • http2
  • https
  • mongo
  • mysql *
  • redis *
  • tcp
  • tls
  • udp

*这些协议默认情况下处于禁用状态,以避免意外启用实验功能。要启用它们,请配置相应的Pilot环境变量。


kind: Service
metadata:
  name: myservice
spec:
  ports:
  - number: 80
    name: http2

3)此更改会中断当前正在使用http协议的微服务吗?我该如何缓解呢?

4)我正在阅读有关DestinationRule和升级策略的信息。这很合适吗?

我认为应该很合适,您必须升级h2UpgradePolicy并将服务更改为http2。


希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.