Baca dalam bahasa Inggris

Bagikan melalui


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.

Mengonfigurasi manifes penyebaran Kubernetes

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.

Implementasi AWS

    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>

Implementasi Azure

    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

Atur variabel lingkungan

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.

Langkah berikutnya

Kontributor

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