Funcionalidades suportadas através das APIs Istio (plano de controlo gerido)

Esta página descreve as funcionalidades suportadas e as limitações da Cloud Service Mesh que usa o TRAFFIC_DIRECTOR ou o ISTIOD como plano de controlo e as diferenças entre cada implementação. Tenha em atenção que não pode escolher estas opções. A implementação do ISTIOD só está disponível para utilizadores existentes. As novas instalações usam a implementação de TRAFFIC_DIRECTOR sempre que possível.

Para ver a lista de funcionalidades suportadas do Cloud Service Mesh para um plano de controlo no cluster, consulte o artigo Usar APIs Istio (plano de controlo istiod no cluster). Se não tiver a certeza de qual é o plano de controlo da Cloud Service Mesh que está a usar, pode verificar a implementação do plano de controlo através das instruções em Identifique a implementação do plano de controlo

Limitações

Aplicam-se as seguintes limitações:

  • Os clusters do GKE têm de estar numa das regiões suportadas.
  • A versão do GKE tem de ser uma versão suportada.
  • Apenas são suportadas as plataformas indicadas em Ambientes.
  • A alteração dos canais de lançamento não é suportada.
  • As migrações do Cloud Service Mesh gerido com asmcli para o Cloud Service Mesh com a API Fleet não são suportadas. Da mesma forma, o aprovisionamento da malha de serviços na nuvem gerida com a API Fleet de --management manual para --management automatic não é suportado.
  • As migrações e as atualizações só são suportadas a partir de versões 1.9 ou superiores do Cloud Service Mesh no cluster instaladas com a AC de malha. As instalações com a AC do Istio (anteriormente conhecida como Citadel) têm primeiro de migrar para a AC da malha.
  • A escala está limitada a 1000 serviços e 5000 cargas de trabalho por cluster.
  • Apenas a opção de implementação com vários nós principais é suportada para vários clusters: a opção de implementação principal-remota para vários clusters não é suportada.
  • O istioctl ps não é suportado. Em alternativa, pode usar os comandos gcloud beta container fleet mesh debug, conforme descrito na secção Resolução de problemas.
  • APIs não suportadas:

    • EnvoyFilter API

    • WasmPlugin API

    • IstioOperator API

    • Kubernetes Ingress API

  • Pode usar o plano de controlo gerido sem uma subscrição do GKE Enterprise, mas determinados elementos da IU e funcionalidades na Google Cloud consola só estão disponíveis para subscritores do GKE Enterprise. Para obter informações sobre o que está disponível para subscritores e não subscritores, consulte Diferenças entre a IU do GKE Enterprise e do Cloud Service Mesh.

  • Durante o processo de aprovisionamento de um plano de controlo gerido, os CRDs do Istio correspondentes ao canal selecionado são instalados no cluster especificado. Se existirem CRDs do Istio no cluster, estes vão ser substituídos.

  • O Managed Cloud Service Mesh só suporta o domínio DNS predefinido .cluster.local.

  • A partir de 14 de novembro de 2023, as novas instalações da malha de serviços na nuvem gerida no canal de lançamento rápido obtêm JWKS apenas através de Envoys. Isto é equivalente à opção PILOT_JWT_ENABLE_REMOTE_JWKS=envoy do Istio. Em comparação com as instalações nos canais de lançamento normais e estáveis, ou as instalações no canal de lançamento rápido antes de 14 de novembro de 2023, pode precisar de configurações ServiceEntry e DestinationRule adicionais. Para ver um exemplo, consulte o artigo requestauthn-with-se.yaml.tmpl.

Diferenças no plano de controlo

Existem diferenças nas funcionalidades suportadas entre as implementações do plano de controlo ISTIOD e TRAFFIC_DIRECTOR. Para verificar que implementação está a usar, consulte o artigo Identifique a implementação do plano de controlo.

  • : indica que a funcionalidade está disponível e ativada por predefinição.
  • † – indica que as APIs de funcionalidades podem ter diferenças entre várias plataformas.
  • * – indica que a funcionalidade é suportada para a plataforma e pode ser ativada, conforme descrito em Ative funcionalidades opcionais ou no guia de funcionalidades com link na tabela de funcionalidades.
  • § – indica que a funcionalidade é suportada pela lista de autorizações. Os utilizadores anteriores do Anthos Service Mesh gerido são automaticamente incluídos na lista de autorizações ao nível da organização. Contacte Google Cloud o apoio técnico para pedir acesso ou verificar o estado da sua lista de autorizações.
  • : indica que a funcionalidade não está disponível ou não é suportada.

As funcionalidades predefinidas e opcionais são totalmente suportadas pelo Google Cloud apoio técnico. As funcionalidades não listadas explicitamente nas tabelas recebem suporte de melhor esforço.

O que determina a implementação do plano de controlo

Quando aprovisiona o Cloud Service Mesh gerido pela primeira vez numa frota, determinamos que implementação do plano de controlo usar. A mesma implementação é usada para todos os clusters que aprovisionam o Cloud Service Mesh gerido nessa frota.

As novas frotas integradas no Cloud Service Mesh gerido recebem a implementação do TRAFFIC_DIRECTOR painel de controlo, com determinadas exceções:

  • Se for um utilizador existente do Cloud Service Mesh gerido, recebe a implementação do ISTIOD plano de controlo quando integrar uma nova frota na mesma Google Cloud organização no Cloud Service Mesh gerido, pelo menos até 30 de junho de 2024. Se for um destes utilizadores, pode contactar o apoio técnico para ajustar este comportamento. Os utilizadores cuja utilização existente não seja compatível com a implementação sem alterações vão continuar a receber a implementação até 8 de setembro de 2024.TRAFFIC_DIRECTORISTIOD (Estes utilizadores receberam um anúncio de serviço.)
  • Se algum cluster na sua frota usar o serviço de autoridade de certificação quando aprovisiona o Cloud Service Mesh gerido, recebe a implementação do plano de controlo ISTIOD.
  • Se qualquer cluster na sua frota contiver um plano de controlo do Cloud Service Mesh no cluster quando aprovisionar o Cloud Service Mesh gerido, recebe a implementação do plano de controlo ISTIOD.
  • Se algum cluster na sua frota usar o GKE Sandbox, quando aprovisiona a malha de serviços na nuvem gerida, recebe a implementação do ISTIOD plano de controlo.

Funcionalidades suportadas do plano de controlo gerido

Instale, atualize e reverta

Funcionalidade Gerido (TD) Gerido (istiod)
Instalação em clusters do GKE através da API de funcionalidades fleet
Atualizações de versões do ASM 1.9 que usam a AC de malha
Atualizações diretas (de nível ignorado) a partir de versões do Cloud Service Mesh anteriores à 1.9 (consulte as notas para atualizações indiretas)
Atualizações diretas (sem níveis intermédios) a partir do Istio OSS (consulte as notas para atualizações indiretas)
Atualizações diretas (de nível inferior) a partir do suplemento Istio-on-GKE (consulte as notas para atualizações indiretas)
Ativar funcionalidades opcionais

Ambientes

Funcionalidade Gerido (TD) Gerido (istiod)
GKE 1.25 a 1.27 numa das regiões suportadas
Clusters do GKE 1.25-1.27 com o Autopilot
Ambientes fora do Google Cloud (GKE Enterprise on-premises, GKE Enterprise noutras nuvens públicas, Amazon EKS, Microsoft AKS, ou outros clusters do Kubernetes)

Evolua

Funcionalidade Gerido (TD) Gerido (istiod)
1000 serviços e 5000 cargas de trabalho por cluster
50 portas de serviço sem interface por malha e 36 pods por porta de serviço sem interface

Ambiente da plataforma

Funcionalidade Gerido (TD) Gerido (istiod)
Rede única
Várias redes
Projeto único
Vários projetos com VPC partilhada

Implementação em vários clusters

Funcionalidade Gerido (TD) Gerido (istiod)
Várias configurações principais
Primário-remoto
Descoberta de pontos finais de vários clusters com a API declarativa
Deteção de endpoints em vários clusters com segredos remotos

Notas sobre a terminologia

  • Uma configuração com vários nós principais significa que a configuração tem de ser replicada em todos os clusters.
  • Uma configuração primária-remota significa que um único cluster contém a configuração e é considerado a fonte prioritária.
  • O Cloud Service Mesh usa uma definição simplificada de rede baseada na conetividade geral. As instâncias de carga de trabalho estão na mesma rede se puderem comunicar diretamente, sem um gateway.

Imagens de base

Funcionalidade Gerido (TD) Gerido (istiod)
Imagem de proxy sem distribuição

† O Cloud Service Mesh com um plano de controlo gerido (TD) só suporta o tipo de imagem sem distribuição. Não pode alterá-lo.

Tenha em atenção que as imagens sem distribuição têm ficheiros binários mínimos, pelo que não pode executar os comandos habituais, como bash ou curl, porque não estão presentes na imagem sem distribuição. No entanto, pode usar contentores efémeros para anexar a um pod de carga de trabalho em execução para poder inspecioná-lo e executar comandos personalizados. Por exemplo, consulte o artigo Recolher registos da malha de serviços na nuvem.

Segurança

VPC Service Controls

Funcionalidade Gerido (TD) Gerido (istiod)
Pré-visualização dos VPC Service Controls
Disponibilidade geral dos VPC Service Controls

Mecanismos de distribuição e rotação de certificados

Funcionalidade Gerido (TD) Gerido (istiod)
Gestão de certificados de cargas de trabalho
Gestão de certificados externos nos gateways de entrada e saída.

Suporte da autoridade de certificação (AC)

Funcionalidade Gerido (TD) Gerido (istiod)
Autoridade de certificação do Cloud Service Mesh
Certificate Authority Service
AC do Istio
Integração com ACs personalizadas

Funcionalidades de segurança

Além de suportar as funcionalidades de segurança do Istio, o Cloud Service Mesh oferece ainda mais capacidades para ajudar a proteger as suas aplicações.

Funcionalidade Gerido (TD) Gerido (istiod)
Integração de CNA
Autenticação do utilizador final
Modo de teste
Registo de recusas
Políticas de auditoria (não suportadas)

Política de autorização

Funcionalidade Gerido (TD) Gerido (istiod)
Política de autorização v1beta1
Política de autorização PERSONALIZADA §

† A implementação do plano de controlo TRAFFIC_DIRECTOR não suporta os campos rules.from.source.RemoteIp e rules.from.source.NotRemoteIp.

Autenticação de pares

Funcionalidade Gerido (TD) Gerido (istiod)
mTLS automático
Modo PERMISSIVE mTLS
Modo mTLS STRICT * *
Modo mTLS DISABLE

Pedir autenticação

Funcionalidade Gerido (TD) Gerido (istiod)
Autenticação JWT(Nota 1)
Encaminhamento baseado em reivindicações JWT
JWT Copy Claim to Headers

Notas:

  1. O JWT de terceiros está ativado por predefinição.
  2. Adicione o fqdn/nome de anfitrião completo em JWKSURI ao definir a API RequestAuthentication.
  3. O plano de controlo gerido força o Envoy a obter o JWKS quando especifica o URI JWKS.

Telemetria

Métrica

Funcionalidade Gerido (TD) Gerido (istiod)
Cloud Monitoring (métricas HTTP no proxy)
Cloud Monitoring (métricas TCP no proxy)
Exportação de métricas do Prometheus para o Grafana (apenas métricas do Envoy) * *
Exportação de métricas do Prometheus para o Kiali
Google Cloud Managed Service for Prometheus, excluindo o painel de controlo do Cloud Service Mesh * *
API Istio Telemetry
Adaptadores/backends personalizados, dentro ou fora do processo
Back-ends de telemetria e registo arbitrários

† O plano de controlo TRAFFIC_DIRECTOR suporta um subconjunto da API de telemetria do Istio usado para configurar registos de acesso e rastreio.

Registo de pedidos de proxy

Funcionalidade Gerido (TD) Gerido (istiod)
Registos de tráfego
Registos de acesso * *

Rastreio

Funcionalidade Gerido (TD) Gerido (istiod)
Cloud Trace * *
Monitorização de Jaeger (permite a utilização do Jaeger gerido pelo cliente) Compatível
Rastreio do Zipkin (permite a utilização do Zipkin gerido pelo cliente) Compatível

Redes

Mecanismos de interceção e redirecionamento de tráfego

Funcionalidade Gerido (TD) Gerido (istiod)
Utilização tradicional de iptables com contentores init com CAP_NET_ADMIN
Interface de rede de contentores (CNI) do Istio
Ficheiro complementar de caixa branca

Suporte de protocolos

Funcionalidade Gerido (TD) Gerido (istiod)
IPv4
HTTP/1.1
HTTP/2
Streams de bytes TCP (Nota 1)
gRPC
IPv6

Notas:

  1. Embora o TCP seja um protocolo suportado para redes e as métricas de TCP sejam recolhidas, não são comunicadas. As métricas são apresentadas apenas para serviços HTTP na Google Cloud consola.
  2. Os serviços configurados com capacidades da camada 7 para os seguintes protocolos não são suportados: WebSocket, MongoDB, Redis, Kafka, Cassandra, RabbitMQ e Cloud SQL. Pode conseguir fazer com que o protocolo funcione usando a compatibilidade com o fluxo de bytes TCP. Se a stream de bytes TCP não conseguir suportar o protocolo (por exemplo, o Kafka envia um endereço de redirecionamento numa resposta específica do protocolo e este redirecionamento é incompatível com a lógica de encaminhamento do Cloud Service Mesh), o protocolo não é suportado.

Implementações do Envoy

Funcionalidade Gerido (TD) Gerido (istiod)
Sidecars
Gateway de entrada
Saia diretamente dos sidecars
Saída através de gateways de saída * *

Compatibilidade com CRD

Funcionalidade Gerido (TD) Gerido (istiod)
Recurso de ficheiro complementar
Recurso de entrada de serviço
Percentagem, injeção de falhas, correspondência de caminhos, redirecionamentos, novas tentativas, reescrita, tempo limite, nova tentativa, replicação, manipulação de cabeçalhos e regras de encaminhamento CORS
API `EnvoyFilter` §
API `WasmPlugin`
Operador do Istio

Balanceador de carga para o gateway de entrada do Istio

Funcionalidade Gerido (TD) Gerido (istiod)
Balanceador de carga externo de terceiros
Google Cloud Balanceador de carga interno * *

Gateway de nuvem da malha de serviço

Funcionalidade Gerido (TD) Gerido (istiod)
Gateway de nuvem da malha de serviço

API Kubernetes Gateway

Funcionalidade Gerido (TD) Gerido (istiod)
API Kubernetes Gateway

Políticas de balanceamento de carga

Funcionalidade Gerido (TD) Gerido (istiod)
Ordem aleatória
Menos ligações
Aleatório
Transparente
Hash consistente
Localidade

Entrada de serviço

Funcionalidade Gerido (TD) Gerido (istiod)
ServiceEntry v1beta1

† A implementação do plano de controlo TRAFFIC_DIRECTOR não suporta os seguintes campos e valores nos campos:

  • workloadSelector campo
  • endpoints[].network campo
  • endpoints[].locality campo
  • endpoints[].weight campo
  • endpoints[].serviceAccount campo
  • Valor DNS_ROUND_ROBIN no campo resolution
  • Valor MESH_INTERNAL no campo location
  • Endereço de socket de domínio Unix no campo endpoints[].address
  • subjectAltNames campo

Regra de destino

Funcionalidade Gerido (TD) Gerido (istiod)
DestinationRule v1beta1

† A implementação do plano de controlo TRAFFIC_DIRECTOR não suporta o campo trafficPolicy.loadBalancer.localityLbSetting e o campo trafficPolicy.tunnel. Além disso, a implementação do plano de controlo TRAFFIC_DIRECTOR requer que a regra de destino que define subconjuntos esteja no mesmo espaço de nomes e cluster com o serviço Kubernetes ou o ServiceEntry.

Sidecar

Funcionalidade Gerido (TD) Gerido (istiod)
Sidecar v1beta1

† A implementação do plano de controlo TRAFFIC_DIRECTOR não suporta os seguintes campos e valores nos campos:

  • ingress campo
  • egress.port campo
  • egress.bind campo
  • egress.captureMode campo
  • inboundConnectionPool campo

MeshConfig

Funcionalidade Gerido (TD) Gerido (istiod)
LocalityLB §
ExtensionProviders §
CACert
ImageType - distroless §
OutboundTrafficPolicy §
defaultProviders.accessLogging
defaultProviders.tracing
defaultConfig.tracing.stackdriver §
accessLogFile §

ProxyConfig

Funcionalidade Gerido (TD) Gerido (istiod)
Proxy DNS (ISTIO_META_DNS_CAPTURE, ISTIO_META_DNS_AUTO_ALLOCATE)
Suporte para HTTP/1.0 (ISTIO_META_NETWORK)
Seleção de imagens (imagem base ou sem distribuição)

† É usada uma imagem sem distribuição para a injeção.

Regiões

Os clusters do GKE têm de estar numa das seguintes regiões ou em qualquer zona nas seguintes regiões.

Região Localização
africa-south1 Joanesburgo
asia-east1 Taiwan
asia-east2 Hong Kong
asia-northeast1 Tóquio, Japão
asia-northeast2 Osaca, Japão
asia-northeast3 Coreia do Sul
asia-south1 Mumbai, Índia
asia-south2 Deli, Índia
asia-southeast1 Singapura
asia-southeast2 Jacarta
australia-southeast1 Sydney, Austrália
australia-southeast2 Melbourne, Austrália
europe-central2 Polónia
europe-north1 Finlândia
europe-southwest1 Espanha
europe-west1 Bélgica
europe-west2 Inglaterra
europe-west3 Frankfurt, Alemanha
europe-west4 Países Baixos
europe-west6 Suíça
europe-west8 Milão, Itália
europe-west9 França
europe-west10 Berlim, Alemanha
europe-west12 Turim, Itália
me-central1 Doha
me-central2 Dammam, Arábia Saudita
me-west1 Telavive
northamerica-northeast1 Montreal, Canadá
northamerica-northeast2 Toronto, Canadá
southamerica-east1 Brasil
southamerica-west1 Chile
us-central1 Iowa
us-east1 Carolina do Sul
us-east4 Virgínia do Norte
us-east5 Ohio
us-south1 Dallas
us-west1 Oregon
us-west2 Los Angeles
us-west3 Salt Lake City
us-west4 Las Vegas

Interface do utilizador

Funcionalidade Gerido (TD) Gerido (istiod)
Painéis de controlo do Cloud Service Mesh na Google Cloud consola
Cloud Monitoring
Cloud Logging

Ferramentas

Funcionalidade Gerido (TD) Gerido (istiod)
Ferramenta gcloud beta container fleet mesh debug