Recursos compatíveis que usam APIs do Istio (plano de controle gerenciado)
Nesta página, descrevemos os recursos e limitações compatíveis com o
Cloud Service Mesh que usa o Cloud Service Mesh ou o istiod
como plano de controle e as
diferenças entre cada implementação. Observe que essas não são opções
que você pode escolher. A implementação de istiod
só está disponível para usuários atuais.
As novas instalações usam a implementação do Cloud Service Mesh.
Para ver a lista de recursos compatíveis com o Cloud Service Mesh para um plano de controle
no cluster, consulte
Como usar APIs do Istio (plano de controle istiod
no cluster).
Se você não tiver certeza de qual plano de controle do Cloud Service Mesh está usando, verifique a implementação do plano de controle usando as instruções em
Identificar a implementação do plano de controle.
Limitações
Considere as seguintes limitações:
- Os clusters do GKE precisam estar em uma das regiões compatíveis.
- A versão do GKE precisa ser uma versão compatível.
- Apenas as plataformas listadas em Ambientes são compatíveis.
- Não é possível alterar canais de lançamento.
- Não há suporte para migrações do
Cloud Service Mesh gerenciado com
asmcli
para o Cloud Service Mesh com API frota. Da mesma forma, não há suporte para o provisionamento do Cloud Service Mesh gerenciado com a API de frota de--management manual
para--management automatic
. - As migrações e os upgrades são compatíveis apenas com as versões 1.9 ou mais recentes do Cloud Service Mesh no cluster, instaladas com a CA do Mesh. As instalações com a CA do Istio (antes conhecida como Citadel) precisam migrar para a CA da malha.
- A escala é limitada a 1.000 serviços e 5.000 cargas de trabalho por cluster.
- Apenas a opção de implantação multiprimária para vários clusters é compatível: a opção de implantação primária remota para vários clusters não é.
istioctl ps
não é compatível. Em vez disso, use os comandosgcloud beta container fleet mesh debug
, conforme descrito em Solução de problemas.APIs sem suporte:
API
EnvoyFilter
API
WasmPlugin
API
IstioOperator
API
Kubernetes Ingress
API
Kubernetes Gateway
É possível usar o plano de controle gerenciado sem uma assinatura do GKE Enterprise, mas alguns elementos e recursos da UI no console do Google Cloud estão disponíveis apenas para assinantes do GKE Enterprise. Para informações sobre o que está disponível para assinantes e não assinantes, consulte Diferenças entre o GKE Enterprise e a interface do Cloud Service Mesh.
Durante o processo de provisionamento de um plano de controle gerenciado, os CRDs do Istio correspondentes ao canal selecionado são instalados no cluster especificado. Se houver CRDs atuais do Istio no cluster, eles serão substituídos.
O Cloud Service Mesh gerenciado só oferece suporte ao domínio DNS padrão
.cluster.local
.A partir de 14 de novembro de 2023, novas instalações do Cloud Service Mesh gerenciado no canal de lançamento rápido buscam o JWKS apenas usando Envoys. Isso é equivalente à opção
PILOT_JWT_ENABLE_REMOTE_JWKS=envoy
do Istio. Em comparação com as instalações nos canais de lançamento regular e estável ou instalações no canal de lançamento rápido anteriores a 14 de novembro de 2023, talvez você precise de mais configuraçõesServiceEntry
eDestinationRule
. Para ver um exemplo, consulterequestauthn-with-se.yaml.tmpl
.
Diferenças do plano de controle
Há diferenças entre os recursos compatíveis entre a istiod
e as implementações do plano de controle
do Cloud Service Mesh. Para verificar qual implementação você está usando, consulte
Identificar a implementação do plano de controle.
- : indica que o recurso está disponível e ativado por padrão.
- † - indica que as APIs de recurso podem ter diferenças entre várias plataformas.
- *: indica que o recurso tem suporte para a plataforma e pode ser ativado, conforme descrito em Ativar recursos opcionais ou no guia de recursos vinculado na tabela de recursos.
- §: indica que o recurso tem suporte da lista de permissões. Os usuários anteriores do Anthos Service Mesh gerenciado são adicionados automaticamente à lista de permissões no nível da organização. Entre em contato com o suporte do Google Cloud para solicitar acesso ou verificar o status da lista de permissões.
- : indica que o recurso não está disponível ou é incompatível.
Os recursos padrão e opcionais são totalmente compatíveis com o suporte do Google Cloud. Recursos não listados explicitamente nas tabelas recebem suporte de melhor esforço.
O que determina a implementação do plano de controle
Ao provisionar o Cloud Service Mesh gerenciado pela primeira vez em uma frota, determinamos qual implementação do plano de controle será usada. A mesma implementação é usada para todos os clusters que provisionam o Cloud Service Mesh gerenciado nessa frota.
Novas frotas integradas ao Cloud Service Mesh gerenciado recebem a
implementação do plano de controle TRAFFIC_DIRECTOR
, com algumas exceções:
- Se já for um usuário gerenciado do Cloud Service Mesh, você vai receber a implementação do plano de controle
ISTIOD
ao integrar uma nova frota na mesma organização do Google Cloud ao Cloud Service Mesh gerenciado até pelo menos 30 de junho de 2024. Se você for um desses usuários, entre em contato com o suporte para ajustar esse comportamento. Os usuários com um uso que não é compatível com a implementação deTRAFFIC_DIRECTOR
sem mudanças vão continuar recebendo a implementação deISTIOD
até 8 de setembro de 2024. Esses usuários receberam um aviso de serviço. - Se algum cluster na sua frota usar o Certificate Authority Service ao provisionar o Cloud Service Mesh gerenciado, você receberá a implementação do plano de controle
ISTIOD
. - Se algum cluster na sua frota tiver um plano de controle do Cloud Service Mesh
no cluster ao provisionar o Cloud Service Mesh gerenciado, você
receberá a implementação do plano de controle
ISTIOD
. - Se qualquer cluster na sua frota usar o
GKE Sandbox,
ao provisionar o Cloud Service Mesh gerenciado, você receberá a
implementação do plano de controle
ISTIOD
.
Identificar a implementação do plano de controle
Execute o seguinte comando para identificar a implementação do plano de controle:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Se você estiver usando o Cloud Service Mesh com as APIs do Google Cloud (consulte Sobre o Cloud Service Mesh), esse comando não vai funcionar.
O resultado será assim:
...
membershipSpecs:
projects/746296320118/locations/us-central1/memberships/demo-cluster-1:
mesh:
management: MANAGEMENT_AUTOMATIC
membershipStates:
projects/746296320118/locations/us-central1/memberships/demo-cluster-1:
servicemesh:
controlPlaneManagement:
details:
- code: REVISION_READY
details: 'Ready: asm-managed'
state: ACTIVE
implementation: TRAFFIC_DIRECTOR
...
Os valores possíveis implementation
são:
TRAFFIC_DIRECTOR
: a infraestrutura principal do Google Cloud serve como o plano de controle do Cloud Service Mesh.ISTIOD
: a instância gerenciada deistiod
serve como o plano de controle do Cloud Service Mesh.UPDATING
: o cluster está sendo migrado entre as implementações. Em breve, você terá a implementação deTRAFFIC_DIRECTOR
.
Recursos compatíveis do plano de controle gerenciado
Instalação, upgrade e reversão
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Instalação em clusters do GKE usando a API do recurso frota | ||
Atualizações das versões ASM 1.9 que usam o Mesh CA | ||
Upgrades diretos (ignorados) das versões do Cloud Service Mesh anteriores à 1.9. Consulte as observações sobre upgrades indiretos. | ||
Upgrades diretos (pular nível) do Istio OSS (consulte as observações para upgrades indiretos) | ||
Upgrades diretos (pular nível) do complemento Istio-on-GKE (consulte as observações para upgrades indiretos) | ||
Como ativar recursos opcionais |
Ambientes
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
GKE 1.25 a 1.27 em uma das regiões suportadas | ||
Clusters do GKE 1.25 a 1.27 com o Autopilot | ||
Ambientes fora do Google Cloud (GKE Enterprise no local, GKE Enterprise em outras nuvens públicas, Amazon EKS, Microsoft AKS ou outros clusters do Kubernetes) |
Escala
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
1.000 serviços e 5.000 cargas de trabalho por cluster | ||
50 ServicePorts por malha e 36 pods por ServicePort |
Ambiente de plataforma
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Rede única | ||
Várias redes | ||
Projeto único | ||
Vários projetos com VPC compartilhada |
Implantação de vários clusters
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Modo multiprimário | ||
Principal controle remoto | ||
Descoberta de endpoints de vários clusters com a API declarativa | ||
Descoberta de endpoints de vários clusters com secrets remotos |
Observações sobre a terminologia
- Uma configuração multiprimária significa que ela precisa ser replicada em todos os clusters.
- Uma configuração remota primária significa que um único cluster contém a configuração e é considerado a fonte da verdade.
- O Cloud Service Mesh usa uma definição simplificada de rede com base na conectividade geral. Instâncias de carga de trabalho ficam na mesma rede, se puderem se comunicar diretamente, sem um gateway.
Imagens de base
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Imagem proxy distroless | † |
† O Cloud Service Mesh com um plano de controle gerenciado (TD) oferece suporte apenas ao tipo de imagem distroless. Não é possível alterá-la.
Observe que as imagens distroless têm binários mínimos, portanto, não é possível executar os comandos usuais, como bash ou curl, porque eles não estão presentes na imagem distroless. No entanto, é possível usar contêineres temporários para anexar a um pod de carga de trabalho em execução para inspecioná-lo e executar comandos personalizados. Por exemplo, consulte Como coletar registros do Cloud Service Mesh.
Segurança
VPC Service Controls
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Prévia do VPC Service Controls | ||
VPC Service Controls GA |
Mecanismos de distribuição e rotação de certificados
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Gerenciamento de certificados de carga de trabalho | ||
Gerenciamento de certificados externos nos gateways de entrada e de saída. |
Suporte para autoridade de certificação (CA)
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Autoridade de certificação do Cloud Service Mesh | ||
Certificate Authority Service | ||
CA do Istio | ||
Integração com CAs personalizadas |
Recursos de segurança
Além de oferecer suporte aos recursos de segurança do Istio, o Cloud Service Mesh oferece ainda mais recursos para ajudar você a proteger seus aplicativos.
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Integração com o IAP | ||
Autenticação de usuário final | ||
Modo de teste | ||
Registro de negação | ||
Políticas de auditoria (não compatíveis) |
Política de autorização
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Política de autorização v1beta1 | † | |
Política de autorização CUSTOM | § |
† A implementação do plano de controle do Cloud Service Mesh não oferece suporte aos campos
rules.from.source.RemoteIp
e rules.from.source.NotRemoteIp
.
Autenticação de mesmo nível
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Auto-mTLS | ||
Modo mTLS PERMISSIVE | ||
Modo mTLS STRICT | * | * |
Modo mTLS DESATIVAR |
Autenticação de solicitações
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Autenticação JWT(Observação 1) | ||
Roteamento com base em declaração JWT | ||
Declaração de cópia do JWT para os cabeçalhos |
Observações:
- O JWT de terceiros é ativado por padrão.
- Adicione o fqdn/hostname completo em JWKSURI ao definir a API RequestAuthentication.
- O plano de controle gerenciado aplica o Envoy para buscar JWKS ao especificar o URI do JWKS.
Telemetria
Métricas
Engenharia de | Gerenciado (TD) | Gerenciado (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 (somente métricas do Envoy) | * | * |
Exportação de métricas do Prometheus para o Kiali | ||
Google Cloud Managed Service para Prometheus, sem incluir o painel do Cloud Service Mesh | * | * |
API Istio Telemetry | † | |
Adaptadores/back-ends personalizados, dentro ou fora do processo | ||
Back-ends de telemetria arbitrária e registro |
† O plano de controle do Cloud Service Mesh oferece suporte a um subconjunto da API de telemetria do Istio usada para configurar registros de acesso e trace.
Geração de registros de solicitação do proxy
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Registros de tráfego | ||
Registros de acesso | * | * |
Cloud Trace
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Cloud Trace | * | * |
Rastreamento do Jaeger (permite o uso de Jaeger gerenciado pelo cliente) | Compatível | |
Rastreamento de Zipkin (permite o uso de Zipkin gerenciado pelo cliente) | Compatível |
Rede
Mecanismos de interceptação e redirecionamento de tráfego
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Uso tradicional de iptables usando contêineres init
com CAP_NET_ADMIN |
||
Interface de rede de contêineres do Istio (CNI, na sigla em inglês) | ||
Sidecar de caixa baixa |
Suporte a protocolo
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
IPv4 | ||
HTTP/1.1 | ||
HTTP/2 | ||
Streams de bytes TCP (Observação 1) | ||
gRPC | ||
IPv6 |
Observações:
- O TCP é um protocolo compatível com a coleta de métricas de rede e TCP, mas elas não são informadas. As métricas são exibidas apenas para serviços HTTP no console do Google Cloud.
- Os serviços configurados com os recursos de Camada 7 para os seguintes protocolos não são compatíveis: WebSocket, MongoDB, Redis, Kafka, Cassandra, RabbitMQ e Cloud SQL. É possível fazer o protocolo funcionar usando o suporte ao stream de bytes TCP. Se o fluxo de bytes TCP não oferecer suporte ao protocolo (por exemplo, o Kafka envia um endereço de redirecionamento em uma resposta específica do protocolo e esse redirecionamento for incompatível com a lógica de roteamento do Cloud Service Mesh), o protocolo não será compatível.
Implantações do Envoy
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Sidecars | ||
Gateway de entrada | ||
Saída diretamente dos sidecars | ||
Saída usando gateways de saída | * | * |
Compatibilidade com CRD
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Recurso de sidecar | ||
Recurso de entrada de serviço | ||
Porcentagem, injeção de falhas, correspondência de caminho, redirecionamentos, novas tentativas, regravação, tempo limite, repetição, espelhamento, manipulação de cabeçalho e regras de roteamento CORS | ||
API "EnvoyFilter" | § | |
API`WasmPlugin` | ||
Operador do Istio |
Balanceador de carga para o gateway de entrada do Istio
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Balanceador de carga externo de terceiros | ||
google-cloud-internal-load-balancer | * | * |
Gateway da nuvem da malha de serviço
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Gateway da nuvem da malha de serviço |
API Kubernetes Gateway
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
API Kubernetes Gateway |
Políticas de balanceamento de carga
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Round-robin | ||
Menos conexões | ||
Aleatório | ||
Passagem | ||
Hash consistente | ||
Localidade |
Entrada de serviço
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
ServiceEntry v1beta1 | † |
† A implementação do plano de controle do Cloud Service Mesh não é compatível com os seguintes campos e valores nos campos:
- Campo
workloadSelector
- Campo
endpoints[].network
- Campo
endpoints[].locality
- Campo
endpoints[].weight
- Campo
endpoints[].serviceAccount
- O valor
DNS_ROUND_ROBIN
está no camporesolution
- O valor
MESH_INTERNAL
está no campolocation
- Endereço do soquete de domínio Unix no campo
endpoints[].address
- Campo
subjectAltNames
Regra de destino
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
DestinationRule v1beta1 | † |
† A implementação do plano de controle do Cloud Service Mesh não é compatível com os campos trafficPolicy.loadBalancer.localityLbSetting
e trafficPolicy.tunnel
.
Além disso, a implementação do plano de controle do Cloud Service Mesh exige que a
regra de destino que define os subconjuntos esteja no mesmo namespace e cluster com
o serviço do Kubernetes ou a ServiceEntry.
Arquivo secundário
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Arquivo secundário v1beta1 | † |
† A implementação do plano de controle do Cloud Service Mesh não é compatível com os seguintes campos e valores nos campos:
- Campo
ingress
- Campo
egress.port
- Campo
egress.bind
- Campo
egress.captureMode
- Campo
inboundConnectionPool
MeshConfig
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
LocalityLB | § | |
ExtensionProviders | § | |
CACert | ||
ImageType: distroless | § | |
OutboundTrafficPolicy | § | |
defaultProviders.accessLogging | ||
defaultProviders.tracing | ||
defaultConfig.tracing.stackdriver | § | |
accessLogFile | § |
ProxyConfig
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Proxy DNS (ISTIO_META_DNS_CAPTURE, ISTIO_META_DNS_AUTO_ALLOCATE) | ||
Suporte a HTTP/1.0 (ISTIO_META_NETWORK) | ||
Seleção de imagem (distroless ou imagem de base) | † |
† Imagem Distroless é usada para a injeção.
Regiões
Os clusters do GKE precisam estar em uma das regiões ou em qualquer zona dentro das regiões a seguir.
Região | Local |
---|---|
asia-east1 |
Taiwan |
asia-east2 |
Hong Kong |
asia-northeast1 |
Tóquio, Japão |
asia-northeast2 |
Osaka, Japão |
asia-northeast3 |
Coreia do Sul |
asia-south1 |
Mumbai, Índia |
asia-south2 |
Déli, Í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 |
Damã, Arábia Saudita |
me-west1 |
Tel Aviv |
northamerica-northeast1 |
Montreal, Canadá |
northamerica-northeast2 |
Toronto, Canadá |
southamerica-east1 |
Brasil |
southamerica-west1 |
Chile |
us-central1 |
Iowa |
us-east1 |
Carolina do Sul |
us-east4 |
Norte da Virgínia |
us-east5 |
Ohio |
us-south1 |
Dallas |
us-west1 |
Oregon |
us-west2 |
Los Angeles |
us-west3 |
Salt Lake City |
us-west4 |
Las Vegas |
Interface do usuário
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Painéis do Cloud Service Mesh no console do Google Cloud | ||
Cloud Monitoring | ||
Cloud Logging |
Ferramentas
Engenharia de | Gerenciado (TD) | Gerenciado (istiod) |
---|---|---|
Ferramenta gcloud beta container fleet mesh debug |