Nesta página, fornecemos instruções detalhadas para ajudar você a resolver problemas na configuração do conector local do IAP. Para mais informações sobre solução de problemas, consulte Depuração do Cloud Service Mesh.
Como solucionar problemas de erro 500
Veja a seguir vários problemas e possíveis soluções para ajudar você a resolver um erro 500 que você recebe ao tentar acessar seu aplicativo.
O aplicativo local não está conectado à rede do Google Cloud
Seu aplicativo local pode não estar conectado à rede doGoogle Cloud . Verifique a conectividade fazendo um ping no aplicativo local de uma das instâncias do Compute Engine do conector local. Se o endpoint do conector local estiver inacessível, depure a conectividade e as configurações de rede antes de continuar.
O Envoy não está instalado corretamente nas VMs
Conclua as etapas a seguir para verificar se o Envoy está instalado corretamente:
- Faça login em uma das VMs do Compute Engine usando o conector local. O nome da VM do conector local começa com
opc-on-prem-app-deployment-ig-${app}. - No console do Cloud, verifique se as verificações de integridade do serviço de back-end de balanceamento de carga
opc-on-prem-app-deployment-gclb-urlmapestão verdes. - Se o serviço de back-end não aparecer como íntegro, conecte-se via SSH a uma das instâncias:
gcloud compute ssh INSTANCE_NAME --zone=ZONE_NAME
Emita o seguinte comando para verificar se o Envoy está em execução:
Deve haver mais de um processo em execução, além dops aux | grep envoy
grep envoy.Um exemplo de saída:
envoy 943 0.0 0.0 5488 3076 ? Ss 06:25 0:00 /bin/bash /usr/local/bin/run-proxy.sh envoy 944 0.1 1.5 178928 57352 ? Sl 06:25 1:23 /usr/local/bin/envoy --config-path /usr/local/etc/ envoy/envoy-proxy-bootstrap.json --allow-unknown-static-fields --disable-hot-restart --log-level info --drain-time- s 60Verifique se o diretório de registros do Envoy foi criado em
/var/log/envoy/.Verifique se o bucket gce-mesh pode ser acessado pelas VMs emitindo o seguinte comando:
gcloud storage cp gs://gce-mesh/service-proxy-agent/releases/service-proxy-agent-0.2.tgz .
Se alguma das validações desta etapa falhar, o Envoy não será instalado corretamente. Para mais informações, revise os registros de inicialização em /var/log/daemon.log.
Se você observou que o Envoy não está em execução nas etapas anteriores, um dos
motivos pode ser o VPC Service Controls. O script de inicialização nas VMs faz o download
da imagem do Envoy no bucket gce-mesh. Se as regras do VPC Service Controls
não permitirem a conexão, a implantação do conector local não vai funcionar.
Para garantir que o Envoy seja instalado corretamente, permita o acesso ao bucket de armazenamento gce-mesh
no VPC Service Controls no projeto host. Além disso, verifique se a VPC tem uma regra de rota para permitir o tráfego para a Internet pública. Isso permite que o Envoy seja implantado.
Para mais informações, consulte
Regras de entrada e saída.
O aplicativo local não está conectado ao Envoy
Se for possível dar um ping no aplicativo local da VM, mas não usar o conector local, é possível que o Envoy não consiga se conectar ao aplicativo.
Para verificar se o Envoy pode se conectar ao aplicativo local, tente fazer uma
chamada para o Envoy na máquina em que ele está sendo executado. Usando SSH,conecte-se à
VM opc-on-prem-app-deployment-ig-${app} e execute o comando a seguir. O
número da porta do Envoy está em Grupos de instâncias > Detalhes > Mapeamento de nomes de portas.
curl -x -v localhost:${envoy_port}Se o endpoint não estiver acessível, verifique o seguinte:
/var/log/envoy/envoy.err.logpara registros de erros; Se não houver registros de erro, verifique se o Cloud Service Mesh está ativado e se é capaz de configurar o Envoy executando o seguinte comando:sudo curl 0.0.0.0:15000/config_dump
- Verifique se
TRAFFICDIRECTOR_INTERCEPTION_LISTENERestá definido. SeTRAFFICDIRECTOR_INTERCEPTION_LISTENERnão estiver definido, o Cloud Service Mesh não poderá configurar o Envoy. - Verifique se há mensagens de erro em cada listener.
As permissões da conta do Envoy e do Cloud Service Mesh não estão definidas
Se você vir o erro GRPC 403 na envoy.err.log ou não vir TRAFFICDIRECTOR_INTERCEPTION_LISTENER na configuração do Envoy, talvez as permissões de conta corretas não tenham sido definidas.
Verifique se a conta de serviço da VM tem permissões de acesso TD para xDS v3:
- Verifique as permissões: Preparar para configurar o Cloud Service Mesh com o Envoy.
- Verifique a conta: Ativar a conta de serviço.
Solução de problemas ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Se o navegador mostrar o erro ERR_SSL_VERSION_OR_CIPHER_MISMATCH sem
redirecionar para a página de login, verifique o status dos certificados na
página de detalhes do balanceador de carga doGoogle Cloud .
O provisionamento de um certificado gerenciado pelo Google pode levar até 60 minutos.
Solução de problemas de instalação do Envoy
Se o conector local for implantado com sucesso e o certificado tiver sido provisionado, mas a conexão ainda estiver falhando, isso pode indicar que o Envoy não está instalado corretamente nas VMs.
Para verificar se o Envoy está instalado, use o SSH em uma das VMs e execute o seguinte comando:
Deve haver mais de um processo em execução, além dops aux | grep envoy
grep envoy. A porta de administrador do Envoy 127.0.0.1:15000 precisa estar detectando.netstat -tlpn
Se alguma das ações anteriores falhar, siga as instruções abaixo para resolver o problema:
- Verifique se o Acesso privado do Google está ativado na sub-rede em que o conector está sendo implantado.
- Verifique se o VM Manager (API OS Config) está ativado.
Solução de problemas de falha na implantação em recursos IamMemberBinding
Se o conector local estiver sendo implantado ou atualizado e encontrar um erro PERMISSION_DENIED relacionado aos recursos IamMemberBinding, talvez seja porque a conta de serviço Google APIs Service Agent não recebeu o papel OWNER, conforme necessário ao ativar o IAP para apps locais.
Exemplos de erros de implantação:
bind-iam-policy: {"ResourceType":"gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Policy update access denied.","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects/<project-ID>:setIamPolicy","httpMethod":"POST"}}
bind-storage-admin-account-iam-policy: {"ResourceType":"gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Policy update access denied.","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects/<project-ID>:setIamPolicy","httpMethod":"POST"}}
Se você estiver vendo esses erros na implantação, verifique se a conta de serviço Google APIs Service Agent recebeu o papel OWNER e tente novamente.