Kubernetes Gateway API v1.1: Service mesh, GRPCRoute e muito mais
Após o lançamento GA do Gateway API em outubro passado, o Kubernetes SIG Network anuncia o lançamento da versão v1.1 do Gateway API. Neste lançamento, várias características passam a fazer parte do Canal Padrão (GA), incluindo o suporte para service mesh e GRPCRoute. Também introduzem algumas características novas e experimentais, como persistência de sessão e verificação de certificados de cliente.
Novidades
Passagem para o Canal Padrão
Este lançamento inclui a passagem para o Canal Padrão de quatro características muito aguardadas. Isso significa que já não são conceitos experimentais; a inclusão no Canal Padrão denota um alto nível de confiança na API e proporciona garantias de compatibilidade. Claro, como qualquer outra API do Kubernetes, as características do Canal Padrão podem continuar evoluindo com adições retrocompatíveis e certamente virão mais refinamentos e melhorias para essas novas características no futuro. Para mais informações sobre como tudo isso funciona, consulte a Política de Versionamento do Gateway API.
Suporte para Service Mesh
O suporte para service mesh no Gateway API permite aos usuários utilizarem a mesma API para gerenciar o tráfego de entrada e o tráfego de malha, reutilizando as mesmas interfaces de política e roteamento. No Gateway API v1.1, as rotas (como HTTPRoute) agora podem ter um Serviço como parentRef
, para controlar como o tráfego se comporta para serviços específicos. Para mais informações, leia a documentação de service mesh do Gateway API ou consulte a lista de implementações do Gateway API.
Como exemplo, pode-se fazer um deployment Canary de uma workload com um HTTPRoute da seguinte maneira:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: color-canary
namespace: faces
spec:
parentRefs:
- name: color
kind: Service
group: ""
port: 80
rules:
- backendRefs:
- name: color
port: 80
weight: 50
- name: color2
port: 80
weight: 50
Isso dividiria o tráfego enviado ao Serviço color
no namespace faces
50/50 entre o Serviço color
original e o Serviço color2
, utilizando uma configuração portátil que é fácil de mover de uma malha para outra.
GRPCRoute
Se você já está utilizando a versão experimental do GRPCRoute, recomendamos esperar antes de atualizar para a versão do canal padrão do GRPCRoute até que os controladores que você está utilizando tenham sido atualizados para suportar a versão v1 do GRPCRoute. Até lá, é seguro atualizar para a versão experimental do GRPCRoute em v1.1 que inclui as versões de API v1alpha2 e v1.
Porta em ParentReference
Foi adicionado o campo port
ao ParentReference, o que permite anexar recursos aos GatewayListeners, Serviços ou outros recursos principais (dependendo da implementação). Vincular a uma porta também permite anexar a múltiplos Listeners ao mesmo tempo.
Por exemplo, você pode anexar um HTTPRoute
a um ou mais Listeners
específicos de um Gateway de acordo com o campo port
do Listener, em vez do campo name
do Listener.
Para mais informações, consulte Attach to Gateways.
Perfis e Relatórios de Conformance
A API Conformance foi ampliada com o campo mode
(destinado a especificar o modo da implementação) e o gatewayAPIChannel
(padrão ou experimental). Tanto gatewayAPIVersion
quanto gatewayAPIChannel
agora são preenchidos automaticamente pela API Machinery, junto com uma breve descrição do resultado dos testes. Os Relatórios foram reorganizados de uma maneira mais estruturada, e as implementações agora podem adicionar informações sobre como os testes foram executados e fornecer passos de reprodução.
Novas características no Canal Experimental
Verificação de Certificados de Cliente em Gateway
Os Gateways agora podem configurar a verificação de certificados de cliente para cada GatewayListener,
através da introdução de um novo campo frontendValidation
dentro de tls
. Este campo suporta a configuração de uma lista de Certificados CA (Certificate Authority
) que podem ser utilizados como um ponto de confiança para validar os certificados apresentados pelo cliente.
✅ Exemplo de validação de certificado de cliente no Gateway
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners:
- name: https
protocol: HTTPS
port: 443
tls:
mode: Terminate
certificateRefs:
- name: example-cert
options:
group: example.com
kind: TLSValidation
name: validation
frontendValidation:
certificateRefs:
- name: client-ca
Persistência de Sessão
A persistência de sessão permite que os usuários controlem o comportamento de balanceamento de carga para sessões específicas, garantido que o tráfego seja roteado consistentemente para o mesmo backend. O campo sessionAffinity
foi introduzido para HTTPRoute
e TLSRoute
com suporte inicial para afinidade baseada em cookies.
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: example
spec:
rules:
- matches:
- path:
value: "/"
backendRefs:
- name: foo
port: 8080
sessionAffinity:
cookie:
name: my-cookie
path: "/"
maxAge: 3600
Para mais informações, consulte a documentação de persistência de sessão do Gateway API.
Obrigado!
Estamos empolgados com este novo lançamento do Gateway API e com a incrível comunidade que tornou isso possível. Para mais informações, consulte a documentação do Gateway API.
- Register with Email
- Login with LinkedIn
- Login with GitHub