Bagikan melalui


Mulai Cepat: Menjalankan Operasi Azure IoT di GitHub Codespaces dengan K3s

Dalam mulai cepat ini, Anda menyebarkan Operasi Azure IoT ke kluster Kubernetes dengan dukungan Azure Arc sehingga Anda dapat mengelola perangkat dan beban kerja dari jarak jauh. Di akhir mulai cepat, Anda memiliki kluster yang dapat Anda kelola dari cloud. Mulai cepat lainnya dalam seri end-to-end ini dibangun di atasnya untuk menentukan aset sampel, alur pemrosesan data, dan visualisasi.

Sebelum Anda mulai

Rangkaian mulai cepat ini dimaksudkan untuk membantu Anda memulai Operasi Azure IoT secepat mungkin sehingga Anda dapat mengevaluasi skenario end-to-end. Dalam lingkungan pengembangan atau produksi yang sebenarnya, beberapa tim bekerja sama melakukan tugas-tugas ini dan beberapa tugas mungkin memerlukan izin yang ditingkatkan.

Untuk pengalaman pengguna baru terbaik, sebaiknya gunakan akun gratis Azure sehingga Anda memiliki izin pemilik atas sumber daya dalam mulai cepat ini.

Kami juga menggunakan GitHub Codespaces sebagai lingkungan virtual untuk mulai cepat ini sehingga Anda dapat menguji skenario tanpa menginstal alat baru di komputer Anda sendiri. Namun, jika Anda ingin menyebarkan Operasi Azure IoT ke kluster lokal di Ubuntu atau Azure Kubernetes Service (AKS), lihat Menyiapkan kluster Kubernetes dengan dukungan Azure Arc.

Penting

Saat ini, K3s di Ubuntu 24.04 adalah satu-satunya platform yang tersedia secara umum untuk menyebarkan Operasi Azure IoT dalam produksi. Untuk mempelajari selengkapnya, lihat Lingkungan yang didukung.

Prasyarat

Sebelum memulai, siapkan prasyarat berikut:

  • Langganan Azure. Jika Anda belum berlangganan Azure, buat akun gratis sebelum memulai.

  • Akun GitHub.

  • Visual Studio Code diinstal pada komputer pengembangan Anda. Untuk informasi selengkapnya, lihat Mengunduh Visual Studio Code.

  • Izin Microsoft.Authorization/roleAssignments/write di tingkat grup sumber daya.

Masalah apa yang akan kita pecahkan?

Azure IoT Operations adalah serangkaian layanan data yang berjalan pada kluster Kubernetes. Anda ingin kluster ini dikelola dari jarak jauh dari cloud, dan dapat berkomunikasi dengan sumber daya dan titik akhir cloud dengan aman. Kami mengatasi masalah ini dengan tugas-tugas berikut dalam mulai cepat ini:

  1. Buat kluster Kubernetes di GitHub Codespaces.
  2. Sambungkan kluster ke Azure Arc untuk manajemen jarak jauh.
  3. Buat registri skema.
  4. Sebarkan Operasi Azure IoT ke kluster Anda.

Membuat kluster

Operasi Azure IoT dapat disebarkan ke K3 di Ubuntu, Azure Kubernetes Service (AKS) Edge Essentials, dan AKS di Azure Local. Namun, untuk kecepatan dan kenyamanan, mulai cepat ini menggunakan GitHub Codespaces untuk menghosting kluster Anda. Untuk mempelajari cara menyebarkan Operasi Azure IoT ke kluster di Windows atau Ubuntu, lihat Menyiapkan kluster Kubernetes dengan dukungan Azure Arc.

Catatan

Codespace mudah disiapkan dengan cepat dan dirobek nanti, tetapi tidak cocok untuk evaluasi performa atau pengujian skala. Gunakan GitHub Codespaces hanya untuk eksplorasi.

Lingkungan Codespace cukup untuk menyelesaikan langkah-langkah mulai cepat, tetapi tidak mendukung konfigurasi tingkat lanjut.

Di bagian ini, Anda membuat kluster baru. Jika Anda ingin menggunakan kembali kluster yang Anda sebarkan Operasi Azure IoT ke sebelumnya, lihat langkah-langkah dalam Membersihkan sumber daya untuk menghapus instalasi Operasi Azure IoT sebelum melanjutkan.

Ruang kode Azure-Samples/explore-iot-operations telah dikonfigurasi sebelumnya dengan:

Untuk membuat codespace dan kluster Anda, gunakan langkah-langkah berikut:

  1. Buat codespace di GitHub Codespaces.

    Membuat ruang kode explore-iot-operations

  2. Berikan rahasia yang direkomendasikan berikut untuk codespace Anda:

    Parameter Nilai
    SUBSCRIPTION_ID ID langganan Azure Anda.
    RESOURCE_GROUP Nama untuk grup sumber daya Azure baru tempat kluster Anda akan dibuat.
    LOCATION Wilayah Azure yang dekat dengan Anda. Untuk daftar wilayah yang saat ini didukung, lihat Wilayah yang didukung.

    Tip

    Nilai yang Anda berikan sebagai rahasia dalam langkah ini disimpan di akun GitHub Anda untuk digunakan dalam codespace ini dan yang akan datang. Variabel ditambahkan sebagai variabel lingkungan di terminal codespace, dan Anda dapat menggunakan variabel lingkungan tersebut dalam perintah CLI di bagian berikutnya.

    Selain itu, codespace ini membuat CLUSTER_NAME variabel lingkungan yang diatur dengan nama codespace.

  3. Pilih Buat ruang kode baru.

  4. Setelah codespace siap, pilih tombol menu di kiri atas, lalu pilih Buka di Visual Studio Code Desktop.

    Cuplikan layar yang memperlihatkan pembukaan codespace di Visual Studio Code Desktop.

  5. Jika diminta, instal ekstensi GitHub Codespaces untuk Visual Studio Code dan masuk ke GitHub.

  6. Di Visual Studio Code, pilih Tampilkan>Terminal.

    Gunakan terminal ini untuk menjalankan semua perintah CLI untuk mengelola kluster Anda.

Menyambungkan kluster ke Azure Arc

Untuk menyambungkan kluster Anda ke Azure Arc:

  1. Di terminal codespace Anda, masuk ke Azure CLI:

    az login
    

    Tip

    Jika Anda menggunakan lingkungan codespace GitHub di browser daripada desktop Visual Studio Code, menjalankan az login mengembalikan kesalahan localhost. Untuk memperbaiki kesalahan, baik:

    • Buka codespace di desktop VS Code, lalu kembali ke terminal browser dan jalankan az loginulang .
    • Atau, setelah Anda mendapatkan kesalahan localhost di browser, salin URL dari browser dan jalankan curl "<URL>" di tab terminal baru. Anda akan melihat respons JSON dengan pesan "Anda telah masuk ke Microsoft Azure!."
  2. Setelah Anda masuk, Azure CLI menampilkan semua langganan Anda dan menunjukkan langganan default Anda dengan tanda bintang *. Untuk melanjutkan langganan default Anda, pilih Enter. Jika tidak, ketik jumlah langganan Azure yang ingin Anda gunakan.

  3. Daftarkan penyedia sumber daya yang diperlukan di langganan Anda:

    Catatan

    Langkah ini hanya perlu dijalankan sekali per langganan. Untuk mendaftarkan penyedia sumber daya, Anda memerlukan izin untuk melakukan /register/action operasi, yang disertakan dalam peran Kontributor langganan dan Pemilik. Untuk informasi selengkapnya, lihat Penyedia dan jenis sumber daya Azure.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Gunakan perintah az group create untuk membuat grup sumber daya di langganan Azure Anda untuk menyimpan semua sumber daya:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP
    
  5. Gunakan perintah az connectedk8s connect ke Arc-enable kluster Kubernetes Anda dan kelola sebagai bagian dari grup sumber daya Azure Anda:

    az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Tip

    Nilai $CLUSTER_NAME secara otomatis diatur ke nama codespace Anda. Ganti variabel lingkungan jika Anda ingin menggunakan nama yang berbeda.

  6. objectId Dapatkan aplikasi ID Microsoft Entra yang digunakan layanan Azure Arc di penyewa Anda dan simpan sebagai variabel lingkungan. Jalankan perintah berikut persis seperti yang ditulis, tanpa mengubah nilai GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Gunakan perintah az connectedk8s enable-features untuk mengaktifkan dukungan lokasi kustom pada kluster Anda. Perintah ini menggunakan objectId aplikasi ID Microsoft Entra yang digunakan layanan Azure Arc. Jalankan perintah ini pada komputer tempat Anda menyebarkan kluster Kubernetes:

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Membuat akun penyimpanan dan registri skema

Registri skema adalah repositori yang disinkronkan yang menyimpan definisi pesan baik di cloud maupun di tepi. Operasi Azure IoT memerlukan registri skema pada kluster Anda. Registri skema memerlukan akun penyimpanan Azure untuk informasi skema yang disimpan di cloud.

Perintah untuk membuat registri skema di bagian ini memerlukan izin Microsoft.Authorization/roleAssignments/write di tingkat grup sumber daya. Izin ini digunakan untuk memberi registri skema peran kontributor sehingga dapat menulis ke akun penyimpanan.

Jalankan perintah CLI berikut di terminal Codespaces Anda.

  1. Atur variabel lingkungan untuk sumber daya yang Anda buat di bagian ini.

    Placeholder Nilai
    <STORAGE_ACCOUNT_NAME> Nama untuk akun penyimpanan Anda. Panjang nama akun penyimpanan harus antara 3 dan 24 karakter dan hanya berisi angka dan huruf kecil.
    <SCHEMA_REGISTRY_NAME> Nama untuk registri skema Anda. Nama registri skema hanya dapat berisi angka, huruf kecil, dan tanda hubung.
    <SCHEMA_REGISTRY_NAMESPACE> Nama untuk namespace registri skema Anda. Namespace secara unik mengidentifikasi registri skema dalam penyewa. Nama namespace registri skema hanya dapat berisi angka, huruf kecil, dan tanda hubung.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Buat akun penyimpanan dengan namespace hierarki diaktifkan.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Buat registri skema yang tersambung ke akun penyimpanan Anda. Perintah ini juga membuat kontainer blob yang disebut skema di akun penyimpanan.

    az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
    

Menyebarkan Operasi Azure IoT

Di bagian ini, Anda mengonfigurasi kluster dengan dependensi untuk komponen Operasi Azure IoT Anda, lalu menyebarkan Operasi Azure IoT.

Jalankan perintah CLI berikut di terminal Codespaces Anda.

  1. Inisialisasi kluster Anda untuk Operasi Azure IoT.

    Tip

    Perintah init hanya perlu dijalankan sekali per kluster. Jika Anda menggunakan kembali kluster yang sudah memiliki versi Operasi Azure IoT terbaru yang disebarkan di dalamnya, Anda dapat melewati langkah ini.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    

    Perintah ini mungkin memerlukan waktu beberapa menit untuk diselesaikan. Anda dapat melihat kemajuan dalam tampilan kemajuan penyebaran di terminal.

  2. Menyebarkan Operasi Azure IoT.

    az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance  --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id) --broker-frontend-replicas 1 --broker-frontend-workers 1  --broker-backend-part 1  --broker-backend-workers 1 --broker-backend-rf 2 --broker-mem-profile Low
    

    Perintah ini mungkin memerlukan waktu beberapa menit untuk diselesaikan. Anda dapat melihat kemajuan dalam tampilan kemajuan penyebaran di terminal.

    Jika Anda mendapatkan kesalahan yang mengatakan perangkat Anda harus dikelola untuk mengakses sumber daya Anda, jalankan az login lagi dan pastikan Anda masuk secara interaktif dengan browser.

Melihat sumber daya dalam kluster

Setelah penyebaran selesai, Anda dapat menggunakan perintah kubectl untuk mengamati perubahan pada kluster atau, karena kluster diaktifkan Arc, Anda dapat menggunakan portal Azure.

Untuk melihat pod pada kluster Anda, jalankan perintah berikut:

kubectl get pods -n azure-iot-operations

Untuk melihat sumber daya Anda di portal Azure, gunakan langkah-langkah berikut:

  1. Di portal Azure, buka grup sumber daya yang berisi instans Operasi Azure IoT Anda atau cari dan pilih Operasi Azure IoT.

  2. Pilih nama instans Azure IoT Operations Anda.

  3. Pada halaman Gambaran Umum instans Anda, pilih tab Ringkasan sumber daya untuk melihat status provisi sumber daya yang disebarkan ke kluster Anda.

    Cuplikan layar yang memperlihatkan instans Azure IoT Operations pada kluster berkemampuan Arc Anda.

Bagaimana kita memecahkan masalah?

Dalam mulai cepat ini, Anda mengonfigurasi kluster Kubernetes dengan dukungan Arc sehingga dapat berkomunikasi dengan aman dengan komponen Operasi Azure IoT Anda. Kemudian, Anda menyebarkan komponen tersebut ke kluster Anda. Untuk skenario pengujian ini, Anda memiliki satu kluster Kubernetes yang berjalan di Codespaces. Namun, dalam skenario produksi, Anda dapat menggunakan langkah yang sama untuk menyebarkan beban kerja ke banyak kluster di banyak situs.

Membersihkan sumber daya

Jika Anda melanjutkan ke mulai cepat berikutnya, simpan semua sumber daya Anda.

Jika Anda ingin menghapus penyebaran Operasi Azure IoT tetapi mempertahankan kluster Anda, gunakan perintah az iot ops delete :

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Jika Anda ingin menghapus semua sumber daya yang Anda buat untuk mulai cepat ini, hapus kluster Kubernetes tempat Anda menyebarkan Operasi Azure IoT lalu hapus grup sumber daya Azure yang berisi kluster.

Jika Anda menggunakan Codespace untuk mulai cepat ini, hapus Codespace Anda dari GitHub.

Langkah selanjutnya