View a markdown version of this page

Pemecahan masalah gateway Node Hibrid Amazon EKS - Amazon EKS

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

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, lihatOperasi gateway Amazon EKS Hybrid Nodes.

Pod pada node hybrid tidak dapat dijangkau dari VPC

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.

  2. 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, lihatMasalah Pemilu Pemimpin.

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

  4. 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 yatrue, nonaktifkan. Lihat Memulai dengan EKS Hybrid Nodes gateway.

Panggilan Webhook ke node hybrid gagal

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 diPod pada node hybrid tidak dapat dijangkau dari VPC.

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

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.

  2. 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
  3. 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

Pod gateway berada diCrashLoopBackOff,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
  2. Periksa variabel lingkungan yang diperlukan. Gateway membutuhkanNODE_IP,VPC_CIDR, danPOD_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_IPdiatur secara otomatis dari status.hostIP dalam spesifikasi pod. Jika kosong, pod mungkin belum dijadwalkan pada node.

    • VPC_CIDRdan POD_CIDRS berasal dari nilai-nilai Helm. Pastikan mereka diatur dengan benar.

  3. 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/

  4. 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 adaPending, 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

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.holderIdentityBidang menunjukkan pemimpin saat ini. Ini spec.renewTime menunjukkan kapan sewa terakhir diperpanjang. Jika renewTime basi, pemimpin mungkin kehilangan konektivitas ke server API.

  2. 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 takancreate,, update dan kata kerja untuk leases sumber daya dalam grup coordination.k8s.io API.

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

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

Pesan kesalahan umum

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 disecurityContext.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 afieldRef. 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_IDSNilai 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.

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.