Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan penskalaan otomatis berbasis peristiwa di Amazon EKS dengan menggunakan Amazon EKS Pod Identity dan KEDA
Dipen Desai, Abhay Diwan, Kamal Joshi, dan Mahendra Revanasiddappa, Amazon Web Services
Ringkasan
Platform orkestrasi, seperti Amazon Elastic Kubernetes Service (Amazon EKS), telah menyederhanakan pengelolaan siklus hidup aplikasi berbasis container. Ini membantu organisasi fokus pada membangun, mengamankan, mengoperasikan, dan memelihara aplikasi berbasis kontainer. Karena penerapan berbasis peristiwa menjadi lebih umum, organisasi lebih sering menskalakan penerapan Kubernetes berdasarkan berbagai sumber peristiwa. Metode ini, dikombinasikan dengan auto scaling, dapat menghasilkan penghematan biaya yang signifikan dengan menyediakan sumber daya komputasi sesuai permintaan dan penskalaan efisien yang disesuaikan dengan logika aplikasi.
KEDA adalah autoscaler
AWS menyediakan peran AWS Identity and Access Management (IAM) yang mendukung beragam opsi penerapan Kubernetes, termasuk Amazon EKS, Amazon EKS Anywhere, Layanan OpenShift Red Hat di AWS (ROSA), dan cluster Kubernetes yang dikelola sendiri di Amazon Elastic Compute Cloud (Amazon). EC2 Peran ini menggunakan konstruksi IAM, seperti penyedia identitas OpenID Connect (OIDC) dan kebijakan kepercayaan IAM, untuk beroperasi di berbagai lingkungan tanpa bergantung langsung pada layanan Amazon EKS atau. APIs Untuk informasi selengkapnya, lihat peran IAM untuk akun layanan di dokumentasi Amazon EKS.
Amazon EKS Pod Identity menyederhanakan proses akun layanan Kubernetes untuk mengambil peran IAM tanpa memerlukan penyedia OIDC. Ini memberikan kemampuan untuk mengelola kredensyal untuk aplikasi Anda. Alih-alih membuat dan mendistribusikan AWS kredensialmu ke container atau menggunakan peran EC2 instans Amazon, kamu mengaitkan peran IAM dengan akun layanan Kubernetes dan mengonfigurasi Pod kamu untuk menggunakan akun layanan. Ini membantu Anda menggunakan peran IAM di beberapa klaster dan menyederhanakan manajemen kebijakan dengan mengaktifkan penggunaan kembali kebijakan izin di seluruh peran IAM.
Dengan menerapkan KEDA dengan Amazon EKS Pod Identity, bisnis dapat mencapai penskalaan otomatis berbasis peristiwa yang efisien dan pengelolaan kredensi yang disederhanakan. Skala aplikasi berdasarkan permintaan, yang mengoptimalkan pemanfaatan sumber daya dan mengurangi biaya.
Pola ini membantu Anda mengintegrasikan Amazon EKS Pod Identity dengan KEDA. Ini menampilkan bagaimana Anda dapat menggunakan akun keda-operator layanan dan mendelegasikan otentikasi dengan. TriggerAuthentication Ini juga menjelaskan cara mengatur hubungan kepercayaan antara peran IAM untuk operator KEDA dan peran IAM untuk aplikasi. Hubungan kepercayaan ini memungkinkan KEDA untuk memantau pesan dalam antrian acara dan menyesuaikan penskalaan untuk objek Kubernetes tujuan.
Prasyarat dan batasan
Prasyarat
AWS Command Line Interface (AWS CLI) versi 2.13.17 atau yang lebih baru, diinstal
AWS SDK untuk Python (Boto3) versi 1.34.135 atau yang lebih baru, diinstal
Prasyarat untuk membuat agen Amazon EKS Pod Identity, dipenuhi
Batasan
Diperlukan bahwa Anda membangun hubungan kepercayaan antara
keda-operatorperan dankeda-identityperan. Instruksi disediakan di bagian Epik dari pola ini.
Arsitektur
Dalam pola ini, Anda membuat AWS sumber daya berikut:
Repositori Amazon Elastic Container Registry (Amazon ECR) - Dalam pola ini, repo ini diberi nama.
keda-pod-identity-registryRepo pribadi ini digunakan untuk menyimpan gambar Docker dari aplikasi sampel.Antrian Amazon Simple Queue Service (Amazon SQS) - Dalam pola ini, antrian ini diberi nama.
event-messages-queueAntrian bertindak sebagai buffer pesan yang mengumpulkan dan menyimpan pesan masuk. KEDA memantau metrik antrian, seperti jumlah pesan atau panjang antrian, dan secara otomatis menskalakan aplikasi berdasarkan metrik ini.Peran IAM untuk aplikasi — Dalam pola ini, peran ini diberi nama
keda-identity.keda-operatorPeran mengasumsikan peran ini. Peran ini memungkinkan akses ke antrian Amazon SQS.Peran IAM untuk operator KEDA - Dalam pola ini, peran ini diberi nama.
keda-operatorOperator KEDA menggunakan peran ini untuk melakukan panggilan AWS API yang diperlukan. Peran ini memiliki izin untuk mengambilkeda-identityperan. Karena hubungan kepercayaan antara perankeda-operatordankeda-identityperan,keda-operatorperan tersebut memiliki izin Amazon SQS.
Melalui sumber daya kustom TriggerAuthentication dan ScaledObject Kubernetes, operator menggunakan keda-identity peran tersebut untuk terhubung dengan antrean Amazon SQS. Berdasarkan ukuran antrian, KEDA secara otomatis menskalakan penerapan aplikasi. Ini menambahkan 1 pod untuk setiap 5 pesan yang belum dibaca dalam antrian. Dalam konfigurasi default, jika tidak ada pesan yang belum dibaca dalam antrean Amazon SQS, aplikasi akan menurunkan skala ke 0 pod. Operator KEDA memantau antrian pada interval yang Anda tentukan.
Gambar berikut menunjukkan cara Anda menggunakan Amazon EKS Pod Identity untuk menyediakan keda-operator peran dengan akses aman ke antrean Amazon SQS.

Diagram menunjukkan alur kerja berikut:
Anda menginstal agen Amazon EKS Pod Identity di cluster Amazon EKS.
Anda menerapkan operator KEDA di namespace KEDA di cluster Amazon EKS.
Anda membuat peran
keda-operatordankeda-identityIAM di target Akun AWS.Anda membangun hubungan kepercayaan antara peran IAM.
Anda menyebarkan aplikasi di
securitynamespace.Operator KEDA melakukan polling pesan dalam antrian Amazon SQS.
KEDA memulai HPA, yang secara otomatis menskalakan aplikasi berdasarkan ukuran antrian.
Alat
Layanan AWS
Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
Amazon Elastic Kubernetes Service (Amazon EKS) membantu Anda menjalankan AWS Kubernetes tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
Alat-alat lainnya
KEDA adalah autoscaler
berbasis peristiwa berbasis Kubernetes.
Repositori kode
Kode untuk pola ini tersedia di GitHub Event-driven auto scaling menggunakan EKS Pod Identity dan
Praktik terbaik
Sebaiknya Anda untuk mematuhi praktik terbaik berikut:
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat peran IAM untuk operator KEDA. |
| Administrator AWS |
Buat peran IAM untuk aplikasi sampel. |
| Administrator AWS |
Membuat antrean Amazon SQS. |
| AWS Umum |
Buat repositori Amazon ECR. |
| AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menerapkan agen Amazon EKS Pod Identity. | Untuk cluster Amazon EKS target, siapkan agen Amazon EKS Pod Identity. Ikuti petunjuk dalam Mengatur Agen Identitas Pod Amazon EKS di dokumentasi Amazon EKS. | AWS DevOps |
Menyebarkan KEDA. |
| DevOps insinyur |
Tetapkan peran IAM ke akun layanan Kubernetes. | Ikuti petunjuk dalam Menetapkan peran IAM ke akun layanan Kubernetes di dokumentasi Amazon EKS. Gunakan nilai berikut:
| AWS DevOps |
Buat namespace. | Masukkan perintah berikut untuk membuat
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning file aplikasi. | Masukkan perintah berikut untuk mengkloning penskalaan auto Event-driven menggunakan EKS Pod Identity dan repositori
| DevOps insinyur |
membuat gambar Docker. |
| DevOps insinyur |
Dorong gambar Docker ke Amazon ECR. |
catatanAnda dapat menemukan perintah push dengan menavigasi ke halaman repositori Amazon ECR dan kemudian memilih perintah View push. | DevOps insinyur |
Deploy aplikasi sampel. |
| DevOps insinyur |
Tetapkan peran IAM ke akun layanan aplikasi. | Lakukan salah satu hal berikut untuk mengaitkan peran
| DevOps insinyur |
Menyebarkan |
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kirim pesan ke antrian Amazon SQS. |
| DevOps insinyur |
Pantau pod aplikasi. |
| DevOps insinyur |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Operator KEDA tidak dapat menskalakan aplikasi. | Masukkan perintah berikut untuk memeriksa log peran
Jika ada kode
Jika ada
|
Sumber daya terkait
Siapkan Agen Identitas Pod Amazon EKS (dokumentasi Amazon EKS)
ScaledObject spesifikasi
(dokumentasi KEDA) Otentikasi dengan TriggerAuthentication
(dokumentasi KEDA)