Está a ver a documentação do Apigee e do Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Sintoma
Pode observar um dos seguintes sintomas:
- As aplicações cliente recebem erros de limite de tempo como resposta a chamadas API no Apigee Hybrid.
- Observa 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 híbrida.
Mensagens de erro
Pode observar um dos seguintes erros:
Resposta de erro a chamadas API
Os pedidos de API no Apigee Hybrid 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
Pode observar um dos seguintes erros ao aplicar a configuração
(ficheiro overrides.yaml
) aos clusters durante a instalação:
Erro n.º 1
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
... ... 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 n.º 2
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
... ... 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
Estes erros podem ocorrer se o serviço istio-ingressgateway
estiver num estado pending
e não conseguir associar-se a um endereço IP externo, conforme 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 num estado pending
são as seguintes:
Causa | Descrição |
---|---|
Tarefas num estado com erros/pendente no espaço de nomes istio-system | As tarefas incomplete/erroneous no espaço de nomes istio-system podem
fazer com que o serviço istio-ingressgateway fique no estado pending para sempre
e não consiga associar-se a um endereço IP externo. |
apigee-resources-install job in erroneous/pending state in apigee-system namespace | As tarefas incomplete no espaço de nomes apigee-system podem fazer com que o serviço istio- ingressgateway fique no estado pending para sempre e não consiga associar-se a um endereço IP externo. |
Intervalo de endereços IP incorreto atribuído ao balanceador de carga externo | Pode ser configurado um intervalo de endereços IP incorreto no ficheiro istio-operator.yaml , o que faz com que o serviço istio-ingressgateway entre no estado pending para sempre e não consiga associar-se a um endereço IP externo durante a instalação.
|
Causa: tarefas no espaço de nomes istio-system num estado com erros/pendente
Diagnóstico
- Verifique o estado das tarefas no espaço de nomes
istio-system
através do seguinte comando:kubectl get jobs -n istio-system
- O estado das tarefas tem de ser
complete
. Se o estado dos trabalhos estiver num estadoerroneous/pending
, é essa a causa deste problema.
Resolução
- Se alguma das tarefas estiver no estado
pending
ouerroneous
, elimine-as usando o seguinte comando:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Volte a executar a instalação aplicando o ficheiro
overrides.yaml
:Atualize o
apigee-serving-cert
através do Helm:helm install operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE \ --dry-run=server
Certifique-se de que inclui todas as definições apresentadas, incluindo
--atomic
para que a ação seja revertida em caso de falha.Instale o gráfico:
helm upgrade operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
Causa: a tarefa apigee-resources-install no espaço de nomes apigee-system pode estar num estado incorreto
Diagnóstico
- Verifique o estado das tarefas no espaço de nomes
apigee-system
através do seguinte comando:kubectl get jobs -n apigee-system
- O estado das tarefas tem de ser
complete
. Se o estado dos trabalhos estiver num estadoerroneous/pending
, é essa a causa deste problema. O seguinte resultado de exemplo mostra que a tarefa foi concluída com êxito.apigee-resources-install
kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Resolução
- Se as tarefas estiverem no estado
pending
ouerroneous
, elimine-as com o seguinte comando:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Volte a executar a instalação aplicando o ficheiro
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: intervalo de endereços IP incorreto atribuído ao equilibrador de carga externo
Diagnóstico
- Verifique o endereço IP configurado para o equilibrador de carga no ficheiro
istio- operator.yaml
. Por exemplo, o fragmento seguinte mostra a localização no ficheiroistio-operator.yaml
onde 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 equilibrador de carga (indicado pelo tipo) no ficheiroistio-operator.yaml
. Durante a instalação do ASM, é criado um equilibrador de carga com o endereço IP configurado e ligado para comunicar com o serviçoistio- ingressgateway
. Como tal, o endereço IP configurado deve estar correto e reservado para o balanceador de carga. - Contacte a sua equipa de rede e verifique se o endereço IP configurado para
loadBalancerIP
está correto. Se estiver incorreto, o serviço de balanceamento de carga não vai poder associar-se ao endereço IP. Isto faz com que o serviçoistio-ingressgateway
fique para sempre no estadopending
.
Resolução
- Trabalhe com a sua equipa de rede e configure o endereço IP correto no ficheiro
istio- operator.yaml
. - Volte a executar a instalação para o
gateway de entrada do Apigee e aplique o ficheiro
overrides.yaml
:helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
Tem de recolher 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, em seguida, contacte o apoio ao cliente da Google Cloud:
- O ID do projeto do Google Cloud
- O nome da organização do Apigee Hybrid
- Nome do cluster do Kubernetes
- Nome do projeto do Google Cloud se o cluster do Kubernetes residir num projeto do Google Cloud diferente
- O ficheiro
overrides.yaml
- O ficheiro
Istio-operator .yaml
usado durante a instalação do ASM. - Recolha os registos de cada pod no espaço de nomes
istio-system
:istio-ingressgateway
kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Recolha 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
- Recolha a lista de serviços no espaço de nomes
istio-system
:kubectl get svc -n istio-system