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 yang mengonsumsi dan mempertahankan pesan.
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Azure CLI atau Azure PowerShell diinstal.
- Kluster Kubernetes dengan dukungan AKS atau Arc dengan ekstensi kluster Dapr diaktifkan.
Kloning repositori mulai cepat Dapr menggunakan
git clone
perintah .git clone https://github.com/dapr/quickstarts.git
Ubah ke
hello-kubernetes
direktori menggunakancd
.cd quickstarts/tutorials/hello-kubernetes/
Dapr dapat menggunakan berbagai penyimpanan status, seperti Redis, Azure Cosmos DB, DynamoDB, dan Cassandra, untuk bertahan dan mengambil status. Untuk contoh ini, kami menggunakan Redis.
Buka portal Azure untuk memulai alur pembuatan Azure Cache for Redis.
Isi informasi yang diperlukan.
Pilih Buat untuk memulai penyebaran instans Redis.
Perhatikan nama host instans Redis Anda, yang dapat Anda ambil dari bagian Gambaran Umum di Azure. Nama host mungkin mirip dengan contoh berikut:
xxxxxx.redis.cache.windows.net:6380
.Di bawah Pengaturan, navigasikan ke Kunci akses untuk mendapatkan kunci akses Anda.
Buat rahasia Kubernetes untuk menyimpan kata sandi Redis Anda menggunakan
kubectl create secret generic redis
perintah .kubectl create secret generic redis --from-literal=redis-password=<your-redis-password>
Setelah penyimpanan dibuat, Anda perlu menambahkan kunci ke redis.yaml
file di direktori penyebaran repositori Halo Dunia. Pelajari lebih lanjut di sini.
redisHost
Ganti nilai dengan alamat master Redis Anda sendiri.redisPassword
Ganti dengan Rahasia Anda sendiri.Tambahkan dua baris berikut di bawah ini
redisPassword
untuk mengaktifkan koneksi melalui TLS- name: redisPassword secretKeyRef: name: redis key: redis-password - name: enableTLS value: true
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
Anda akan melihat output yang mirip dengan contoh output berikut:
component.dapr.io/statestore created
Terapkan penyebaran aplikasi Node.js ke kluster Anda menggunakan
kubectl apply
perintah .kubectl apply -f ./deploy/node.yaml
Catatan
Penyebaran Kubernetes bersifat asinkron, yang berarti Anda perlu menunggu penyebaran selesai sebelum melanjutkan ke langkah berikutnya. Anda bisa melakukannya dengan perintah berikut:
kubectl rollout status deploy/nodeapp
Ini menyebarkan aplikasi Node.js ke Kubernetes. Sarana kontrol Dapr secara otomatis menyuntikkan sidecar Dapr ke Pod. Jika Anda melihat
node.yaml
file, Anda akan melihat bagaimana Dapr diaktifkan untuk penyebaran tersebut:dapr.io/enabled: true
: memberi tahu sarana kontrol Dapr untuk menyuntikkan sespan ke penyebaran ini.dapr.io/app-id: nodeapp
: menetapkan ID atau nama unik ke aplikasi Dapr, sehingga dapat dikirimi pesan ke dan dikomunikasikan dengan aplikasi Dapr lainnya.
Akses layanan Anda menggunakan
kubectl get svc
perintah .kubectl get svc nodeapp
Catat
EXTERNAL-IP
dalam output.
Hubungi layanan menggunakan
curl
dengan .EXTERNAL-IP
curl $EXTERNAL_IP/ports
Anda akan melihat output yang mirip dengan contoh output berikut:
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Kirim pesanan ke aplikasi menggunakan
curl
.curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
Konfirmasikan pesanan telah bertahan dengan memintanya menggunakan
curl
.curl $EXTERNAL_IP/order
Anda akan melihat output yang mirip dengan contoh output berikut:
{ "orderId": "42" }
Navigasikan ke direktori aplikasi Python di
hello-kubernetes
quickstart dan bukaapp.py
.Contoh ini adalah aplikasi Python dasar yang memposting pesan JSON ke
localhost:3500
, yang merupakan port mendengarkan default untuk Dapr. Anda dapat meminta titik akhir aplikasi Node.js denganneworder
memposting kev1.0/invoke/nodeapp/method/neworder
. Pesan berisi beberapa data denganorderId
peningkatan sekali per detik:n = 0 while True: n += 1 message = {"data": {"orderId": n}} try: response = requests.post(dapr_url, json=message) except Exception as e: print(e) time.sleep(1)
Sebarkan aplikasi Python ke kluster Kubernetes menggunakan
kubectl apply
perintah .kubectl apply -f ./deploy/python.yaml
Catatan
Seperti perintah sebelumnya, Anda perlu menunggu penyebaran selesai sebelum melanjutkan ke langkah berikutnya. Anda bisa melakukannya dengan perintah berikut:
kubectl rollout status deploy/pythonapp
Sekarang setelah aplikasi Node.js dan Python disebarkan, Anda menonton pesan masuk.
Dapatkan log aplikasi Node.js menggunakan
kubectl logs
perintah .kubectl logs --selector=app=node -c node --tail=-1
Jika penyebaran berhasil, Anda akan melihat log seperti contoh log berikut:
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
Panggil titik akhir pesanan aplikasi Node.js untuk mendapatkan pesanan terbaru menggunakan
curl
.curl $EXTERNAL_IP/order {"orderID":"42"}
Anda harus melihat JSON terbaru dalam jawabannya.
Hapus grup sumber daya, kluster, namespace layanan, dan semua sumber daya terkait menggunakan perintah az group delete .
az group delete --name MyResourceGroup
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: