Usando o Istio em Clusters Criados com o Kubernetes Engine (OKE)

Saiba mais sobre o uso do Istio em clusters que você criou com o Kubernetes Engine (OKE).

O Istio é uma malha de serviços de código aberto, independente de plataforma, que fornece gerenciamento de tráfego, aplicação de políticas e coleta de telemetria. O Istio foi projetado para gerenciar comunicações entre microsserviços e aplicativos. O Istio usa proxies do Envoy, implantados como sidecars para os serviços subjacentes, para mediar todo o tráfego de entrada e saída para todos os serviços na malha de serviços. Sem exigir alterações nos serviços subjacentes, o Istio fornece resiliência de tráfego de linha de base automatizada, coleta de métricas de serviço, rastreamento distribuído, criptografia de tráfego, atualizações de protocolo e funcionalidade avançada de roteamento para toda a comunicação entre serviços.

O Istio usa gateways de entrada e saída para configurar balanceadores de carga em execução na borda de uma malha de serviços. Os gateways de entrada do Istio são implementados usando o Kubernetes Gateway e recursos VirtualService e fornecem uma camada de gerenciamento de tráfego consistente e de alto desempenho em todos os serviços na malha de serviços. Um gateway de entrada é um único ponto de entrada na malha de serviços por meio do qual todo o tráfego de solicitações HTTP e HTTPS de entrada flui. O gateway de entrada roteia o tráfego para o serviço apropriado com base na solicitação. Da mesma forma, um gateway de saída define pontos de saída da malha de serviços.

Para obter mais informações sobre o Istio, consulte a documentação do Istio.

Você pode implantar o Istio em um cluster do Kubernetes de duas maneiras:

Observe que os produtos de malha de serviços (como Istio e Linkerd) são suportados ao usar o plug-in CNI de Rede de Pod Nativa da VCN do OCI para rede de pod. Observe que, com exceção do complemento Istio, o suporte está atualmente limitado ao Oracle Linux 7 (o suporte para Oracle Linux 8 está planejado). O complemento Istio é compatível com o Oracle Linux 7 e o Oracle Linux 8. Os nós de trabalho devem estar executando o Kubernetes 1.26 (ou posterior).

Observação

Você pode usar o Istio com pools de nós gerenciados, mas não com pools de nós virtuais.

Usando a API do Gateway do Kubernetes

A API Gateway é um projeto oficial do Kubernetes focado em fornecer recursos de API para roteamento de camada 4 (L4) e camada 7 (L7) no Kubernetes. A API do Gateway representa a próxima geração de APIs de entrada, balanceamento de carga e malha de serviços do Kubernetes.

O Kubernetes Engine suporta a instalação das definições de recursos personalizados (CRDs) da API do Gateway, desde que você siga as instruções na documentação Conceitos Básicos da API do Gateway. Por exemplo, para instalar o canal padrão, use o seguinte comando:

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml

Depois de instalar os CRDs de API do Gateway, você pode usar o Istio como um programa standalone ou como um complemento de cluster para aproveitar o suporte à API do Gateway. Junto com o suporte para recursos de Entrada do Kubernetes, o Istio permite que você configure o tráfego de entrada usando os recursos do Gateway da API do Gateway. Os gateways fornecem personalização e flexibilidade mais abrangentes do que os recursos de Entrada, permitindo que recursos do Istio, como monitoramento e regras de roteamento, sejam aplicados ao tráfego que entra no cluster.

A documentação do Istio descreve como usar a API do Gateway com o Istio. Ao definir um Gateway com Istio como a implementação, é importante definir a propriedade gatewayClassName como istio. Por exemplo:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: example-gateway
spec:
  gatewayClassName: istio

Para obter mais informações sobre como configurar Gateways e usar recursos avançados do Istio com a API do Gateway, consulte a API do Gateway do Kubernetes na documentação do Istio e a documentação da API do Gateway.