Мы находимся в Kubernetes и используем Istio Service Me sh. В настоящее время в шлюзе есть SSL-терминация для HTTPS. В журналах istio-proxy я вижу, что протокол HTTP - это HTTP 1.1.
Я хочу обновить HTTP 1.1 до HTTP2 из-за его различных преимуществ. Клиенты должны вызывать наши службы HTTP2 через SSL / TLS.
Я использую этот блог для внутренней демонстрации этой темы c.
Это узкие места:
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 .
Я хочу знать: позволит ли это HTTP2 через TLS-соединения из браузеров (которые поддерживают только этот режим)? Могу ли я предоставить подробности tls для HTTP2, как я сделал с HTTPS?
2) Какие другие конфигурации Istio нужно обновить?
3) Будет ли это изменение нарушено Микросервисы, которые используют протокол http в настоящее время? Как я могу смягчить это?
4) Я читал о DestinationRule и политике обновления . Это хорошо подходит?