Está a ver a documentação do Apigee e do Apigee Hybrid.
    Ver documentação do 
    Apigee Edge.
  
Sintomas
As implementações de proxy de API falham com as seguintes mensagens de erro.
Mensagens de erro
    Se o certificado TLS do serviço apigee-webhook-service.apigee-system.svc tiver expirado ou ainda não for válido,  é apresentada a seguinte mensagem de erro nos registos apigee-watcher:
  
{"level":"error","ts":1687991930.7745812,"caller":"watcher/watcher.go:60", "msg":"error during watch","name":"ingress","error":"INTERNAL: INTERNAL: failed to update ApigeeRoute [org-env]-group-84a6bb5, namespace apigee: Internal error occurred: failed calling webhook \"mapigeeroute.apigee.cloud.google.com\": Post \"https://apigee-webhook-service.apigee-system.svc:443/mutate-apigee-cloud-google-com-v1alpha1-apigeeroute?timeout=30s\": x509: certificate has expired or is not yet valid: current time 2023-06-28T22:38:50Z is after 2023-06-17T17:14:13Z, INTERNAL: failed to update ApigeeRoute [org-env]-group-e7b3ff6, namespace apigee
Causas possíveis
| Causa | Descrição | 
|---|---|
| The apigee-serving-cert is not found | Se o apigee-serving-certnão for encontrado no espaço de nomesapigee-system, este problema pode ocorrer. | 
| Foram criados pedidos de certificados duplicados para a renovação de apigee-serving-cert | Se forem criados pedidos de certificados duplicados para renovar o certificado apigee-serving-cert, o certificadoapigee-serving-certpode não ser renovado. | 
| O cert-manager não está em bom estado | Se cert-managernão estiver em bom estado, o certificadoapigee-serving-certpode não ser renovado. | 
Causa: não foi encontrado o apigee-serving-cert
Diagnóstico
- 
      Verifique a disponibilidade do certificado apigee-serving-certno espaço de nomesapigee-system:kubectl -n apigee-system get certificates apigee-serving-cert Se este certificado estiver disponível, deve ver um resultado semelhante ao seguinte: NAME READY SECRET AGE apigee-serving-cert True webhook-server-cert 2d10h 
- 
      Se o certificado apigee-serving-cert não for encontrado no espaço de nomes apigee-system, esse pode ser o motivo deste problema.
Resolução
- 
      Atualize o apigee-serving-certatravés do Helm:helm upgrade ENV_NAME apigee-env/ \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE Certifique-se de que inclui todas as definições apresentadas, incluindo --atomicpara que a ação seja revertida em caso de falha.
- 
      Verifique se o certificado apigee-serving-certfoi criado:kubectl -n apigee-system get certificates apigee-serving-cert 
Causa: foram criados pedidos de certificados duplicados para a renovação de apigee-serving-cert
Diagnóstico
- 
      Verifique os registos do controlador e veja se foi devolvida uma mensagem de erro semelhante à seguinte. cert-managerApresente todos os agrupamentos de anúncios cert-manager:kubectl -n cert-manager get pods Exemplo de resultado: NAME READY STATUS RESTARTS AGE cert-manager-66d9545484-772cr 1/1 Running 0 6d19h cert-manager-cainjector-7d8b6bd6fb-fpz6r 1/1 Running 0 6d19h cert-manager-webhook-669b96dcfd-6mnm2 1/1 Running 0 6d19h Verifique os registos do comando cert-manager:kubectl -n cert-manager logs cert-manager-66d9545484-772cr | grep "issuance is skipped until there are no more duplicates" Exemplos de resultados: 1 controller.go:163] cert-manager/certificates-readiness "msg"="re-queuing item due to error processing" "error"="multiple CertificateRequests were found for the 'next' revision 3, issuance is skipped until there are no more duplicates" "key"="apigee-system/apigee-serving-cert" 1 controller.go:167] cert-manager/certificates-readiness "msg"="re-queuing item due to error processing" "error"="multiple CertificateRequests were found for the 'next' revision 683, issuance is skipped until there are no more duplicates" "key"="apigee/apigee-istiod" Se vir qualquer uma das mensagens apresentadas acima, os certificados apigee-serving-certeapigee-istiod-certnão são renovados.
- 
      Liste todos os pedidos de certificados no espaço de nomes apigee-systemou no espaço de nomesapigee, consoante o espaço de nomes impresso nas entradas do registo acima, e verifique se existem vários pedidos de certificados criados para renovar as mesmas revisões de certificadosapigee-serving-certouapigee-istiod-cert:kubectl -n apigee-system get certificaterequests 
    Consulte o problema cert-managerrelevante para este problema em
    
      O cert-manager criou vários objetos CertificateRequest com a mesma
      certificate-revision.
  
Resolução
- 
      Elimine todos os pedidos de certificados no espaço de nomes apigee-system:kubectl -n apigee-system delete certificaterequests --all 
- 
      Verifique se os pedidos de certificados duplicados foram eliminados e se apenas um pedido de certificado está disponível para o certificado apigee-serving-certno espaço de nomesapigee-system:kubectl -n apigee-system get certificaterequests 
- 
      Verifique se o certificado apigee-serving-certfoi renovado:kubectl -n apigee-system get certificates apigee-serving-cert -o yaml Exemplo de resultado: apiVersion: cert-manager.io/v1 kind: Certificate metadata: creationTimestamp: "2023-06-26T13:25:10Z" generation: 1 name: apigee-serving-cert namespace: apigee-system resourceVersion: "11053" uid: e7718341-b3ca-4c93-a6d4-30cf70a33e2b spec: dnsNames: - apigee-webhook-service.apigee-system.svc - apigee-webhook-service.apigee-system.svc.cluster.local issuerRef: kind: Issuer name: apigee-selfsigned-issuer secretName: webhook-server-cert status: conditions: - lastTransitionTime: "2023-06-26T13:25:11Z" message: Certificate is up to date and has not expired observedGeneration: 1 reason: Ready status: "True" type: Ready notAfter: "2023-09-24T13:25:11Z" notBefore: "2023-06-26T13:25:11Z" renewalTime: "2023-08-25T13:25:11Z" revision: 1 
Causa: o cert-manager não está em bom estado
Diagnóstico
- 
      Verifique o estado dos pods cert-managerno espaço de nomescert-manager:kubectl -n cert-manager get pods Se os pods cert-managerestiverem em bom estado, todos os podscert-managerdevem estar prontos(1/1)e no estadoRunning. Caso contrário, pode ser o motivo deste problema:NAME READY STATUS RESTARTS AGE cert-manager-59cf78f685-mlkvx 1/1 Running 0 15d cert-manager-cainjector-78cc865768-krjcp 1/1 Running 0 15d cert-manager-webhook-77c4fb46b6-7g9g6 1/1 Running 0 15d 
- 
      A cert-managerpode falhar por vários motivos. Verifique os registoscert-managere identifique o motivo da falha, resolvendo-o em conformidade.Um motivo conhecido é que o cert-managerfalha se não conseguir comunicar com a API Kubernetes. Neste caso, é apresentada uma mensagem de erro semelhante à seguinte:E0601 00:10:27.841516 1 leaderelection.go:330] error retrieving resource lock kube-system/cert-manager-controller: Get "https://192.168.0.1:443/api/v1/namespaces/kube-system/configmaps/cert-manager-controller": dial tcp 192.168.0.1:443: i/o timeout 
Resolução
- Verifique o estado do cluster do Kubernetes e corrija os problemas encontrados. Consulte o artigo Resolução de problemas de clusters.
- 
      Consulte a secção
      
        Resolução de problemas para ver cert-managerinformações adicionais sobre a resolução de problemas.
Tem de recolher informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, recolha as seguintes informações de diagnóstico e, em seguida, contacte o apoio ao cliente do Google Cloud.
- Google Cloud ID do projeto
- Organização do Apigee Hybrid
- 
        Ficheiro overrides.yamldo Apigee hybrid, ocultando quaisquer informações confidenciais.
- Estado do pod do Kubernetes em todos os namespaces:
kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt 
- 
        Captura do Kubernetes cluster-info:# generate kubernetes cluster-info dump kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump # zip kubernetes cluster-info dump zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*