Tidak ada konektivitas jaringan antara bidang runtime dan bidang kontrol

Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Tidak ada dokumentasi Apigee Edge yang setara untuk topik ini.

Gejala

  • Produk API, Developer, Aplikasi tidak diisi di UI Apigee.
  • Deployment proxy API tidak selesai.
  • Permintaan Management API yang dijalankan untuk membaca dan menulis produk API, Developer, dan Aplikasi akan gagal.

Pesan error

Bagian ini menjelaskan kemungkinan pesan error yang ditampilkan saat tidak ada konektivitas jaringan.

ApigeeIssue

Jika masalah ini dilaporkan sebagai ApigeeIssue, saat perintah berikut dijalankan:

kubectl -n APIGEE_NAMESPACE get apigeeissues

dengan APIGEE_NAMESPACE adalah nama untuk pengelompokan resource Kubernetes.

kode error berikut ditampilkan:

NAME                               SEVERITY    AGE URL
control-plane-connectivity-failure Error       1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity

Halaman UI Apigee untuk Produk API, Developer, dan Aplikasi

Halaman UI Apigee untuk Produk API, Developer, dan Aplikasi menampilkan error berikut:

Error: no connections available from the Apigee connect agent(s):
refer to documentation to triage further.

Log apigee-synchronizer

Pesan error berikut dapat dilihat di log apigee-synchronizer:

{"level":"SEVERE","thread":"Apigee-Timer-3","mdc":{"action":"SYNC","env":"dev",
  "org":"example-hybrid-dev"},"className":"com.apigee.httpclient.adaptor.RequestAdaptor",
  "method":"doSend","severity":"SEVERE","message":"request failed
  [CONTEXT ratelimit_period\u003d\"1 MINUTES [skipped: 1]\" ]",
  "formattedDate":"2023-02-01T06:27:48.700Z","logger":"SERVICES.HTTPCLIENTSERVICE",
  "exceptionStackTrace":"java.net.SocketTimeoutException: connect timed out
... com.apigee.httpclient.adaptor.RequestAdaptor.send(RequestAdaptor.java:251)
at com.apigee.hybrid.runtime.contract.sync.context.HttpContractDownloader.download(HttpContractDownloader.java:84)
at com.apigee.hybrid.runtime.contract.sync.context.ControlPlaneReplicationContext.getContract(ControlPlaneReplicationContext.java:66)

Log apigee-watcher

Pesan error berikut dapat dilihat di log apigee-watcher:

{"level":"error","ts":1675232549.5093117,"caller":"watcher/watcher.go:60",
"msg":"error during watch","name":"mpstatus","error":"INTERNAL: error sending
  mp status to mgmt: INTERNAL: failed to send runtime status
  Post \"https://apigee.googleapis.com/v1/organizations/example-hybrid-dev/instances/apigee-hybrid-australia-southeast1:reportStatus\":
  dial tcp 172.217.24.42:443: i/o timeout","stacktrace":
  "edge-internal.git.corp.google.com/apigee-watcher.git/watcher.
  (*Watcher).Start.func1.1\n\t/go/src/edge-internal/apigee-watcher/watcher/watcher.go:60"}

Kemungkinan Penyebab

Platform Penyebab Deskripsi
Semua Tidak ada rute jaringan yang tersedia ke internet Jika tidak ada rute jaringan yang tersedia ke internet, komponen bidang runtime Apigee tidak akan dapat berkomunikasi dengan API bidang kontrol Apigee.
Semua Endpoint API Apigee tidak masuk dalam daftar yang diizinkan Jika ada firewall, endpoint API Apigee mungkin belum dimasukkan dalam daftar yang diizinkan.
GKE Akses Google Pribadi tidak diaktifkan Jika deployment ada di GKE, Akses Google Pribadi mungkin belum diaktifkan di subnet.
Semua Kegagalan jaringan yang tidak diketahui Jika terjadi kegagalan yang tidak diketahui di jaringan cluster saat terhubung ke internet, masalah ini dapat terjadi.

Penyebab: Tidak ada rute jaringan yang tersedia ke internet

Diagnosis

  1. Bergantung pada platform yang digunakan, verifikasi apakah ada rute jaringan yang tersedia dari jaringan cluster ke internet. Misalnya, untuk mengetahui informasi selengkapnya tentang jaringan di GKE, lihat Ringkasan jaringan.
  2. Hubungi tim infrastruktur dan jaringan Anda untuk mengetahui apakah jaringan cluster menggunakan server proxy penerusan untuk terhubung ke internet.

Resolusi

  1. Hubungi administrator jaringan dan tambahkan rute jaringan ke internet jika memungkinkan.
  2. Jika ada server proxy penerusan yang digunakan untuk berkomunikasi antara jaringan cluster dan internet, konfigurasi setelan server proxy penerusan di Apigee menggunakan file overrides.yaml dan terapkan perubahan tersebut ke bidang runtime menggunakan perintah Helm:

    Uji coba:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE \
    --dry-run=server
    

    Pastikan untuk menyertakan semua setelan yang ditampilkan, termasuk --atomic agar tindakan di-roll back jika gagal.

    Penginstalan Anda mungkin atau mungkin tidak disiapkan menggunakan ENV_GROUP_RELEASE_NAME yang berbeda dari ENV_GROUP. Untuk mengetahui informasi tentang setelan, lihat Menginstal Apigee hybrid menggunakan Helm.

    Instal diagram:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE
    

Penyebab: Endpoint Apigee API tidak masuk dalam daftar yang diizinkan

Diagnosis

Hubungi administrator jaringan dan pastikan apakah daftar endpoint API Apigee diizinkan dalam firewall di platform tempat Apigee diinstal. Untuk GKE, hal ini dapat berupa Cloud Next Generation Firewall.

Resolusi

Jika daftar endpoint Apigee API di atas tidak masuk dalam daftar yang diizinkan, hubungi administrator jaringan dan selesaikan persyaratan tersebut.

Penyebab: Akses Google Pribadi tidak diaktifkan

Diagnosis

  1. Jika Apigee di-deploy di cluster GKE pribadi yang tidak memiliki akses ke internet, Akses Google Pribadi harus diaktifkan agar komponen bidang runtime Apigee dapat mengakses Google API secara internal.
  2. Di konsol Google Cloud , buka halaman VPC networks.

    Buka VPC networks

  3. Klik nama jaringan.
  4. Di tab Subnets, di kolom Private Google Access, pastikan subnet yang relevan diaktifkan. Jika tidak, itulah alasan kegagalan ini.

Resolusi

  1. Di konsol Google Cloud , buka halaman VPC networks.

    Buka VPC networks

  2. Klik nama jaringan.
  3. Klik nama subnet.
  4. Klik Edit.
  5. Pilih Akses Google Pribadi Aktif.
  6. Klik Simpan. Setelah diaktifkan, masalah ini akan terselesaikan.

Penyebab: Kegagalan jaringan tidak diketahui

Diagnosis

Hubungi administrator jaringan Anda dan verifikasi apakah ada kegagalan yang tidak diketahui di jaringan cluster.

Resolusi

Hubungi administrator jaringan Anda dan selesaikan masalah di jaringan cluster. Setelah masalah jaringan diperbaiki, masalah ini akan terselesaikan.

Harus mengumpulkan informasi diagnostik

Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Layanan Pelanggan Google Cloud:

  1. Google Cloud Project ID.
  2. Nama organisasi hybrid Apigee.
  3. Output dari perintah berikut yang dijalankan di semua node cluster Kubernetes:
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. File overrides.yaml, yang menyamarkan informasi sensitif apa pun.
  5. Status pod Kubernetes di semua namespace:
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. Dump info cluster Kubernetes:

    Buat dump info cluster Kubernetes:

    kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump

    Zip dump info cluster Kubernetes:

    zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*