Bersiap untuk menyebarkan beban kerja alur kerja berbasis peristiwa (EDW) ke Azure
Sampel beban kerja AWS disebarkan menggunakan Bash, CloudFormation, dan AWS CLI. Aplikasi Python konsumen disebarkan sebagai kontainer. Bagian berikut ini menjelaskan bagaimana alur kerja Azure berbeda. Ada perubahan dalam skrip Bash yang digunakan untuk menyebarkan kluster Azure Kubernetes Service (AKS) dan infrastruktur pendukung. Selain itu, manifes penyebaran Kubernetes dimodifikasi untuk mengonfigurasi KEDA untuk menggunakan penskala Antrean Azure Storage sebagai pengganti penskala Amazon Simple Queue Service (SQS).
Alur kerja Azure menggunakan fitur AKS Node Autoprovisioning (NAP), yang didasarkan pada Karpenter. Fitur ini sangat menyederhanakan penyebaran dan penggunaan Karpenter pada AKS dengan menghilangkan kebutuhan untuk menggunakan Helm untuk menyebarkan Karpenter secara eksplisit. Namun, jika Anda memiliki kebutuhan untuk menyebarkan Karpenter secara langsung, Anda dapat melakukannya menggunakan penyedia AKS Karpenter di GitHub.
AWS menggunakan manifes YAML penyebaran Kube untuk menyebarkan beban kerja ke EKS. YAML penyebaran AWS memiliki referensi ke SQS dan DynamoDB untuk penskala KEDA, jadi kita perlu mengubahnya untuk menentukan nilai setara KEDA bagi penskala Azure untuk digunakan untuk menyambungkan ke infrastruktur Azure. Untuk melakukannya, konfigurasikan penskala KEDA Antrean Azure Storage.
Cuplikan kode berikut menunjukkan contoh manifes YAML untuk implementasi AWS dan Azure.
spec:
serviceAccountName: $SERVICE_ACCOUNT
containers:
- name: <sqs app name>
image: <name of Python app container>
imagePullPolicy: Always
env:
- name: SQS_QUEUE_URL
value: https://<Url To SQS>/<region>/<QueueName>.fifo
- name: DYNAMODB_TABLE
value: <table name>
- name: AWS_REGION
value: <region>
spec:
serviceAccountName: $SERVICE_ACCOUNT
containers:
- name: keda-queue-reader
image: ${AZURE_CONTAINER_REGISTRY_NAME}.azurecr.io/aws2azure/aqs-consumer
imagePullPolicy: Always
env:
- name: AZURE_QUEUE_NAME
value: $AZURE_QUEUE_NAME
- name: AZURE_STORAGE_ACCOUNT_NAME
value: $AZURE_STORAGE_ACCOUNT_NAME
- name: AZURE_TABLE_NAME
value: $AZURE_TABLE_NAME
Sebelum menjalankan salah satu langkah penyebaran, Anda perlu mengatur beberapa informasi konfigurasi menggunakan variabel lingkungan berikut:
K8sversion
: Versi Kubernetes yang disebarkan pada kluster AKS.KARPENTER_VERSION
: Versi Karpenter yang disebarkan pada kluster AKS.SERVICE_ACCOUNT
: Nama akun layanan yang terkait dengan identitas terkelola.AQS_TARGET_DEPLOYMENT
: Nama penyebaran kontainer aplikasi konsumen.AQS_TARGET_NAMESPACE
: Namespace tempat aplikasi konsumen disebarkan.AZURE_QUEUE_NAME
: Nama Antrean Azure Storage.AZURE_TABLE_NAME
: Nama Tabel Azure Storage yang menyimpan pesan yang diproses.LOCAL_NAME
: Akar sederhana untuk nama sumber daya yang dibangun dalam skrip penyebaran.LOCATION
: Wilayah Azure tempat penyebaran berada.TAGS
: Setiap tag yang ditentukan pengguna bersama dengan nilai terkaitnya.STORAGE_ACCOUNT_SKU
: SKU Akun Azure Storage.ACR_SKU
: SKU Azure Container Registry.AKS_NODE_COUNT
: Jumlah simpul.
Anda dapat meninjau environmentVariables.sh
skrip Bash di deployment
direktori repositori GitHub kami. Variabel lingkungan ini memiliki set default, sehingga Anda tidak perlu memperbarui file kecuali Anda ingin mengubah default. Nama sumber daya Azure dibuat secara dinamis dalam deploy.sh
skrip dan disimpan dalam deploy.state
file. Anda dapat menggunakan deploy.state
file untuk membuat variabel lingkungan untuk nama sumber daya Azure.
Microsoft mempertahankan artikel ini. Kontributor berikut awalnya menulisnya:
- Ken Kilty | TPM Utama
- Russell de Pina | TPM Utama
- Jenny Hayes | Pengembang Konten Senior
- Carol Smith | Pengembang Konten Senior
- Erin Schaffer | Pengembang Konten 2
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: