Isolamento para o Cloud Service Mesh
Nesta página, mostramos como configurar a malha de serviço com melhor isolamento de solicitações para o serviço de back-end criando uma configuração de isolamento.
Esse recurso oferece suporte de isolamento adicional para os back-ends dos serviços, evitando o estouro entre regiões.
Por padrão, o Cloud Service Mesh usa o algoritmo de cascata por região para decidir para onde o tráfego do usuário será roteado. Com esse algoritmo, o Cloud Service Mesh roteia o tráfego para a região mais próxima até que os back-ends estejam em execução no limite de capacidade configurado. Depois disso, o tráfego começará a estourar em uma região mais distante.
Com esse recurso, com base na região de front-end e na configuração de isolamento, o tráfego é limitado à região mais próxima ou local e não vai estourar se a região mais próxima estiver ficando sem capacidade. Isso ajuda a evitar possíveis falhas em cascata e limita possíveis interrupções na mesma região. Caso contrário, você ainda gerencia a configuração do serviço no nível global.

Se você vai usar ou não esse recurso depende dos seus casos de uso reais. Analise cuidadosamente as considerações a seguir antes de usá-lo:
- Se os back-ends em uma região estiverem sobrecarregados, o Cloud Service Mesh ainda poderá enviar tráfego adicional para eles, mesmo que os back-ends em outras regiões possam processar o tráfego. Isso significa que cada região individual tem mais probabilidade de sobrecarga devido ao tráfego adicional, e você precisa planejar de acordo.
- O tráfego ainda é roteado com um plano de controle global. Isso significa que ainda há chance de falhas coordenadas globalmente em várias regiões.
- Esse recurso é configurado com o recurso serviceLbPolicy. Todas as restrições ainda se aplicam.
- Com o modo de isolamento STRICT, as solicitações falham se não houver back-ends de serviço na mesma região.
Há dois cenários após a aplicação desse recurso:
Isolamento mais próximo
O isolamento regional mais próximo é quando um front-end com back-ends colocalizados é isolado apenas para essa região. Se nenhum back-end disponível estiver no local, ele será conectado à região de back-end ao otimizar a latência da rede.

Isolamento estrito
O isolamento regional estrito é quando os locais de front-end só podem alcançar back-ends na região local. Os front-ends sem back-ends de serviço na região local vão descartar todo o tráfego.

Como ativar o isolamento
gcloud
Siga estas etapas para criar uma configuração de isolamento usando a Google Cloud CLI.
Execute o comando a seguir para criar um
serviceLbPolicy:gcloud network-services service-lb-policies create my-isolation-policy \ --isolation-config-granularity=REGION \ --isolation-config-mode=ISOLATION_MODE \ --location=globalSubstitua ISOLATION_MODE por uma das seguintes opções:
- NEAREST: o tráfego é enviado para a região mais próxima.
- STRICT: o tráfego falha se nenhum back-end de serviço estiver disponível na mesma região do front-end.
Se não for fornecido explicitamente, NEAREST será o valor padrão. Só é possível especificar esse campo se o flag
--isolation-granularitytambém estiver definido.Como alternativa, se você tiver uma política, atualize-a com o seguinte comando:
gcloud network-services service-lb-policies update POLICY_NAME \ --isolation-config-granularity=REGION \ --isolation-config-mode=ISOLATION_MODE \ --location=globalSubstitua POLICY_NAME pelo nome da política.
Depois que um recurso
serviceLbPolicyfor criado ou atualizado, anexe-o ao recursobackendService:gcloud compute backend-services update BACKEND_SERVICE_NAME \ ‐‐service-lb-policy POLICY_URLSubstitua BACKEND_SERVICE_NAME pelo nome do serviço de back-end.
Desativar o isolamento
Para desativar esse recurso, você tem duas opções:
- Defina
isolationConfigscomo não especificado. - Remova
ServiceLbPolicydo serviço se ele for o único recurso ativado com essa política.
Definir isolationConfigs como não especificado
Execute o comando a seguir para definir isolationConfigs como não especificado:
gcloud network-services service-lb-policies update my-isolation-policy \
--isolation-config-granularity=unspecified \
--isolation-config-mode=unspecified \
--location=global
Remover ServiceLbPolicy do serviço
Execute o comando a seguir para remover o ServiceLbPolicy:
gcloud network-services service-lb-policies delete my-isolation-policy --location=global
Suporte, diagnóstico e solução de problemas
Esta seção descreve possíveis problemas após a ativação desse recurso.
Back-ends sobrecarregados
Esse recurso oferece suporte de isolamento e, portanto, o tráfego não será transferido para uma região remota se a região local estiver cheia. Portanto, alguns dos seus back-ends poderão ficar sobrecarregados se esse recurso estiver ativado. Se esse não for o comportamento desejado, desative esse recurso. Você também pode considerar ativar o escalonamento automático para lidar melhor com as sobrecargas de back-end.
O tráfego foi transferido
Esse recurso impede o estouro de tráfego com base na capacidade. Portanto, se os back-ends estavam sobrecarregados antes de ativar esse recurso, o tráfego já pode ter sido transferido para uma região remota. Nesse caso, ativar esse recurso pode fazer com que esse tráfego seja transferido de volta.
O tráfego não foi transferido
Esse recurso impede o estouro de tráfego com base na capacidade. Portanto, se os back-ends não estavam sobrecarregados antes de ativar esse recurso, é provável que a região mais próxima seja capaz de processar todo o tráfego. Nesse caso, ativar esse recurso pode não causar mudanças de tráfego no curto prazo.
O tráfego foi transferido depois que os back-ends foram adicionados ou removidos de uma região
Quando esse recurso está ativado, o tráfego pode ser transferido se novos back-ends forem adicionados a uma região. Isso é esperado, já que o Cloud Service Mesh vai tentar rotear o tráfego para esses back-ends para otimizar a latência geral da rede. Da mesma forma, quando os últimos back-ends são removidos, o Cloud Service Mesh começa a enviar tráfego para uma região remota. Esse também é um comportamento esperado.
Falha nas solicitações
Se o modo de isolamento STRICT estiver ativado e não houver back-ends de serviço na mesma região do front-end, o tráfego vai falhar. Se esse não for o comportamento pretendido, verifique se há back-ends em cada uma das regiões para as quais você espera que o tráfego seja enviado.