Ekstensi Dapr untuk Azure Kubernetes Service (AKS) dan Kubernetes berkemampuan Arc
Distributed Application Runtime (Dapr) menawarkan API yang membantu Anda menulis dan menerapkan layanan mikro sederhana, portabel, tangguh, dan aman. API Dapr berjalan sebagai proses sidecar bersama dengan aplikasi Anda dan mengabstraksi kompleksitas umum yang mungkin Anda temui saat membangun aplikasi terdistribusi, seperti:
- Penemuan layanan
- Integrasi broker pesan
- Enkripsi
- Observabilitas
- Manajemen rahasia
Dapr secara bertahap dapat diadopsi. Anda dapat menggunakan salah satu blok penyusun API sesuai kebutuhan. Pelajari tingkat dukungan yang ditawarkan Microsoft untuk setiap DAPR API dan komponen.
Menggunakan ekstensi Dapr untuk memprovisikan Dapr pada kluster Kubernetes yang didukung AKS atau Arc menghilangkan overhead:
- Mengunduh alat Dapr
- Menginstal dan mengelola runtime Dapr secara manual pada kluster AKS Anda
Selain itu, ekstensi ini menawarkan dukungan untuk semua kemampuan konfigurasi Dapr asli melalui argumen baris perintah sederhana.
Dapr menyediakan serangkaian kemampuan berikut untuk membantu pengembangan layanan mikro Anda di AKS:
- Provisi Dapr di AKS dengan mudah melalui ekstensi kluster
- Portabilitas diaktifkan melalui HTTP dan API gRPC yang meringkas pilihan teknologi yang mendasari
- Panggilan layanan ke layanan yang andal, aman, dan tangguh melalui HTTP dan API gRPC
- Menerbitkan dan berlangganan olahpesan menjadi mudah dengan dukungan untuk pemfilteran CloudEvent dan semantik “setidaknya sekali” untuk pengiriman pesan
- Observabilitas dan pemantauan yang dapat dipasang melalui pengumpul Open Telemetry API
- Independen dari bahasa, sekaligus menawarkan kit pengembangan perangkat lunak (SDK) khusus bahasa
- Integrasi dengan Visual Studio Code melalui ekstensi Dapr
- Lebih banyak API untuk memecahkan tantangan aplikasi terdistribusi
Ekstensi Dapr adalah satu-satunya opsi yang didukung Microsoft untuk Dapr di AKS.
Microsoft mengategorikan masalah yang diajukan terhadap ekstensi Dapr menjadi dua bagian:
- Operasi ekstensi
- Runtime Dapr (termasuk API dan komponen)
Tabel berikut ini memecah tingkat prioritas dukungan untuk masing-masing kategori ini.
Deskripsi | Risiko/Regresi keamanan | Masalah fungsi | |
---|---|---|---|
Operasi ekstensi | Masalah yang dihadapi selama operasi ekstensi, seperti menginstal/menghapus instalasi atau meningkatkan ekstensi Dapr. | Microsoft memprioritaskan untuk resolusi segera. | Microsoft menyelidiki dan menangani sesuai kebutuhan. |
Runtime dapr | Masalah yang dihadapi saat menggunakan runtime, API, dan komponen Dapr melalui ekstensi. | Microsoft bekerja sama dengan komunitas sumber terbuka untuk menyelidiki masalah prioritas tinggi. Bergantung pada prioritas, tingkat keparahan, dan ukuran masalah, Microsoft menyelesaikannya secara langsung dalam ekstensi, atau bekerja dengan proyek sumber terbuka Dapr untuk diselesaikan dalam perbaikan atau rilis sumber terbuka Dapr di masa mendatang. Setelah perbaikan dirilis di Dapr sumber terbuka, perbaikan kemudian tersedia di ekstensi Dapr. | Microsoft menyelidiki masalah fungsional baru bersama proyek sumber terbuka Dapr dan berkolaborasi dengan mereka untuk menyelesaikan dalam perbaikan atau rilis sumber terbuka Dapr di masa mendatang. Masalah fungsi sumber terbuka yang diketahui tidak akan diselidiki oleh Microsoft saat ini. |
Microsoft memberikan dukungan upaya terbaik untuk versi terbaru Dapr dan dua versi sebelumnya (N-2). Versi patch terbaru adalah satu-satunya versi yang didukung dari setiap rilis versi minor. Saat ini, ekstensi Dapr untuk Kubernetes dengan dukungan AKS atau Arc mendukung versi Dapr berikut:
- 1.14.x
- 1.13.x
- 1.12.x
Anda dapat menjalankan perintah Azure CLI untuk mengambil daftar versi yang tersedia di kluster atau lokasi.
Dukungan ekstensi Dapr bervariasi tergantung pada cara Anda mengelola runtime.
Runtime yang dikelola sendiri memerlukan peningkatan manual untuk tetap berada di jendela dukungan. Untuk meningkatkan versi Dapr melalui ekstensi, ikuti petunjuk Perbarui contoh ekstensi.
Setelah versi runtime Dapr mencapai akhir dukungan Microsoft, aplikasi Anda terus berjalan tidak berubah. Namun, Microsoft tidak dapat lagi menyediakan patch keamanan atau dukungan pelanggan terkait untuk versi runtime tersebut. Jika aplikasi Anda mengalami masalah melewati tanggal akhir dukungan untuk versi tersebut, sebaiknya tingkatkan ke versi yang didukung untuk menerima patch dan fitur keamanan terbaru.
Mengaktifkan peningkatan otomatis memerlukan pertimbangan yang cermat. Meskipun peningkatan otomatis membuat ekstensi Dapr Anda diperbarui ke versi minor terbaru, Anda mungkin mengalami perubahan yang merusak antara pembaruan. Microsoft tidak bertanggung jawab atas waktu henti yang disebabkan karena perubahan yang memecah antara pembaruan otomatis.
Anda dapat menggunakan semua komponen dan API Dapr melalui ekstensi Dapr, termasuk komponen dalam status alfa dan beta. Namun, Microsoft hanya menyediakan dukungan ke subset API dan komponen, mengikuti kebijakan penanganan masalah yang ditentukan.
Ekstensi Dapr mendukung versi API Dapr yang stabil (blok penyusun).
Dapr API | Keadaan | Deskripsi |
---|---|---|
Pemanggilan layanan ke layanan | Stabil | Temukan layanan dan lakukan panggilan layanan ke layanan langsung yang andal dengan autentikasi dan enkripsi mTLS otomatis. (#limitations) |
Manajemen status | Stabil | Menyediakan kemampuan manajemen status untuk transaksi dan operasi CRUD. |
Pub/sub | Stabil | Memungkinkan aplikasi penerbit dan pelanggan untuk berkomunikasi melalui broker pesan perantara. Anda juga dapat membuat langganan deklaratif ke topik menggunakan file JSON komponen eksternal. |
Pengikatan-Pengikatan | Stabil | Memicu aplikasi Anda berdasarkan peristiwa. |
Aktor | Stabil | Aktor Dapr adalah unit kerja berbasis pesan, berulir tunggal, yang dirancang untuk menskalakan dengan cepat. Misalnya, dalam situasi beban kerja yang berat. |
Observability | Stabil | Kirim informasi pelacakan ke backend Application Insights. |
Rahasia | Stabil | Akses rahasia dari kode aplikasi Anda atau referensikan nilai aman di komponen Dapr Anda. |
Konfigurasi | Stabil | Ambil dan berlangganan item konfigurasi aplikasi untuk konfigurasi yang didukung. Toko. |
Subset komponen Dapr didukung. Dalam subset tersebut, komponen Dapr dipecah menjadi dua kategori dukungan: Tingkat 1 atau Tingkat 2.
- Komponen Tingkat 1: Komponen stabil yang menerima penyelidikan langsung dalam skenario kritis (keamanan atau regresi serius). Jika tidak, Microsoft berkolaborasi dengan sumber terbuka untuk mengatasi dalam perbaikan atau rilis reguler berikutnya.
- Komponen Tingkat 2: Komponen yang diselidiki dengan prioritas yang lebih rendah, karena tidak dalam keadaan stabil atau berada dengan penyedia pihak ketiga.
API | Komponen | Jenis |
---|---|---|
Manajemen Status | Azure Cosmos DB Azure Blob Storage v1 Penyimpanan Tabel Azure Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Terbitkan & berlangganan | Azure Service Bus Queues Topik Azure Service Bus Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Pengikatan | Azure Storage Queues Azure Service Bus Queues Azure Blob Storage Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Manajemen rahasia | Azure Key Vault | secretstores.azure.keyvault |
API | Komponen | Jenis |
---|---|---|
Manajemen Status | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
Terbitkan & berlangganan | Apache Kafka Streams Redis |
pubsub.kafka pubsub.redis |
Pengikatan | Kisi Aktivitas Azure Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Konfigurasi | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Cloud Azure global didukung dengan dukungan AKS dan Arc di wilayah berikut:
Wilayah | Dukungan AKS | Dukungan Arc untuk Kubernetes |
---|---|---|
australiaeast |
✔️ | ✔️ |
australiasoutheast |
✔️ | ❌ |
brazilsouth |
✔️ | ❌ |
canadacentral |
✔️ | ✔️ |
canadaeast |
✔️ | ✔️ |
centralindia |
✔️ | ✔️ |
centralus |
✔️ | ✔️ |
eastasia |
✔️ | ✔️ |
eastus |
✔️ | ✔️ |
eastus2 |
✔️ | ✔️ |
eastus2euap |
❌ | ✔️ |
francecentral |
✔️ | ✔️ |
francesouth |
✔️ | ❌ |
germanywestcentral |
✔️ | ✔️ |
japaneast |
✔️ | ✔️ |
japanwest |
✔️ | ❌ |
koreacentral |
✔️ | ✔️ |
koreasouth |
✔️ | ❌ |
northcentralus |
✔️ | ✔️ |
northeurope |
✔️ | ✔️ |
norwayeast |
✔️ | ❌ |
southafricanorth |
✔️ | ❌ |
southcentralus |
✔️ | ✔️ |
southeastasia |
✔️ | ✔️ |
southindia |
✔️ | ❌ |
swedencentral |
✔️ | ✔️ |
switzerlandnorth |
✔️ | ✔️ |
uaenorth |
✔️ | ❌ |
uksouth |
✔️ | ✔️ |
ukwest |
✔️ | ❌ |
westcentralus |
✔️ | ✔️ |
westeurope |
✔️ | ✔️ |
westus |
✔️ | ✔️ |
westus2 |
✔️ | ✔️ |
westus3 |
✔️ | ✔️ |
Sementara Dapr dan jala layanan memang menawarkan beberapa kemampuan yang tumpang tindih, jala layanan difokuskan pada masalah jaringan, sedangkan Dapr berfokus pada penyediaan blok bangunan yang membuat membangun aplikasi sebagai layanan mikro lebih mudah. Dapr berpusat pada pengembang, sedangkan internet layanan berpusat pada infrastruktur.
Beberapa kemampuan umum yang dimiliki internet Dapr dengan layanan meliputi:
- Komunikasi layanan ke layanan yang aman dengan enkripsi mTLS
- Kumpulan metrik layanan ke layanan
- Pelacakan terdistribusi layanan ke layanan
- Ketahanan melalui percobaan kembali
Dapr menyediakan blok penyusun tingkat aplikasi lainnya untuk manajemen status, pub/sub olahpesan, aktor, dan banyak lagi. Namun, Dapr tidak menyediakan kemampuan untuk perilaku lalu lintas, seperti perutean atau pemisahan lalu lintas. Jika solusi Anda akan mendapat keuntungan dari pemisahan lalu lintas yang disediakan oleh internet layanan, pertimbangkan untuk menggunakan Open Service Mesh.
Untuk informasi selengkapnya tentang internet Dapr dan layanan, dan cara mereka dapat digunakan bersama-sama, buka dokumentasi Dapr.
Baik API rahasia Dapr dan driver Secrets Store CSI yang dikelola memungkinkan integrasi rahasia yang disimpan di penyimpanan eksternal, meringkas teknologi penyimpanan rahasia dari kode aplikasi.
Driver Secrets Store CSI memasang rahasia yang disimpan di Azure Key Vault sebagai volume CSI untuk digunakan oleh aplikasi.
Dapr mengekspos rahasia melalui RESTful API yang dapat berupa:
- Dipanggil oleh kode aplikasi
- Dikonfigurasi dengan berbagai penyimpanan rahasia
Tabel berikut mencantumkan kemampuan setiap penawaran:
API rahasia Dapr | Driver Secrets Store CSI | |
---|---|---|
Penyimpanan rahasia yang didukung | Variabel lingkungan lokal (untuk Pengembangan); File lokal (untuk Pengembangan); Rahasia Kubernetes; Manajer Rahasia AWS; penyimpanan rahasia Azure Key Vault; Azure Key Vault dengan Identitas Terkelola di Kubernetes; Manajer Rahasia GCP; Vault HashiCorp | Penyimpanan rahasia Azure Key Vault |
Mengakses rahasia dalam kode aplikasi | Memanggil API rahasia Dapr | Mengakses volume yang dipasang atau menyinkronkan konten yang dipasang sebagai rahasia Kubernetes dan mengatur variabel lingkungan |
Rotasi rahasia | Panggilan API baru mendapatkan rahasia yang diperbarui | Melakukan polling untuk rahasia dan memperbarui pemasangan pada interval yang dapat dikonfigurasi |
Pengelogan dan metrik | Tambahan Dapr menghasilkan log, yang dapat dikonfigurasi dengan pengumpul seperti Azure Monitor, memancarkan metrik melalui Prometheus, dan memperlihatkan titik akhir HTTP untuk pemeriksaan kesehatan | Memancarkan metrik penyedia driver dan Azure Key Vault melalui Prometheus |
Untuk informasi selengkapnya tentang manajemen rahasia di Dapr, lihat gambaran umum manajemen rahasia.
Untuk informasi selengkapnya tentang driver Secrets Store CSI dan penyedia Azure Key Vault, lihat gambaran umum driver Secrets Store CSI.
Ekstensi kluster Dapr terkelola adalah metode termudah untuk memprovisikan Dapr di kluster AKS. Dengan ekstensi tersebut, Anda dapat melepaskan manajemen versi runtime Dapr dengan memilih untuk melakukan peningkatan otomatis. Selain itu, ekstensi menginstal Dapr dengan default cerdas (misalnya, memprovisikan sarana kontrol Dapr dalam mode high availability).
Saat menginstal Dapr sumber terbuka melalui helm atau Dapr CLI, pengembang dan pengelola kluster juga bertanggung jawab atas versi runtime dan opsi konfigurasi.
Terakhir, ekstensi Dapr adalah perpanjangan dari AKS, sehingga Anda dapat mengharapkan kebijakan dukungan yang sama seperti fitur AKS lainnya.
Pelajari selengkapnya tentang migrasi dari Dapr sumber terbuka ke ekstensi Dapr untuk AKS.
Bagaimana cara mengautentikasi komponen Dapr dengan ID Microsoft Entra menggunakan identitas terkelola?
- Pelajari cara komponen Dapr mengautentikasi dengan ID Microsoft Entra.
- Pelajari tentang menggunakan identitas terkelola dengan AKS.
Bagaimana saya bisa beralih menggunakan ekstensi Dapr jika saya sudah menginstal Dapr melalui metode, seperti Helm?
Panduan yang disarankan adalah menghapus instalan Dapr sepenuhnya dari kluster AKS dan menginstalnya kembali melalui ekstensi kluster. Anda juga dapat memeriksa instalasi Dapr yang ada dan memigrasikannya ke AKS.
Jika Anda menginstal Dapr melalui ekstensi AKS, kami menyarankan agar Anda terus menggunakan ekstensi untuk pengelolaan Dapr di masa mendatang, bukan Dapr CLI. Menggabungkan kedua alat dapat menyebabkan konflik dan mengakibatkan perilaku yang tidak diinginkan.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: