Memecahkan masalah GKE Ingress


Halaman ini menunjukkan cara menyelesaikan masalah terkait Ingress di Google Kubernetes Engine (GKE).

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.

Anotasi untuk class Ingress salah

Gejala

Saat membuat Ingress, Anda mungkin melihat error berikut:

Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.

Kemungkinan penyebab

Saat membuat Ingress, Anda mungkin telah salah mengonfigurasi class Ingress dalam manifes.

Resolusi

Untuk menentukan class Ingress, Anda harus menggunakan anotasi kubernetes.io/ingress.class. Anda tidak dapat menentukan Ingress GKE menggunakan spec.ingressClassName.

  • Untuk men-deploy Load Balancer Aplikasi internal, gunakan anotasi kubernetes.io/ingress.class: gce-internal.
  • Untuk men-deploy Load Balancer Aplikasi eksternal, gunakan anotasi kubernetes.io/ingress.class: gce.

Anotasi salah untuk alamat IP statis

Gejala

Saat mengonfigurasi Ingress eksternal untuk menggunakan alamat IP statis, Anda mungkin melihat error berikut:

Error syncing to GCP: error running load balancer syncing routine: loadbalancer <Name of load balancer> does not exist: the given static IP name <Static IP> doesn't translate to an existing static IP.

Kemungkinan penyebab

  • Anda tidak membuat alamat IP eksternal statis sebelum men-deploy Ingress.
  • Anda tidak menggunakan anotasi yang benar untuk jenis Load Balancer.

Resolusi

Jika Anda mengonfigurasi Ingress eksternal:

Jika Anda mengonfigurasi Ingress internal:

  • Reservasi alamat IP internal statis regional sebelum men-deploy Ingress.
  • Gunakan anotasi kubernetes.io/ingress.regional-static-ip-name pada resource Ingress Anda.

Alamat IP statis sudah digunakan

Gejala

Anda mungkin melihat error berikut saat menentukan alamat IP statis untuk menyediakan resource Ingress internal atau eksternal:

Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <LB name> does not exist:
googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP ''<IP address>'' is already being used by another resource.

Kemungkinan penyebab

Alamat IP statis sudah digunakan oleh resource lain.

Error saat menonaktifkan HTTP dan menggunakan sertifikat yang dikelola Google

Gejala

Jika Anda mengonfigurasi sertifikat SSL yang dikelola Google dan menonaktifkan traffic HTTP di Ingress, Anda akan melihat error berikut:

Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <Load Balancer name> does not exist:
googleapi: Error 404: The resource ''projects/<Project>/global/sslPolicies/<Policy name>' was not found, notFound

Kemungkinan penyebab

Anda tidak dapat menggunakan anotasi berikut secara bersamaan saat mengonfigurasi Ingress:

  • networking.gke.io/managed-certificates (untuk mengaitkan sertifikat yang dikelola Google ke Ingress)
  • kubernetes.io/ingress.allow-http: false (untuk menonaktifkan traffic HTTP)

Resolusi

Nonaktifkan traffic HTTP hanya setelah Load Balancer Aplikasi eksternal diprogram sepenuhnya. Anda dapat memperbarui Ingress dan menambahkan anotasi kubernetes.io/ingress.allow-http: false ke manifes.

Subnet khusus proxy tidak ada untuk Ingress internal

Gejala

Saat men-deploy Ingress untuk Load Balancer Aplikasi internal, Anda mungkin melihat error berikut:

Error syncing to GCP: error running load balancer syncing routine:
loadbalancer <LB name> does not exist: googleapi: Error 400: Invalid value for field 'resource.target': 'https://www.googleapis.com/compute/v1/projects/<Project ID>/regions/<Region>/targetHttpsProxies/<Target proxy>'.
An active proxy-only subnetwork is required in the same region and VPC as
the forwarding rule.

Kemungkinan penyebab

Anda tidak membuat subnet khusus proxy sebelum membuat resource Ingress. Subnet khusus proxy diperlukan untuk Load Balancer Aplikasi internal.

Resolusi

Buat subnet khusus proxy sebelum men-deploy Ingress internal.

Kunci sertifikat SSL terlalu besar

Gejala

Jika ukuran kunci sertifikat SSL load balancer Anda terlalu besar, Anda mungkin melihat error berikut:

Error syncing to GCP: error running load balancer syncing routine: loadbalancer gky76k70-load-test-trillian-api-ingress-fliismmb does not exist: Cert creation failures - k8s2-cr-gky76k70-znz6o1pfu3tfrguy-f9be3a4abbe573f7 Error:googleapi: Error 400: The SSL key is too large., sslCertificateKeyTooLarge

Kemungkinan penyebab

Google Cloud memiliki batas 2.048 bit untuk kunci sertifikat SSL.

Resolusi

Kurangi ukuran kunci sertifikat SSL menjadi 2.048 bit atau kurang.

Terjadi error saat membuat Ingress di Tingkat Standar

Gejala

Jika Anda men-deploy Ingress dalam project dengan tingkat jaringan default project ditetapkan ke Standard, pesan error berikut akan muncul:

Error syncing to GCP: error running load balancer syncing routine: load balancer <LB Name> does not exist: googleapi: Error 400: STANDARD network tier (the project''s default network tier) is not supported: STANDARD network tier is not supported for global forwarding rule., badRequest

Resolusi

Konfigurasikan tingkat jaringan default project ke Premium.