Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.
Sintoma
É possível observar um dos seguintes sintomas:
- Os aplicativos clientes recebem erros de tempo limite como resposta para chamadas de API na Apigee híbrida.
- Erros como
Error from server (invalid)
ouThe Job "apigee-resources-install" is invalid
ao aplicar a configuração (overrides.yaml)
ao cluster durante a instalação da Apigee híbrida são observados.
Mensagens de erro
Um dos seguintes erros pode ser observado:
Resposta de erro às chamadas de API
As solicitações de API na Apigee híbrida podem falhar com a seguinte mensagem de erro:
* Connection failed * connect to 34.84.67.39 port 443 failed: Operation timed out * Failed to connect to example.apis.com port 443: Operation timed out * Closing connection 0 curl: (7) Failed to connect to example.apis.com port 443: Operation timed out
Erros observados ao aplicar a configuração (overrides.yaml) aos clusters
Talvez você observe um dos seguintes erros ao aplicar a configuração
(arquivo overrides.yaml
) aos clusters durante a instalação:
Erro 1
apigeectl init -f overrides/overrides.yaml
... ... Error from server (Invalid): error when applying patch: to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-10-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-11-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-14-1.4.6", Namespace: "istio-system"
Erro 2
apigeectl init -f overrides/overrides.yaml
... ... The Job "apigee-resources-install" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"apigee-resources-install", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0,
Causas possíveis
Esses erros podem acontecer se o serviço istio-ingressgateway
estiver em um
estado pending
e não puder ser vinculado a um endereço IP externo, como mostrado abaixo:
kubectl get services -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.198.5.104 <pending> 15020:31927/TCP, 12h 80:31381/TCP, 443:31391/TCP, 31400:31401/TCP, 15443:32623/TCP
As possíveis causas para o serviço istio-ingressgateway
estar em um
estado pending
são as seguintes:
Causa | Descrição |
---|---|
Jobs com estado incorreto/pendente no namespace istio-system | Os jobs incomplete/erroneous no namespace istio-system podem
fazer com que o serviço istio-ingressgateway fique no estado pending para sempre
e não possa ser vinculado a um endereço IP externo. |
job apigee-resources-install em estado incorreto/pendente no namespace apigee-system | Os jobs incomplete no namespace apigee-system podem fazer com que o
serviço istio- ingressgateway fique no estado pending para sempre e não consiga
ser vinculado a um endereço IP externo. |
Intervalo de endereços IP incorreto atribuído ao balanceador de carga externo | Um intervalo de endereços IP incorreto pode ser configurado no arquivo istio-operator.yaml ,
fazendo com que o serviço istio-ingressgateway entre no estado pending
para sempre e não consiga se vincular a um endereço IP externo durante a instalação.
|
Causa: jobs no namespace do sistema istio em estado incorreto/pendente
Diagnóstico
- Verifique o status dos jobs no namespace
istio-system
usando o seguinte comando:kubectl get jobs -n istio-system
- O status dos jobs precisa ser
complete
. Se o status dos jobs for um estadoerroneous/pending
, essa é a causa do problema.
Resolução
- Se algum dos jobs estiver no estado
pending
ouerroneous
, exclua-os usando o seguinte comando:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Execute novamente a instalação aplicando o arquivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: o job apigee-resources-install no namespace apigee-system pode estar no estado incorreto
Diagnóstico
- Verifique o status dos jobs no namespace
apigee-system
usando o seguinte comando:kubectl get jobs -n apigee-system
- O status dos jobs precisa ser
complete
. Se o status dos jobs estiver em um estadoerroneous/pending
, essa é a causa do problema. O exemplo de saída a seguir mostra que o jobapigee-resources-install
foi concluído.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Resolução
- Se os jobs estiverem em estado
pending
ouerroneous
, exclua-os usando o seguinte comando:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Execute novamente a instalação aplicando o arquivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: intervalo de endereços IP incorreto atribuído ao balanceador de carga externo
Diagnóstico
- Verifique o endereço IP configurado para o balanceador de carga no arquivo
istio- operator.yaml
. Por exemplo, o snippet a seguir mostra o local no arquivoistio-operator.yaml
em que o endereço IP está configurado:-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- O serviço
istio-ingressgateway
está configurado como um balanceador de carga (indicado por tipo) no arquivoistio-operator.yaml
. Durante a instalação do ASM, um balanceador de carga é criado com o endereço IP configurado e conectado para se comunicar com o serviçoistio- ingressgateway
. Portanto, o endereço IP configurado precisa estar correto e reservado para o balanceador de carga. - Envolva sua equipe de rede e verifique se o endereço IP configurado para
loadBalancerIP
está correto. Se estiver incorreto, o serviço de balanceador de carga não poderá se vincular ao endereço IP. Isso faz com que o serviçoistio-ingressgateway
fique no estadopending
para sempre.
Resolução
- Trabalhe com sua equipe de rede e configure o endereço IP correto no arquivo
istio- operator.yaml
. - Execute novamente a
instalação do ASM e aplique o arquivo
overrides.yaml
:apigeectl apply -f overrides.yaml
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e entre em contato com o Suporte do Google Cloud:
- O ID do projeto do Google Cloud
- O nome da organização da Apigee híbrida
- Nome do cluster do Kubernetes
- Nome do projeto do Google Cloud se o cluster do Kubernetes estiver em um projeto diferente do Google Cloud
- Arquivo
overrides.yaml
- O arquivo
Istio-operator .yaml
usado durante a instalação do ASM. - Colete os registros em cada pod
istio-ingressgateway
no namespaceistio-system
:kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Colete a descrição de cada pod no namespace
istio-system
:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Colete a lista de serviços no namespace
istio-system
:kubectl get svc -n istio-system