View a markdown version of this page

Memecahkan masalah jalan keluar pesawat kontrol - Amazon EKS

Bantu tingkatkan 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 Edit halaman ini pada GitHub tautan 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.

Memecahkan masalah jalan keluar pesawat kontrol

Saat menggunakan mode jalan keluar bidang CUSTOMER_ROUTED kontrol, Anda bertanggung jawab atas konektivitas jaringan dari ENI bidang kontrol. Halaman ini mencakup masalah umum dan solusinya.

Mendeteksi webhook yang gagal

Ketika bidang kontrol tidak dapat mencapai server webhook atau penyedia OIDC, gejala biasanya muncul sebagai batas waktu webhook. Untuk mengonfirmasi, membuat atau memodifikasi sumber daya yang memicu webhook dan memeriksa kesalahan:

kubectl apply -f my-resource.yaml

Konektivitas atau kegagalan DNS biasanya mengembalikan kesalahan yang mirip dengan berikut ini:

Error from server (InternalError): error when creating "my-resource.yaml": Internal error occurred: failed calling webhook "my-webhook.example.com": failed to call webhook: Post "https://my-webhook.example.com/validate?timeout=10s": context deadline exceeded

Anda juga dapat memeriksa peristiwa terbaru untuk kesalahan webhook di seluruh cluster:

kubectl get events --all-namespaces --field-selector reason=FailedCreate

Tidak ada rute jalan keluar ke titik akhir yang diperlukan

Gejala:

  • Waktu masuk webhooks habis.

  • Penemuan penyedia OIDC gagal.

  • Pembuatan cluster atau pembaruan kios.

Penyebab:

Subnet antarmuka jaringan bidang kontrol tidak memiliki rute kerja ke titik akhir yang perlu dijangkau oleh bidang kontrol. Paling umum, tabel rute subnet tidak memiliki rute default ke perangkat jalan keluar. Atau, perangkat itu salah dikonfigurasi. Perangkat keluar biasanya merupakan gateway NAT. Namun, ini bisa berupa instance NAT, firewall atau alat proxy, atau gateway transit ke VPC jalan keluar terpusat.

Solusi:

  1. Identifikasi subnet yang digunakan cluster Anda untuk antarmuka jaringan bidang kontrol:

    aws eks describe-cluster --name my-cluster \ --query "cluster.resourcesVpcConfig.subnetIds"
  2. Untuk setiap subnet, periksa tabel rute terkait:

    aws ec2 describe-route-tables \ --filters "Name=association.subnet-id,Values=subnet-ExampleID1"
  3. Verifikasi ada rute untuk 0.0.0.0/0 (atau rute yang mencakup titik akhir) yang menunjuk ke perangkat jalan keluar Anda. Jika tidak ada, tambahkan rute. Contoh berikut menambahkan rute gateway NAT; ganti target jalan keluar Anda sendiri (misalnya, gateway transit atau antarmuka jaringan):

    aws ec2 create-route \ --route-table-id rtb-ExampleID \ --destination-cidr-block 0.0.0.0/0 \ --nat-gateway-id nat-ExampleID

NACL memblokir webhook atau mengontrol lalu lintas pesawat

Gejala:

  • Penerimaan webhook memanggil time out (error:failed calling webhook).

  • Kegagalan intermiten saat membuat atau memodifikasi resource Kubernetes yang menggunakan mutasi atau validasi webhook.

Penyebab:

ACL jaringan pada subnet ENI bidang kontrol memblokir lalu lintas keluar ke titik akhir webhook atau memblokir lalu lintas pengembalian port sementara masuk.

Solusi:

  1. Identifikasi NACL yang terkait dengan subnet bidang kontrol Anda:

    aws ec2 describe-network-acls \ --filters "Name=association.subnet-id,Values=subnet-ExampleID1"
  2. Pastikan aturan berikut ada:

    Arahan Protokol Rentang port Destination/Source Tindakan

    Ke luar

    TCP

    443

    0.0.0. 0/0 (atau webhook CIDR)

    Izinkan

    Ke luar

    TCP

    10250

    VPC CIDR

    Izinkan

    Ke dalam

    TCP

    1024—65535

    0.0.0. 0/0

    Izinkan (lalu lintas kembali sementara)

    catatan

    NACL tidak memiliki kewarganegaraan. Anda harus secara eksplisit mengizinkan lalu lintas kembali pada port sementara (1024—65535) dalam aturan masuk.

    Aturan-aturan ini mencakup dua jalur yang berbeda. Aturan port 443 adalah untuk lalu lintas keluar ke webhook dan titik akhir OIDC, yang meninggalkan VPC melalui perangkat keluar Anda. Aturan port 10250 adalah untuk kubelet API, yang tetap berada di dalam VPC Anda antara bidang kontrol dan node Anda. Perangkat jalan keluar yang hilang tidak memengaruhi port 10250, tetapi ACL jaringan restriktif dapat memblokirnya.

Grup keamanan mencegah akses

Gejala:

  • Panggilan Webhook gagal.

  • Control plane tidak dapat mencapai API kubelet pada node (port 10250).

  • kubectl exec,kubectl logs, atau kubectl port-forward gagal.

Penyebab:

Grup keamanan yang terpasang pada ENI pesawat kontrol (grup keamanan klaster) tidak mengizinkan lalu lintas keluar pada port yang diperlukan.

Solusi:

  1. Identifikasi grup keamanan klaster:

    aws eks describe-cluster --name my-cluster \ --query "cluster.resourcesVpcConfig.clusterSecurityGroupId"
  2. Verifikasi aturan keluar memungkinkan:

    Protokol Port Destinasi

    TCP

    443

    0.0.0. 0/0 (titik akhir webhook, penyedia OIDC)

    TCP

    10250

    Grup keamanan node atau VPC CIDR (kubelet API)

  3. Jika aturan keluar membatasi, tambahkan aturan untuk lalu lintas yang diperlukan:

    aws ec2 authorize-security-group-egress \ --group-id sg-ExampleClusterSG \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0
    catatan

    Jika Anda memiliki persyaratan jalan keluar yang ketat dan Anda mengetahui rentang IP webhook dan titik akhir OIDC Anda, Anda dapat mencakupkan aturan port 443 ke CIDR tertentu alih-alih. 0.0.0.0/0 Aturan port 10250 (kubelet API) adalah VPC-internal; cakupannya ke grup keamanan node Anda atau VPC CIDR daripada internet.

Opsi DHCP mengatur kegagalan penyegaran

Gejala:

  • Resolusi DNS gagal dari bidang kontrol.

  • Operasi cluster yang memerlukan pencarian DNS (penemuan OIDC, resolusi webhook) gagal.

  • Masalah muncul setelah opsi VPC DHCP diubah atau setelah pembaruan bidang kontrol.

Penyebab:

Set opsi VPC DHCP diubah. Atau, itu tidak termasuk AmazonProvidedDNS dalam server nama domainnya. Mungkin juga kekurangan resolver lain yang dapat menyelesaikan nama yang dibutuhkan pesawat kontrol. Pesawat kontrol secara otomatis mendeteksi perubahan set opsi DHCP dan menerapkan pengaturan DNS baru, biasanya dalam satu jam. Bidang kontrol dapat melakukan ini hanya jika peran IAM cluster memberikan izin baca Amazon EC2 yang diperlukan.

Solusi:

  1. Verifikasi opsi DHCP yang ditetapkan untuk VPC Anda:

    aws ec2 describe-vpcs --vpc-ids vpc-ExampleID \ --query "Vpcs[0].DhcpOptionsId" \ --region region-code
    aws ec2 describe-dhcp-options --dhcp-options-ids dopt-ExampleID --region region-code
  2. Konfirmasikan yang domain-name-servers menyertakan AmazonProvidedDNS (penyelesai Amazon-provided DNS, yang merupakan basis CIDR VPC IPv4 Anda ditambah dua), atau resolver lain yang dapat menyelesaikan nama yang dibutuhkan bidang kontrol.

  3. Konfirmasikan ec2:DescribeVpcs hibah peran IAM cluster dan. ec2:DescribeDhcpOptions Tanpa izin ini, bidang kontrol tidak dapat membaca opsi DHCP yang diperbarui dan tidak dapat menyegarkan pengaturan DNS-nya. Untuk informasi selengkapnya, lihat peran IAM klaster Amazon EKS.

  4. Setelah opsi DHCP berubah, biarkan hingga satu jam agar bidang kontrol mendeteksi dan menerapkan pengaturan baru secara otomatis. Tidak diperlukan pembaruan cluster atau penggantian instance. Jika resolusi DNS masih gagal setelah satu jam dan izin di atas tersedia, hubungi Support AWS .

Masalah perutean IPv6

Gejala:

  • Kluster IPv6 tidak dapat mencapai OIDC eksternal atau titik akhir webhook.

  • Registrasi node bekerja melalui IPv4 tetapi layanan IPv6 gagal.

Penyebab:

Tabel rute subnet tidak memiliki ::/0 rute ke gateway internet khusus egres, atau keamanan groups/NACLs tidak mengizinkan lalu lintas IPv6.

Solusi:

  1. Verifikasi ada gateway internet khusus egres dan dilampirkan ke VPC:

    aws ec2 describe-egress-only-internet-gateways \ --filters "Name=attachment.vpc-id,Values=vpc-ExampleID"
  2. Periksa apakah tabel rute untuk subnet bidang kontrol memiliki ::/0 rute:

    aws ec2 describe-route-tables \ --filters "Name=association.subnet-id,Values=subnet-ExampleID1" \ --query "RouteTables[0].Routes[?DestinationIpv6CidrBlock=='::/0']"
  3. Jika tidak ada, tambahkan rute:

    aws ec2 create-route \ --route-table-id rtb-ExampleID \ --destination-ipv6-cidr-block ::/0 \ --egress-only-internet-gateway-id eigw-ExampleID
  4. Pastikan NACL dan grup keamanan memungkinkan IPv6 keluar pada port 443 dan port sementara masuk.

Penyedia OIDC tidak terjangkau

Gejala:

  • IAM roles for service accounts(IRSA) gagal — pod tidak dapat mengambil peran.

  • Peristiwa cluster menunjukkan kesalahan penemuan OIDC.

Penyebab:

Bidang kontrol tidak dapat mencapai titik akhir penyedia OIDC (misalnya,oidc.eks.region-code.amazonaws.com) karena jalan keluar diblokir.

Solusi:

  1. Verifikasi bahwa jalur keluar dan tabel rute memungkinkan lalu lintas HTTPS keluar. Untuk langkah pemecahan masalah saat rute keluar hilang atau salah konfigurasi, lihat. Tidak ada rute jalan keluar ke titik akhir yang diperlukan

  2. Verifikasi bahwa grup keamanan klaster mengizinkan TCP 443 keluar 0.0.0.0/0 (lihat). Grup keamanan mencegah akses

📝 Edit halaman ini di GitHub