

 **Bantu meningkatkan halaman ini ** 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub ** tautan ** Edit halaman ini di yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemecahan masalah gateway Node Hibrid Amazon EKS
<a name="hybrid-nodes-gateway-troubleshooting"></a>

Halaman ini memberikan panduan untuk mendiagnosis dan menyelesaikan masalah umum dengan gateway Amazon EKS Hybrid Nodes. Setiap bagian menjelaskan gejala, kemungkinan penyebab, langkah diagnostik, dan resolusi. Untuk detail operasional, lihat[Operasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md).

## Pod pada node hybrid tidak dapat dijangkau dari VPC
<a name="hybrid-nodes-gateway-ts-unreachable"></a>

Pod yang berjalan pada node hybrid tidak dapat dijangkau dari sumber daya di VPC, seperti instans EC2, penyeimbang beban, atau bidang kontrol Kubernetes.

 **Kemungkinan penyebab: ** 
+ Entri tabel rute VPC hilang atau menunjuk ke ENI yang salah.
+ Pod pemimpin gateway tidak berjalan atau belum menyelesaikan penyiapan.
+ Cilium VTEP tidak diaktifkan atau dikonfigurasi pada node hybrid.
+ Source/destination cek diaktifkan pada instance gateway EC2.

 **Langkah-langkah diagnostik: ** 

1.  **Periksa entri tabel rute VPC. ** Verifikasi bahwa rute untuk CIDR pod hybrid Anda ada dan arahkan ke ENI utama instans gateway aktif:

   ```
   aws ec2 describe-route-tables \
     --route-table-ids {{ROUTE_TABLE_ID}} \
     --query "RouteTables[].Routes[?DestinationCidrBlock=='POD_CIDR']"
   ```

   Jika rute hilang, periksa log gateway untuk kesalahan tabel rute. Jika rute mengarah ke ENI yang salah, failover mungkin tidak berhasil diselesaikan.

1.  **Periksa status pod gateway dan pemilihan pemimpin. ** Konfirmasikan bahwa dua pod gateway sedang berjalan dan satu memegang sewa pemimpin:

   ```
   kubectl get pods -n eks-hybrid-nodes-gateway
   kubectl get lease -n eks-hybrid-nodes-gateway
   ```

   Jika tidak ada pod yang memegang sewa, lihat[Masalah Pemilu Pemimpin](#hybrid-nodes-gateway-ts-leader).

1.  **Periksa konfigurasi Cilium VTEP pada node hibrida. ** Verifikasi bahwa `CiliumVTEPConfig` sumber daya ada dan berisi IP node pemimpin:

   ```
   kubectl get ciliumvtepconfig hybrid-gateway -o yaml
   ```

   Se `spec.endpoints[0].tunnelEndpoint` harusnya cocok dengan alamat IP node gateway pemimpin. Jika sumber daya hilang atau memiliki IP basi, gateway mungkin belum menyelesaikan penyiapan pemimpin.

1.  **Periksa source/destination cek. ** Verifikasi bahwa source/destination pemeriksaan dinonaktifkan pada instans EC2 gateway:

   ```
   aws ec2 describe-instance-attribute \
     --instance-id {{GATEWAY_INSTANCE_ID}} \
     --attribute sourceDestCheck
   ```

   Jika `sourceDestCheck` ya`true`, nonaktifkan. Lihat [Memulai dengan EKS Hybrid Nodes gateway](hybrid-nodes-gateway-getting-started.md).

## Panggilan Webhook ke node hybrid gagal
<a name="hybrid-nodes-gateway-ts-webhooks"></a>

Server API Kubernetes tidak dapat mencapai titik akhir webhook yang berjalan pada node hybrid. Penerimaan Webhook meminta waktu habis atau mengembalikan kesalahan koneksi.

 **Kemungkinan penyebab: ** 
+ Gateway tidak merutekan lalu lintas dari bidang kontrol ke pod hybrid.
+ Sumber `CiliumVTEPConfig` daya hilang atau memiliki IP titik akhir basi.

 **Langkah-langkah diagnostik: ** 

1.  **Verifikasi bidang kontrol dapat mencapai IP node gateway. ** Pesawat kontrol mengirimkan lalu lintas ke tabel rute VPC, yang meneruskannya ke ENI gateway. Konfirmasikan entri tabel rute VPC sudah benar menggunakan langkah-langkah di[Pod pada node hybrid tidak dapat dijangkau dari VPC](#hybrid-nodes-gateway-ts-unreachable).

1.  **Periksa sumber daya ciliumVTEPConfig. ** Verifikasi sumber daya ada dan `tunnelEndpoint` cocok dengan IP node pemimpin saat ini:

   ```
   kubectl get ciliumvtepconfig hybrid-gateway -o yaml
   ```

   Jika titik akhir terowongan basi (menunjuk ke pemimpin sebelumnya), gateway mungkin belum menyelesaikan urutan pengaturan pemimpin. Periksa log gateway untuk kesalahan selama `CiliumVTEPConfig` upsert.

## Pembaruan tabel rute VPC gagal
<a name="hybrid-nodes-gateway-ts-routes"></a>

Log gateway menunjukkan kesalahan yang terkait dengan operasi tabel rute VPC, dan rute untuk CIDR pod hybrid tidak dibuat atau diperbarui.

 **Kemungkinan penyebab: ** 
+ Peran IAM gateway tidak memiliki izin EC2 yang diperlukan.
+ ID tabel rute dalam konfigurasi salah atau tabel rute tidak ada.
+ Gateway tidak dapat mencapai titik akhir API EC2.

 **Langkah-langkah diagnostik: ** 

1.  **Verifikasi izin IAM. ** Gateway memerlukan tindakan IAM berikut:
   +  `ec2:DescribeRouteTables` 
   +  `ec2:CreateRoute` 
   +  `ec2:ReplaceRoute` 
   +  `ec2:DescribeInstances` 

     Periksa peran IAM yang dilampirkan ke profil instance node gateway atau konfigurasi identitas pod.

1.  **Periksa ID tabel rute dalam konfigurasi. ** Verifikasi bahwa variabel `ROUTE_TABLE_IDS` lingkungan berisi ID tabel rute yang valid dalam penerapan gateway:

   ```
   kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].env}' | jq .
   ```

   Konfirmasikan ID tabel rute ada di VPC Anda:

   ```
   aws ec2 describe-route-tables --route-table-ids {{ROUTE_TABLE_ID}}
   ```

1.  **Periksa log gateway untuk kesalahan tabel rute. ** Cari pesan kesalahan yang terkait dengan operasi tabel rute:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}} | grep -i "route table"
   ```

   Pesan kesalahan umum meliputi:
   +  `Failed to verify route table access`- Gateway tidak dapat menggambarkan tabel rute. Periksa izin IAM dan ID tabel rute.
   +  `Failed to update route tables`- Gateway tidak dapat membuat atau mengganti rute. Periksa izin IAM.
   +  `failed to access route table`— ID tabel rute mungkin salah atau peran IAM tidak `ec2:DescribeRouteTables` ada.

## Pod gateway gagal memulai atau tidak sehat
<a name="hybrid-nodes-gateway-ts-pods"></a>

Pod gateway berada di`CrashLoopBackOff`,`Error`, atau `Pending` status, atau titik akhir kesehatan mengembalikan kesalahan.

 **Kemungkinan penyebab: ** 
+ Variabel lingkungan yang diperlukan (`VPC_CIDR`,`POD_CIDRS`,`ROUTE_TABLE_IDS`) tidak disetel.
+ Penerusan IP tidak diaktifkan pada node gateway.
+ Label simpul atau batasan anti-afinitas mencegah penjadwalan.

 **Langkah-langkah diagnostik: ** 

1.  **Periksa log pod. ** Lihat log untuk pod yang gagal untuk mengidentifikasi kesalahan:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}}
   ```

1.  **Periksa variabel lingkungan yang diperlukan. ** Gateway membutuhkan`NODE_IP`,`VPC_CIDR`, dan`POD_CIDRS`. Jika ada yang hilang, gateway segera keluar. Verifikasi spesifikasi pod:

   ```
   kubectl get pod -n eks-hybrid-nodes-gateway {{LEADER_POD}} -o jsonpath='{.spec.containers[0].env}' | jq .
   ```
   +  `NODE_IP`diatur secara otomatis dari `status.hostIP` dalam spesifikasi pod. Jika kosong, pod mungkin belum dijadwalkan pada node.
   +  `VPC_CIDR`dan `POD_CIDRS` berasal dari nilai-nilai Helm. Pastikan mereka diatur dengan benar.

1.  **Periksa penerusan IP. ** Gateway memeriksa bahwa penerusan IP diaktifkan saat startup dan keluar jika tidak. Cari pesan kesalahan `IP forwarding is not enabled` di log pod. Aktifkan penerusan IP pada node:

   ```
   # Check current setting
   cat /proc/sys/net/ipv4/ip_forward
   
   # Enable if not set
   sudo sysctl -w net.ipv4.ip_forward=1
   ```

   Untuk pengaturan persisten, konfigurasikan penerusan IP melalui kubelet atau tambahkan `net.ipv4.ip_forward=1` ke. `/etc/sysctl.d/`

1.  **Periksa label simpul dan batasan penjadwalan. ** Pod gateway memerlukan node dengan `hybrid-gateway-node=true` label. Anti-afinitas pod memastikan setiap pod berjalan pada node terpisah. Jika pod ada`Pending`, periksa masalah penjadwalan:

   ```
   kubectl describe pod -n eks-hybrid-nodes-gateway {{LEADER_POD}}
   ```

   Cari peristiwa yang menunjukkan node tidak mencukupi, label yang hilang, atau konflik anti-afinitas.

## Masalah Pemilu Pemimpin
<a name="hybrid-nodes-gateway-ts-leader"></a>

Pod gateway berjalan tetapi tidak ada pod yang memperoleh sewa pemimpin, atau transisi kepemimpinan sering terjadi.

 **Kemungkinan penyebab: ** 
+ Izin RBAC untuk objek Sewa tidak ada.
+ Konektivitas jaringan antara pod gateway dan server API Kubernetes tidak dapat diandalkan.
+ Parameter pemilihan pemimpin salah konfigurasi.

 **Langkah-langkah diagnostik: ** 

1.  **Periksa objek Sewa. ** Verifikasi bahwa Sewa ada dan periksa pemegangnya saat ini:

   ```
   kubectl get lease -n eks-hybrid-nodes-gateway hybrid-gateway-leader -o yaml
   ```

   `spec.holderIdentity`Bidang menunjukkan pemimpin saat ini. Ini `spec.renewTime` menunjukkan kapan sewa terakhir diperpanjang. Jika `renewTime` basi, pemimpin mungkin kehilangan konektivitas ke server API.

1.  **Periksa izin RBAC. ** Akun layanan gateway memerlukan izin untuk mendapatkan, membuat, dan memperbarui objek Lease di namespace gateway. Verifikasi Peran dan RoleBinding:

   ```
   kubectl get role -n eks-hybrid-nodes-gateway
   kubectl get rolebinding -n eks-hybrid-nodes-gateway
   ```

   Peran harus menyer `get` takan`create`,, `update` dan kata kerja untuk `leases` sumber daya dalam grup `coordination.k8s.io` API.

1.  **Periksa log pod untuk kesalahan sewa. ** Cari kesalahan pemilihan pemimpin di log pod:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}} | grep -i "leader\|lease"
   ```

   Masalah umum meliputi:
   +  `Failed to acquire lease`- Pod tidak dapat membuat atau memperbarui objek Lease. Periksa izin RBAC.
   + S `Leadership ended` ering diikuti oleh `Leader setup complete` pesan — Pemimpin kehilangan dan memperoleh kembali sewa. Ini mungkin menunjukkan ketidakstabilan jaringan antara pod dan server API. Pertimbangkan untuk meningkatkan`--leader-election-lease-duration`.

1.  **Periksa parameter pemilihan pemimpin. ** Verifikasi nilai yang dikonfigurasi:

   ```
   kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].args}'
   ```

   Pastikan `--leader-election-renew-deadline` kurang dari`--leader-election-lease-duration`. Jika batas waktu perpanjangan melebihi durasi sewa, pemimpin kehilangan sewa sebelum dapat memperpanjang. Untuk informasi selengkapnya, lihat [Penyetelan pemilihan pemimpin](hybrid-nodes-gateway-configuration.md#hybrid-nodes-gateway-leader-tuning).

## Pesan kesalahan umum
<a name="hybrid-nodes-gateway-ts-errors"></a>

Tabel berikut mencantumkan pesan kesalahan yang mungkin Anda lihat di log pod gateway dan resolusinya.


| Pesan kesalahan | Penyebab | Resolusi | 
| --- | --- | --- | 
|  `IP forwarding is not enabled`  | Parameter kernel `net.ipv4.ip_forward` tidak disetel ke `1` pada node gateway. | Aktifkan penerusan IP melalui konfigurasi kubelet atau dengan menjalankan. `sysctl -w net.ipv4.ip_forward=1` | 
|  `Failed to setup VXLAN`  | Gateway tidak dapat membuat antarmuka jaringan VXLAN. Ini biasanya terjadi ketika pod tidak memiliki `NET_ADMIN` kemampuan. | Verifikasi spesifikasi Deployment disertakan `NET_ADMIN` di`securityContext.capabilities.add`. Periksa apakah bagan Helm digunakan dengan benar. | 
|  `Failed to verify route table access`  | Gateway tidak dapat menjelaskan satu atau lebih tabel rute VPC saat startup. | Verifikasi peran IAM memiliki `ec2:DescribeRouteTables` izin dan ID tabel rute dalam konfigurasi sudah benar. | 
|  `Failed to update route tables`  | Gateway tidak dapat membuat atau mengganti rute dalam tabel rute VPC. | Verifikasi peran IAM memiliki `ec2:CreateRoute` dan `ec2:ReplaceRoute` izin. | 
|  `Failed to create route table manager`  | Gateway tidak dapat menginisialisasi klien AWS EC2 atau mengambil ENI utama instans. | Verifikasi peran IAM memiliki `ec2:DescribeInstances` izin dan layanan metadata instans (IMDS) dapat diakses. | 
|  `NODE_IP is required`  | Vari `NODE_IP` abel lingkungan atau `--node-ip` flag tidak disetel. | Verifikasi set spesifikasi pod `NODE_IP` `status.hostIP` menggunakan a`fieldRef`. Periksa apakah bagan Helm digunakan dengan benar. | 
|  `Invalid NODE_IP`  | Nilai yang disediakan `NODE_IP` bukan alamat IP yang valid. | Periksa nilai variabel `NODE_IP` lingkungan dalam spesifikasi pod. | 
|  `pod-cidrs and vpc-cidr are required`  | Vari `POD_CIDRS` abel `VPC_CIDR` lingkungan atau kosong. | Atur nilai `podCIDRs` dan `vpcCIDR` Helm selama instalasi. | 
|  `No valid route table IDs provided`  | `ROUTE_TABLE_IDS`Nilai ditetapkan tetapi tidak berisi ID tabel rute yang valid setelah penguraian. | Periksa nilai `routeTableIDs` Helm untuk kesalahan pemformatan. ID tabel rute harus dipisahkan koma (misalnya,`rtb-abc123,rtb-def456`). | 
|  `Failed to auto-detect AWS region`  | Gateway tidak dapat mengambil Wil AWS ayah dari metadata instans EC2. | Verifikasi layanan metadata instance (IMDS) dapat diakses. Atau, atur `--aws-region` flag atau variabel `AWS_REGION` lingkungan secara eksplisit. | 
|  `Failed to auto-detect AWS instance ID`  | Gateway tidak dapat mengambil ID instans dari metadata instans EC2. | Verifikasi layanan metadata instance (IMDS) dapat diakses. Atau, atur `--aws-instance-id` flag atau variabel `AWS_INSTANCE_ID` lingkungan secara eksplisit. | 
|  `CiliumNode has no internal IP`  | Objek node hybrid tidak memiliki alamat IP internal dalam spesifikasinya. `CiliumNode` | Verifikasi simpul hibrida terdaftar dengan benar dan agen Cilium sedang berjalan. Periksa `CiliumNode` sumber daya untuk node. | 
|  `CiliumNode <name> has no pod CIDRs allocated`  | Objek node hybrid tidak memiliki pod CIDR yang dialokasikan oleh Cilium IPAM. `CiliumNode` | Verifikasi Cilium IPAM dikonfigurasi dengan benar pada node hybrid. Periksa `CiliumNode` sumber daya untuk status IPAM node. | 
|  `Failed to upsert CiliumVTEPConfig`  | Gateway tidak dapat membuat atau memperbarui sumber daya `CiliumVTEPConfig` khusus. | Verifikasi CRD diinstal di cluster dan akun layanan gateway memiliki izin untuk mengelola `CiliumVTEPConfig` sumber daya. | 
|  `Unable to create manager`  | Pengelola runtime controller gagal diinisialisasi. | Periksa log pod untuk konteks tambahan. Penyebab umum termasuk kubeconfig tidak valid atau ketidakmampuan untuk mencapai server API Kubernetes. | 
|  `Failed to add gateway setup`  | Runnable yang dipilih pemimpin tidak dapat didaftarkan dengan manajer pengontrol. | Ini biasanya kesalahan internal. Periksa log pod lengkap untuk konteks tambahan dan laporkan masalah di [ GitHub repositori](https://github.com/aws/eks-hybrid-nodes-gateway). | 
|  `Unable to create Node controller`  | Rekon CiliumNode siliasi tidak dapat didaftarkan dengan manajer pengontrol. | Periksa log pod untuk konteks tambahan. Verifikasi bahwa CiliumNode CRD diinstal di cluster. | 
|  `Problem running manager`  | Manajer pengontrol keluar secara tak terduga. | Periksa log pod untuk kesalahan yang mendasarinya. Penyebab umum termasuk hilangnya konektivitas ke server API Kubernetes atau konflik port pada metrik atau alamat pengikatan probe kesehatan. | 
|  `failed to access route table <id>`  | Gateway tidak dapat menjelaskan tabel rute VPC tertentu selama pemeriksaan verifikasi startup. | Verifikasi peran IAM memiliki `ec2:DescribeRouteTables` izin dan ID tabel rute sudah benar. Tabel rute harus ada di Wilayah yang sama dengan instance gateway. | 

## Topik terkait
<a name="hybrid-nodes-gateway-ts-related"></a>
+  [Gerbang Node Hibrida Amazon EKS](hybrid-nodes-gateway-overview.md)— Ikhtisar arsitektur gateway dan kasus penggunaan.
+  [Memulai dengan EKS Hybrid Nodes gateway](hybrid-nodes-gateway-getting-started.md)— Prasyarat dan instruksi instalasi.
+  [Referensi konfigurasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md)— Referensi lengkap untuk nilai Helm, flag CLI, dan variabel lingkungan.
+  [Operasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md)— Pemantauan, perilaku failover, dan panduan penskalaan.