Bagikan melalui


Mulai Cepat: Menyebarkan aplikasi menggunakan ekstensi kluster Dapr untuk Azure Kubernetes Service (AKS) atau Kubernetes berbasis Arc

Dalam mulai cepat ini, Anda menggunakan ekstensi kluster Dapr di kluster Kube yang didukung AKS atau Arc. Anda menyebarkan hello world contoh, yang terdiri dari aplikasi Python yang menghasilkan pesan dan aplikasi Node.js yang menggunakan dan mempertahankan pesan.

Prasyarat

Mengklon repositori

  1. Kloning repositori mulai cepat Dapr menggunakan git clone perintah .

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Ubah ke direktori dapr-aks-extension-quickstart.

Membuat dan mengonfigurasi penyimpanan Redis

Buka portal Azure untuk memulai alur pembuatan Azure Cache for Redis.

  1. Isi informasi yang direkomendasikan sesuai dengan instruksi mulai cepat "Buat cache Redis sumber terbuka".
  2. Pilih Buat untuk memulai penyebaran instans Redis.

Memverifikasi informasi sumber daya

  1. Setelah sumber daya Redis disebarkan, navigasikan ke halaman gambaran umumnya.
  2. Perhatikan:
    • Nama host, ditemukan di bagian Esensial dari halaman gambaran umum cache. Format nama host terlihat mirip dengan: xxxxxx.redis.cache.windows.net.
    • Port SSL, ditemukan di bilah Pengaturan Tingkat Lanjut cache. Nilai defaultnya adalah 6380.
  3. Navigasi ke bilah Autentikasi dan verifikasi Autentikasi Microsoft Entra diaktifkan pada sumber daya Anda.

Menambahkan identitas terkelola

  1. Di bilah Autentikasi , ketik nama Identitas Terkelola yang Anda buat sebagai prasyarat di bidang di bawah kotak centang Aktifkan Autentikasi Microsoft Entra.

    Cuplikan layar yang memperlihatkan bidang tempat Anda dapat memilih identitas terkelola untuk ditambahkan sebagai pengguna Redis.

  2. Verifikasi identitas terkelola Anda ditambahkan sebagai izin Kebijakan Akses Pemilik Data yang ditetapkan Pengguna Redis.

Aktifkan akses jaringan publik

Untuk skenario ini, cache Redis Anda menggunakan akses jaringan publik. Pastikan untuk membersihkan sumber daya saat Anda selesai dengan mulai cepat ini.

  1. Navigasi ke bilah Titik Akhir Privat.
  2. Klik Aktifkan akses jaringan publik dari menu atas.

Mengonfigurasi komponen Dapr

Dalam redis.yaml, komponen dikonfigurasi untuk menggunakan Autentikasi ID Entra menggunakan identitas beban kerja yang diaktifkan untuk kluster AKS. Tidak diperlukan kunci akses.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. Di editor kode pilihan Anda, navigasikan deploy ke direktori dalam sampel dan buka redis.yaml.

  2. Untuk redisHost, ganti nilai tempat penampung <REDIS_HOST>:<REDIS_PORT> dengan nama host cache Redis dan port SSL yang Anda simpan sebelumnya dari portal Azure.

    - name: redisHost
    value: <your-cache-name>.redis.cache.windows.net:6380
    

Terapkan konfigurasi

  1. Terapkan redis.yaml file menggunakan kubectl apply perintah .

    kubectl apply -f ./deploy/redis.yaml
    
  2. Pastikan penyimpanan status Anda berhasil dikonfigurasi menggunakan kubectl get components.redis perintah .

    kubectl get components.redis -o yaml
    

    Output yang diharapkan

    component.dapr.io/statestore created
    

Terapkan aplikasi Node.js dengan sidecar Dapr

Mengonfigurasi aplikasi Node.js

Dalam node.yaml, spesifikasi pod memiliki label yang ditambahkan untuk menggunakan identitas beban kerja,:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigasi ke deploy direktori dan buka node.yaml.

  2. Ganti nilai tempat penampung <SERVICE_ACCOUNT_NAME> untuk serviceAccountName dengan nama akun layanan yang Anda buat.

    • Nilai ini harus menjadi akun layanan yang sama dengan yang Anda gunakan untuk membuat kredensial identitas federasi.

Terapkan konfigurasi

  1. Terapkan penyebaran aplikasi Node.js ke kluster Anda menggunakan kubectl apply perintah .

    kubectl apply -f ./deploy/node.yaml
    
  2. Penyebaran Kubernetes bersifat asinkron, jadi sebelum melanjutkan ke langkah berikutnya, verifikasi bahwa penyebaran selesai dengan perintah berikut:

    kubectl rollout status deploy/nodeapp
    
  3. Akses layanan Anda menggunakan kubectl get svc perintah .

    kubectl get svc nodeapp
    
  4. Catat EXTERNAL-IP dalam output.

Memverifikasi layanan Node.js

  1. Menggunakan curl, panggil layanan dengan Anda EXTERNAL-IP.

    curl $EXTERNAL_IP/ports
    

    Contoh output

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Kirim pesanan ke aplikasi.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Konfirmasi pesanan.

    curl $EXTERNAL_IP/order
    

    Output yang diharapkan

    { "orderId": "42" }
    

Terapkan aplikasi Node.js dengan sidecar Dapr

Mengonfigurasi aplikasi Python

Dalam python.yaml, spesifikasi pod memiliki label yang ditambahkan untuk menggunakan identitas beban kerja,:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigasi ke deploy direktori dan buka python.yaml.

  2. Ganti nilai tempat penampung <SERVICE_ACCOUNT_NAME> untuk serviceAccountName dengan nama akun layanan yang Anda buat.

    • Nilai ini harus menjadi akun layanan yang sama dengan yang Anda gunakan untuk membuat kredensial identitas federasi.

Terapkan konfigurasi

  1. Sebarkan aplikasi Python ke kluster Kubernetes menggunakan kubectl apply perintah .

    kubectl apply -f ./deploy/python.yaml
    
  2. Penyebaran Kubernetes bersifat asinkron, jadi sebelum melanjutkan ke langkah berikutnya, verifikasi bahwa penyebaran selesai dengan perintah berikut:

    kubectl rollout status deploy/pythonapp
    

Amati pesan dan konfirmasi kegigihan

Sekarang setelah aplikasi Node.js dan Python disebarkan, Anda dapat menonton pesan masuk.

  1. Dapatkan log aplikasi Node.js menggunakan kubectl logs perintah .

    kubectl logs --selector=app=node -c node --tail=-1
    

    Output yang diharapkan

    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. Menggunakan curl, panggil titik akhir pesanan aplikasi Node.js untuk mendapatkan pesanan terbaru.

    curl $EXTERNAL_IP/order
    

    Anda akan melihat output JSON terbaru dalam respons.

Membersihkan sumber daya

Jika Anda tidak lagi berencana untuk menggunakan sumber daya dari mulai cepat ini, Anda dapat menghapus semua sumber daya terkait dengan menghapus grup sumber daya.

Hapus grup sumber daya, kluster, namespace layanan, dan semua sumber daya terkait menggunakan perintah az group delete .

az group delete --name MyResourceGroup

Langkah berikutnya