Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat
Dokumentasi Apigee Edge.
Gejala
Deployment proxy API gagal dengan pesan error berikut.
Pesan Error
Jika sertifikat TLS objek
apigee-webhook-service.apigee-system.svc
layanan telah berakhir
atau belum valid, pesan {i>error<i} berikut akan ditampilkan pada
apigee-watcher
log:
{"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
Kemungkinan Penyebab
Penyebab | Deskripsi |
---|---|
apigee-serving-cert tidak ditemukan | Jika apigee-serving-cert tidak ditemukan dalam
apigee-system , masalah ini dapat terjadi. |
Permintaan sertifikat duplikat telah dibuat untuk
memperpanjang apigee-serving-cert |
Jika ada permintaan sertifikat duplikat yang dibuat untuk memperpanjang
apigee-serving-cert , status
Sertifikat apigee-serving-cert mungkin tidak akan diperpanjang.
|
pengelola sertifikat tidak responsif |
Jika cert-manager tidak responsif,
Sertifikat apigee-serving-cert mungkin tidak akan diperpanjang.
|
Penyebab: apigee-serving-cert tidak ditemukan
Diagnosis
-
Periksa ketersediaan sertifikat
apigee-serving-cert
dalam namespaceapigee-system
:kubectl -n apigee-system get certificates apigee-serving-cert
Jika sertifikat ini tersedia, output yang mirip dengan yang berikut ini akan dilihat:
NAME READY SECRET AGE apigee-serving-cert True webhook-server-cert 2d10h
-
Jika sertifikat apigee-serving-cert tidak ditemukan dalam
apigee-system
, yang mungkin menjadi penyebab masalah performa.
Resolusi
-
apigee-serving-cert
dibuat oleh perintahapigeectl init
selama penginstalan hybrid Apigee. Oleh karena itu, jalankan perintah tersebut dengan fileoverrides.yaml
yang relevan untuk membuatnya kembali:apigeectl init -f overrides/overrides.yaml
-
Pastikan bahwa sertifikat
apigee-serving-cert
telah dibuat:kubectl -n apigee-system get certificates apigee-serving-cert
Penyebab: Permintaan sertifikat duplikat telah dibuat untuk memperpanjang sertifikat penayangan apigee
Diagnosis
-
Periksa log pengontrol
cert-manager
dan lihat apakah terjadi error pesan yang serupa dengan yang berikut ini telah dikembalikan.Tampilkan daftar semua pod
cert-manager
:kubectl -n cert-manager get pods
Contoh output:
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
Periksa log pengontrol
cert-manager
:kubectl -n cert-manager logs cert-manager-66d9545484-772cr | grep "issuance is skipped until there are no more duplicates"
Contoh output:
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"
Jika pesan {i>error<i} yang serupa dengan ini ditampilkan, itu akan mencegah memperpanjang sertifikat
apigee-serving-cert
. -
Mencantumkan semua permintaan sertifikat di namespace
apigee-system
dan periksa untuk melihat apakah ada beberapa permintaan sertifikat yang dibuat untuk memperpanjang revisi sertifikatapigee-serving-cert
yang sama:kubectl -n apigee-system get certificaterequests
Lihat masalah cert-manager
yang relevan dengan masalah ini di
pengelola sertifikat membuat beberapa objek CertificateRequest dengan
revisi sertifikat.
Resolusi
-
Hapus semua permintaan sertifikat di namespace
apigee-system
:kubectl -n apigee-system delete certificaterequests --all
-
Verifikasi bahwa permintaan sertifikat duplikat telah dihapus dan hanya satu
permintaan sertifikat tersedia untuk
apigee-serving-cert
sertifikat dalam namespaceapigee-system
:kubectl -n apigee-system get certificaterequests
-
Pastikan bahwa sertifikat
apigee-serving-cert
telah diperpanjang:kubectl -n apigee-system get certificates apigee-serving-cert -o yaml
Contoh output:
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
Penyebab: pengelola sertifikat tidak responsif
Diagnosis
-
Periksa kondisi pod
cert-manager
di Namespacecert-manager
:kubectl -n cert-manager get pods
Jika
cert-manager
pod responsif, semuacert-manager
pod harus sudah siap(1/1)
dan dalamRunning
jika tidak, itu bisa menjadi penyebab masalah ini masalah: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
-
cert-manager
bisa gagal karena berbagai alasan. Periksacert-manager
mencatat dan mengidentifikasi alasan kegagalan dan mengatasinya.Salah satu alasan yang diketahui adalah
cert-manager
akan gagal jika tidak dapat berkomunikasi dengan Kubernetes API. Dalam hal ini, {i>error<i} pesan yang mirip dengan berikut ini akan ditampilkan: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
Resolusi
- Memeriksa kondisi cluster Kubernetes dan memperbaiki masalah apa pun yang ditemukan. Lihat Memecahkan Masalah Cluster.
-
Rujuk ke
Pemecahan masalah untuk
cert-manager
tambahan informasi pemecahan masalah.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti instruksi di atas, kumpulkan informasi diagnostik berikut, dan kemudian hubungi Google Cloud Customer Care.
- ID Project Google Cloud
- Organisasi hybrid Apigee
-
File
overrides.yaml
hybrid Apigee, menyamarkan informasi sensitif. - Status pod Kubernetes di semua namespace:
kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
-
Dump
cluster-info
Kubernetes:# 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/*