Ingresses do ELB usando HTTP/2
Os ingresses podem usar HTTP/2 para expor Serviços. As conexões do balanceador de carga com sua aplicação usam HTTP/1.X por padrão. Se sua aplicação for capaz de receber solicitações HTTP2, você poderá adicionar o seguinte campo à anotação de entrada para habilitar o uso de HTTP/2:
kubernetes.io/elb.http2-enable: 'true'
A seguir, mostra o arquivo YAML para associação a um balanceador de carga existente:
Para clusters da v1.21 ou anterior:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-test
annotations:
kubernetes.io/elb.id: <your_elb_id> # Replace it with the ID of your existing load balancer.
kubernetes.io/elb.ip: <your_elb_ip> # Replace it with the IP of your existing load balancer.
kubernetes.io/elb.port: '443'
kubernetes.io/ingress.class: cce
kubernetes.io/elb.http2-enable: 'true' # Enable HTTP/2.
spec:
tls:
- secretName: ingress-test-secret
rules:
- host: ''
http:
paths:
- path: '/'
backend:
serviceName: <your_service_name> # Replace it with the name of your target Service.
servicePort: 80 # Replace it with the port number of your target Service.
property:
ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-test
annotations:
kubernetes.io/elb.id: <your_elb_id> # Replace it with the ID of your existing load balancer.
kubernetes.io/elb.ip: <your_elb_ip> # Replace it with the IP of your existing load balancer.
kubernetes.io/elb.port: '443'
kubernetes.io/elb.http2-enable: 'true' # Enable HTTP/2.
spec:
tls:
- secretName: ingress-test-secret
rules:
- host: ''
http:
paths:
- path: '/'
backend:
service:
name: <your_service_name> # Replace it with the name of your target Service.
port:
number: 8080 # Replace 8080 with the port number of your target Service.
property:
ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
pathType: ImplementationSpecific
ingressClassName: cce
Tabela 6 Parâmetros de HTTP/2
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
kubernetes.io/elb.http2-enable |
Não |
Bool |
Se o HTTP/2 está ativado. O encaminhamento de solicitações usando HTTP/2 melhora o desempenho de acesso entre a aplicação e o balanceador de carga. No entanto, o balanceador de carga ainda usa HTTP 1.X para encaminhar solicitações para o servidor back-end. Este parâmetro é suportado em clusters de v1.19.16-r0, v1.21.3-r0 e versões posteriores. Opções:
Observação: o HTTP/2 pode ser ativado ou desativado somente quando o ouvinte usa HTTPS. Este parâmetro é inválido quando o protocolo do ouvinte é HTTP e o padrão é false. |