View a markdown version of this page

Gunakan Anotasi Layanan untuk mengonfigurasi Penyeimbang Beban Jaringan - 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.

Gunakan Anotasi Layanan untuk mengonfigurasi Penyeimbang Beban Jaringan

Pelajari cara mengonfigurasi Network Load Balancers (NLB) di Amazon EKS menggunakan anotasi layanan Kubernetes. Topik ini menjelaskan anotasi yang didukung oleh Mode Otomatis EKS untuk menyesuaikan perilaku NLB, termasuk aksesibilitas internet, pemeriksaan kesehatan, SSL/TLS penghentian, dan mode penargetan IP.

Saat Anda membuat layanan jenis Kubernetes LoadBalancer dalam Mode Otomatis EKS, EKS secara otomatis menyediakan dan mengonfigurasi AWS Network Load Balancer berdasarkan anotasi yang Anda tentukan. Pendekatan deklaratif ini memungkinkan Anda mengelola konfigurasi penyeimbang beban secara langsung melalui manifes Kubernetes Anda, mempertahankan infrastruktur sebagai praktik kode.

EKS Auto Mode menangani penyediaan Network Load Balancer secara default untuk semua jenis layanan LoadBalancer - tidak diperlukan instalasi atau konfigurasi pengontrol tambahan. loadBalancerClass: eks.amazonaws.com/nlbSpesifikasi secara otomatis ditetapkan sebagai default cluster, merampingkan proses penerapan sambil mempertahankan kompatibilitas dengan beban kerja Kubernetes yang ada.

catatan

Mode Otomatis EKS memerlukan tag subnet untuk mengidentifikasi subnet publik dan pribadi.

Jika Anda membuat cluster Anda denganeksctl, Anda sudah memiliki tag ini.

Pelajari cara Tag subnet untuk Mode Otomatis EKS.

Layanan Sampel

Untuk informasi selengkapnya tentang Service sumber daya Kubernetes, lihat Dokumentasi Kubernetes.

Tinjau sumber Service daya sampel di bawah ini:

apiVersion: v1 kind: Service metadata: name: echoserver annotations: # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB) service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing spec: selector: app: echoserver ports: - port: 80 targetPort: 8080 protocol: TCP type: LoadBalancer # Specify the new load balancer class for NLB as part of EKS Auto Mode feature # For clusters with Auto Mode enabled, this field can be omitted as it's the default loadBalancerClass: eks.amazonaws.com/nlb

Anotasi yang umum digunakan

Tabel berikut mencantumkan anotasi yang umum digunakan yang didukung oleh Mode Otomatis EKS. Perhatikan bahwa Mode Otomatis EKS mungkin tidak mendukung semua anotasi.

Tip

Semua anotasi berikut harus diawali dengan service.beta.kubernetes.io/

Bidang Deskripsi Contoh

aws-load-balancer-type

Menentukan jenis penyeimbang beban. Gunakan external untuk penerapan baru.

external

aws-load-balancer-nlb-target-type

Menentukan apakah akan merutekan lalu lintas ke instance node atau langsung ke IP pod. Gunakan instance untuk penerapan standar atau ip untuk routing pod langsung.

instance

aws-load-balancer-scheme

Mengontrol apakah penyeimbang beban bersifat internal atau menghadap ke internet.

internet-facing

aws-load-balancer-healthcheck-protocol

Protokol pemeriksaan kesehatan untuk kelompok sasaran. Opsi umum adalah TCP (default) atauHTTP.

HTTP

aws-load-balancer-healthcheck-path

Jalur HTTP untuk pemeriksaan kesehatan saat menggunakan HTTP/HTTPS protokol.

/healthz

aws-load-balancer-healthcheck-port

Pelabuhan digunakan untuk pemeriksaan kesehatan. Bisa berupa nomor port tertentu atautraffic-port.

traffic-port

aws-load-balancer-subnets

Menentukan subnet mana yang akan dibuat penyeimbang beban. Dapat menggunakan subnet ID atau nama.

subnet-xxxx, subnet-yyyy

aws-load-balancer-ssl-cert

ARN dari sertifikat SSL dari Manajer AWS Sertifikat untuk HTTPS/TLS.

arn:aws: acm:region:account:certificate/cert-id

aws-load-balancer-ssl-ports

Menentukan port mana yang harus digunakan SSL/TLS.

443, 8443

load-balancer-source-ranges

Rentang CIDR diizinkan untuk mengakses penyeimbang beban.

10.0.0.0/24, 192.168.1.0/24

aws-load-balancer-additional-resource-tags

AWS Tag tambahan untuk diterapkan pada penyeimbang beban dan sumber daya terkait.

Environment=prod,Team=platform

aws-load-balancer-ip-address-type

Menentukan apakah load balancer menggunakan IPv4 atau dual-stack (IPv4 + IPv6).

ipv4 atau dualstack

aws-load-balancer-listener-attributes.${Protocol}-${Port}

Menentukan atribut pendengar untuk diterapkan ke pendengar.

tcp.idle_timeout.seconds=350

Pertimbangan-pertimbangan

  • Anda harus memperbarui Peran IAM Cluster untuk mengaktifkan propagasi tag dari Kubernetes ke AWS sumber daya Load Balancer. Untuk informasi selengkapnya, lihat Khusus AWS tag untuk EKS Sumber daya otomatis.

  • Untuk informasi tentang mengaitkan sumber daya dengan Mode Otomatis EKS atau Load Balancer Controller yang dikelola sendiri AWS , lihat. Referensi migrasi

  • Untuk informasi tentang memperbaiki masalah dengan penyeimbang beban, lihatMemecahkan Masalah Mode Otomatis EKS.

  • Untuk pertimbangan lebih lanjut tentang menggunakan kemampuan penyeimbangan beban Mode Otomatis EKS, lihatPenyeimbangan beban.

Saat bermigrasi ke Mode Otomatis EKS untuk penyeimbangan beban, beberapa perubahan dalam anotasi layanan dan konfigurasi sumber daya diperlukan. Tabel berikut menguraikan perbedaan utama antara implementasi sebelumnya dan baru, termasuk opsi yang tidak didukung dan alternatif yang direkomendasikan.

Anotasi layanan

Sebelumnya Baru Deskripsi

service.beta.kubernetes.io/load-balancer-source-ranges

Tidak didukung

Gunakan spec.loadBalancerSourceRanges pada Layanan

service.beta.kubernetes.io/aws-load-balancer-type

Tidak didukung

Gunakan spec.loadBalancerClass pada Layanan

service.beta.kubernetes.io/aws-load-balancer-internal

Tidak didukung

Gunakan service.beta.kubernetes.io/aws-load-balancer-scheme

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol

Tidak didukung

Gunakan sebagai service.beta.kubernetes.io/aws-load-balancer-target-group-attributes gantinya

Berbagai atribut penyeimbang beban

Tidak didukung

Gunakan service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-enabled

Tidak didukung

Gunakan sebagai service.beta.kubernetes.io/aws-load-balancer-attributes gantinya

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name

Tidak didukung

Gunakan sebagai service.beta.kubernetes.io/aws-load-balancer-attributes gantinya

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix

Tidak didukung

Gunakan sebagai service.beta.kubernetes.io/aws-load-balancer-attributes gantinya

service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled

Tidak didukung

Gunakan sebagai service.beta.kubernetes.io/aws-load-balancer-attributes gantinya

Untuk bermigrasi dari anotasi atribut load balancer yang tidak digunakan lagi, gabungkan pengaturan ini ke dalam anotasi. service.beta.kubernetes.io/aws-load-balancer-attributes Anotasi ini menerima daftar pasangan kunci-nilai yang dipisahkan koma untuk berbagai atribut penyeimbang beban. Misalnya, untuk menentukan logging akses, dan penyeimbangan beban lintas zona, gunakan format berikut:

service.beta.kubernetes.io/aws-load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=my-bucket,access_logs.s3.prefix=my-prefix,load_balancing.cross_zone.enabled=true

Format konsolidasi ini menyediakan cara yang lebih konsisten dan fleksibel untuk mengonfigurasi atribut penyeimbang beban sekaligus mengurangi jumlah anotasi individual yang diperlukan. Tinjau konfigurasi Layanan yang ada dan perbarui untuk menggunakan format gabungan ini.

TargetGroupBinding

Sebelumnya Baru Deskripsi

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

Perubahan versi API

spec.targetTypeopsional

spec.targetTypediperlukan

Spesifikasi tipe target eksplisit

spec.networking.ingress.from

Tidak didukung

Tidak lagi mendukung NLB tanpa grup keamanan

Catatan: Untuk menggunakan TargetGroupBinding fitur kustom, Anda harus menandai grup target dengan eks:eks-cluster-name tag dengan nama cluster untuk memberikan pengontrol izin IAM yang diperlukan. Ketahuilah bahwa pengontrol akan menghapus grup target ketika TargetGroupBinding sumber daya atau cluster dihapus.