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, dan Aplikasi tidak diisi di UI Apigee.
  • Deployment proxy API tidak selesai.
  • Permintaan API Pengelolaan yang dijalankan untuk membaca dan menulis produk API, Developer, dan Aplikasi gagal./li>

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 akan 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 Aplikasi, Developer, dan produk API

Halaman UI Apigee Produk, 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 untuk internet Jika tidak ada rute jaringan yang tersedia untuk internet, komponen bidang runtime Apigee tidak akan dapat berkomunikasi dengan API bidang kontrol Apigee.
Semua Endpoint API Apigee tidak diizinkan Jika diterapkan firewall, endpoint API Apigee mungkin belum diizinkan.
GKE Akses Google Pribadi tidak diaktifkan Jika deployment berada di GKE, Akses Google Pribadi mungkin belum diaktifkan di subnet.
Semua Kegagalan jaringan yang tidak diketahui Masalah ini dapat terjadi jika ada kegagalan yang tidak diketahui di jaringan cluster saat terhubung ke internet.

Penyebab: Rute jaringan tidak tersedia untuk 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. Tanyakan kepada tim infrastruktur dan jaringan Anda untuk mengetahui apakah jaringan cluster menggunakan server proxy maju untuk terhubung ke internet.

Resolusi

  1. Hubungi administrator jaringan dan tambahkan rute jaringan ke internet jika memungkinkan.
  2. Jika ada server proxy maju yang digunakan untuk berkomunikasi antara jaringan cluster dan internet, konfigurasi setelan server proxy maju di Apigee menggunakan file overrides.yaml dan terapkan perubahan tersebut pada bidang runtime.
    apigeectl apply --settings virtualhosts -f overrides/overrides.yaml

Penyebab: Endpoint API Apigee tidak diizinkan

Diagnosis

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

Resolusi

Jika daftar endpoint API Apigee di atas tidak diizinkan, hubungi administrator jaringan dan lengkapi 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 untuk mengizinkan akses komponen bidang runtime Apigee ke Google API secara internal.
  2. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka VPC networks

  3. Klik nama jaringan.
  4. Pada 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 jaringan VPC.

    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 diatasi.

Penyebab: Kegagalan jaringan tidak diketahui

Diagnosis

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

Resolusi

Bekerja samalah dengan administrator jaringan Anda dan selesaikan masalah pada jaringan cluster. Setelah masalah jaringan diperbaiki, masalah ini akan diselesaikan.

Harus mengumpulkan informasi diagnostik

Jika masalah terus berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Google Cloud Customer Care:

  1. ID Project Google Cloud.
  2. Nama organisasi campuran Apigee.
  3. Output dari perintah berikut dieksekusi 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.
  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:

    Membuat dump info cluster Kubernetes:

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

    File dump info cluster Kubernetes Zip:

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