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
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Azure CLI atau Azure PowerShell diinstal.
- Kluster AKS dengan:
- Identitas beban kerja diaktifkan
- Identitas terkelola yang dibuat dalam langganan yang sama
- Akun layanan Kubernetes
- Kredensial identitas federasi
- Ekstensi kluster Dapr yang diinstal pada kluster AKS
- kubectl diinstal secara lokal.
Mengklon repositori
Kloning repositori mulai cepat Dapr menggunakan
git clone
perintah .git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
Ubah ke direktori
dapr-aks-extension-quickstart
.
Membuat dan mengonfigurasi penyimpanan Redis
Buka portal Azure untuk memulai alur pembuatan Azure Cache for Redis.
- Isi informasi yang direkomendasikan sesuai dengan instruksi mulai cepat "Buat cache Redis sumber terbuka".
- Pilih Buat untuk memulai penyebaran instans Redis.
Memverifikasi informasi sumber daya
- Setelah sumber daya Redis disebarkan, navigasikan ke halaman gambaran umumnya.
- 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
.
- Nama host, ditemukan di bagian Esensial dari halaman gambaran umum cache. Format nama host terlihat mirip dengan:
- Navigasi ke bilah Autentikasi dan verifikasi Autentikasi Microsoft Entra diaktifkan pada sumber daya Anda.
Menambahkan identitas terkelola
Di bilah Autentikasi , ketik nama Identitas Terkelola yang Anda buat sebagai prasyarat di bidang di bawah kotak centang Aktifkan Autentikasi Microsoft Entra.
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.
- Navigasi ke bilah Titik Akhir Privat.
- 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
Di editor kode pilihan Anda, navigasikan
deploy
ke direktori dalam sampel dan bukaredis.yaml
.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
Terapkan
redis.yaml
file menggunakankubectl apply
perintah .kubectl apply -f ./deploy/redis.yaml
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"
Navigasi ke
deploy
direktori dan bukanode.yaml
.Ganti nilai tempat penampung
<SERVICE_ACCOUNT_NAME>
untukserviceAccountName
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
Terapkan penyebaran aplikasi Node.js ke kluster Anda menggunakan
kubectl apply
perintah .kubectl apply -f ./deploy/node.yaml
Penyebaran Kubernetes bersifat asinkron, jadi sebelum melanjutkan ke langkah berikutnya, verifikasi bahwa penyebaran selesai dengan perintah berikut:
kubectl rollout status deploy/nodeapp
Akses layanan Anda menggunakan
kubectl get svc
perintah .kubectl get svc nodeapp
Catat
EXTERNAL-IP
dalam output.
Memverifikasi layanan Node.js
Menggunakan
curl
, panggil layanan dengan AndaEXTERNAL-IP
.curl $EXTERNAL_IP/ports
Contoh output
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Kirim pesanan ke aplikasi.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
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"
Navigasi ke
deploy
direktori dan bukapython.yaml
.Ganti nilai tempat penampung
<SERVICE_ACCOUNT_NAME>
untukserviceAccountName
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
Sebarkan aplikasi Python ke kluster Kubernetes menggunakan
kubectl apply
perintah .kubectl apply -f ./deploy/python.yaml
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.
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
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
Azure Kubernetes Service