Bagikan melalui


Menginstal ekstensi Event Grid pada kluster Kubernetes dengan dukungan Azure Arc

Artikel ini memandu Anda melalui langkah-langkah untuk menginstal Event Grid pada kluster Kubernetes yang mendukung Azure Arc.

Untuk keringkasan, artikel ini mengacu pada "Event Grid pada ekstensi Kubernetes" sebagai "Event Grid on Kubernetes" atau hanya "Event Grid".

Penting

Event Grid di Kubernetes dengan Azure Arc saat ini sedang dalam pratinjau publik. Versi pratinjau ini diberikan tanpa perjanjian tingkat layanan dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Distribusi Kubernetes yang didukung

Berikut ini adalah distribusi Kubernetes yang didukung di mana Event Grid dapat disebarkan dan dijalankan.

  1. Distribusi Kubernetes yang mendukung Azure AKS.
  2. Platform Kontainer OpenShift RedHat.

Ekstensi Event Grid

Operasi yang menginstal instans layanan Event Grid pada kluster Kubernetes adalah pembuatan ekstensi kluster Azure Arc, yang menyebarkan broker Event Grid dan operator Event Grid. Untuk informasi lebih lanjut tentang fungsi broker dan operator, lihat Event Grid pada komponen Kubernetes. Fitur ekstensi kluster Azure Arc menyediakan manajemen siklus hidup menggunakan operasi sarana kontrol Azure Resource Manager (ARM) ke Event Grid yang disebarkan ke kluster Kubernetes dengan dukungan Azure Arc.

Catatan

Versi pratinjau dari layanan ini hanya mendukung satu instans ekstensi Event Grid pada kluster Kubernetes karena ekstensi Event Grid saat ini didefinisikan sebagai ekstensi cluster-scoped. Namun, tidak ada dukungan untuk penerapan cakupan ruang nama untuk Event Grid yang memungkinkan beberapa instans diterapkan ke kluster. Untuk informasi selengkapnya, lihat Cakupan ekstensi.

Prasyarat

Sebelum melanjutkan dengan instalasi Event Grid, pastikan prasyarat berikut terpenuhi.

  1. Kluster yang berjalan pada salah satu distribusi Kubernetes yang didukung.
  2. Langganan Azure.
  3. Sertifikat PKI yang akan digunakan untuk membuat koneksi HTTPS dengan broker Event Grid.
  4. Menyambungkan kluster Anda ke Azure Arc.

Mendapatkan dukungan

Jika Anda mengalami masalah, lihat bagian Pemecahan Masalah untuk mendapatkan bantuan terkait kondisi umum. Jika Anda masih mengalami masalah, buat permintaan dukungan Azure.

Persyaratan sertifikat PKI

Broker Event Grid (server) melayani dua jenis klien. Autentikasi server dilakukan menggunakan Sertifikat. Autentikasi klien dilakukan menggunakan sertifikat atau kunci SAS berdasarkan jenis klien.

  • Operator Event Grid yang membuat permintaan sarana kontrol ke broker Event Grid diautentikasi menggunakan sertifikat.
  • Penerbit Event Grid bahwa kejadian penerbit ke topik event grid diautentikasi dengan kunci SAS topik.

Untuk menjalin komunikasi HTTPS yang aman dengan broker Event Grid dan operator Event Grid, kami menggunakan Sertifikat PKI selama pemasangan ekstensi Event Grid. Berikut adalah persyaratan umum untuk sertifikat PKI ini:

  1. Sertifikat dan kunci harus sertifikat X.509 dan PEM Privacy Enhanced Mail dikodekan.

  2. Untuk mengonfigurasi sertifikat broker Event Grid (server) selama instalasi, Anda harus menyediakan:

    1. Sertifikat CA
    2. Sertifikat publik
    3. Kunci privat
  3. Untuk mengonfigurasi sertifikat operator Event Grid (klien), Anda harus menyediakan:

    1. Sertifikat CA
    2. Sertifikat publik
    3. Kunci privat

    Klien penerbitan dapat menggunakan sertifikat CA broker Event Grid untuk memvalidasi server saat menerbitkan peristiwa ke sebuah topik.

    Penting

    Meskipun domain yang terkait dengan klien mungkin memiliki lebih dari satu sertifikat publik yang dikeluarkan oleh otoritas sertifikat yang berbeda, Event Grid di Kubernetes hanya memungkinkan pengunggahan satu sertifikat CA untuk klien saat menginstal Event Grid. Sebagai konsekuensinya, sertifikat untuk operator Event Grid harus dikeluarkan (ditandatangani) oleh CA yang sama agar validasi rantai sertifikat berhasil dan sesi TLS berhasil dibuat.

  4. Saat mengonfigurasi Nama Umum (CN) untuk sertifikat server dan klien, pastikan mereka berbeda dengan CN yang disediakan untuk sertifikat Otoritas Sertifikat.

    Penting

    Untuk tahap bukti konsep awal, sertifikat yang ditandatangani sendiri mungkin merupakan opsi tetapi secara umum, sertifikat PKI yang tepat yang ditandatangani oleh Otoritas Sertifikat (CA) harus diperoleh dan digunakan.

Instal menggunakan portal Microsoft Azure

  1. Di portal Microsoft Azure, cari (bidang di atas) untuk Azure Arc

  2. Pilih kluster Kubernetes pada menu sebelah kiri di bagian Infrastruktur

  3. Di bawah daftar kluster, temukan kluster yang ingin Anda instal Event Grid, dan pilih. Halaman Gambaran Umum untuk kluster ditampilkan.

    Pilih kluster Kubernetes Anda

  4. Pilih Ekstensi di grup Pengaturan di menu sebelah kiri.

  5. Pilih + Tambahkan. Halaman yang menampilkan ekstensi Azure Arc Kubernetes yang tersedia ditampilkan.

    Ekstensi kluster - Tombol Tambah

  6. Pada halaman Sumber Daya baru, pilih Event Grid pada Ekstensi Kubernetes.

    Pilih Event Grid di ekstensi Kubernetes

  7. Pada Event Grid pada halaman Ekstensi Kubernetes, pilih Buat.

    Pilih Buat ekstensi Kubernetes

  8. Tab Dasar-Dasar dari halaman Instal Event Grid, ikuti langkah-langkah ini.

    1. Bagian Detail Proyek memperlihatkan nilai langganan dan grup sumber daya baca-saja karena ekstensi Azure Arc disebarkan di bawah grup langganan dan sumber daya Azure yang sama dari kluster tersambung tempat mereka diinstal.

    2. Berikan nama di bidang nama ekstensi Event Grid. Nama ini harus unik di antara ekstensi Arc Azure lainnya yang diterapkan ke kluster yang terhubung dengan Azure Arc yang sama.

    3. Untuk namespace layanan Rilis, Anda mungkin ingin memberikan nama namespace Kubernetes tempat komponen Event Grid akan disebarkan. Misalnya, Anda mungkin ingin memiliki namespace tunggal untuk semua layanan berkemampuan Azure Arc yang diterapkan ke kluster Anda. Defaultnya adalah eventgrid-system. Jika namespace yang disediakan tidak ada, itu dibuat untuk Anda.

    4. Pada bagian detail broker Event Grid, jenis layanan ditampilkan. Broker Event Grid, yang merupakan komponen yang memaparkan titik akhir topik tempat peristiwa dikirim, diekspos sebagai tipe layanan Kubernetes ClusterIP. Oleh karena itu, IP yang ditetapkan untuk semua topik menggunakan ruang IP pribadi yang dikonfigurasi untuk kluster.

    5. Berikan nama kelas penyimpanan yang ingin digunakan untuk broker dan didukung oleh distribusi Kubernetes Anda. Misalnya, jika Anda menggunakan AKS, Anda dapat menggunakan azurefile, yang menggunakan penyimpanan Azure Standard. Untuk informasi selengkapnya tentang kelas penyimpanan yang telah ditentukan sebelumnya yang didukung oleh AKS, lihat Kelas Penyimpanan di AKS. Jika Anda menggunakan distribusi Kubernetes lain, lihat dokumentasi distribusi Kubernetes Anda untuk kelas penyimpanan standar yang didukung atau cara Anda dapat menyediakannya sendiri.

    6. Ukuran penyimpanan. Defaultnya adalah 1 GiB. Pertimbangkan tingkat penyerapan saat menentukan ukuran penyimpanan Anda. Tingkat penyerapan dalam MiB/detik diukur sebagai ukuran peristiwa Anda kali tingkat penerbitan (peristiwa per detik) di semua topik di broker Event Grid adalah faktor kunci saat mengalokasikan penyimpanan. Kejadian bersifat sementara dan setelah dikirimkan, tidak ada konsumsi penyimpanan untuk kejadian tersebut. Meskipun tingkat penyerapan adalah pendorong utama untuk penggunaan penyimpanan, itu bukan satu-satunya. Metadata yang memegang topik dan konfigurasi langganan peristiwa juga menggunakan ruang penyimpanan, tetapi biasanya membutuhkan jumlah ruang penyimpanan yang lebih rendah daripada peristiwa yang disines dan dikirimkan oleh Event Grid.

    7. Batas memori. Defaultnya adalah 1 GiB.

    8. Permintaan memori. Defaultnya adalah 200 MiB. Bidang ini tidak dapat diedit.

      Instal ekstensi Event Grid - Halaman dasar

    9. Pilih Berikutnya: Konfigurasi di bagian bawah halaman.

  9. Di tab Konfigurasi dari halaman Instal Event Grid, lakukan langkah-langkah berikut ini:

    1. Fungsikan komunikasi HTTP (tidak aman) . Centang kotak ini jika Anda ingin menggunakan saluran yang tidak aman saat klien berkomunikasi dengan broker Event Grid.

      Penting

      Mengaktifkan opsi ini membuat komunikasi dengan broker Event Grid untuk menggunakan HTTP sebagai transportasi. Oleh karena itu, setiap klien penerbitan dan operator Event Grid tidak akan berkomunikasi dengan broker Event Grid dengan aman. Anda harus menggunakan opsi ini hanya selama tahap awal pengembangan.

    2. Jika Anda tidak mengaktifkan komunikasi HTTP, pilih masing-masing file sertifikat PKI yang Anda peroleh dan penuhi persyaratan sertifikat PKI.

      Instal ekstensi Event Grid - Halaman konfigurasi

    3. Pilih Berikutnya: Pemantauan di bagian bawah halaman.

  10. Di tab Pemantauan dari halaman Instal Event Grid, lakukan langkah-langkah berikut ini:

    1. Pilih Aktifkan metrik (opsional). Jika Anda memilih opsi ini, Event Grid pada Kubernetes memaparkan metrik untuk topik dan langganan acara menggunakan format eksposisi Prometheus.

      Instal ekstensi Event Grid - Halaman pemantauan

    2. Pilih Berikutnya: Tag untuk menavigasi ke halaman Tag.

  11. Pada halaman Tag, lakukan langkah-langkah berikut ini:

    1. Tentukan tag, jika diperlukan.

      Instal ekstensi Event Grid - Halaman tag

    2. Pilih Tinjau + buat di bagian bawah halaman.

  12. Di tab Tinjau + buat, pilih Buat.

    Instal ekstensi Event Grid - Tinjau dan Buat halaman

    Penting

    Penginstalan Event Grid adalah operasi asinkron yang mungkin berjalan lebih lama di kluster Kubernetes daripada saat Anda melihat pemberitahuan di Portal Microsoft Azure yang menginformasikan bahwa penerapan telah selesai. Tunggu setidaknya 5 menit setelah Anda melihat pemberitahuan bahwa "Penyebaran Anda selesai" sebelum mencoba membuat lokasi kustom (langkah berikutnya). Jika Anda memiliki akses ke kluster Kubernetes, pada sesi bash Anda dapat menjalankan perintah berikut untuk memvalidasi apakah broker Event Grid dan pod operator Event Grid dalam status Running, yang menunjukkan bahwa instalasi telah selesai:

    kubectl get pods -n \<release-namespace-name\>
    

    Berikut sampel outputnya:

    NAME                                  READY   STATUS    RESTARTS   AGE
    eventgrid-broker-568f75976-wxkd2      1/1     Running   0          2m28s
    eventgrid-operator-6c4c6c675d-ttjv5   1/1     Running   0          2m28s    
    

    Penting

    Lokasi Kustom perlu dibuat sebelum mencoba menyebarkan topik Event Grid. Untuk membuat lokasi kustom, Anda dapat memilih halaman Konteks di bagian bawah 5 menit setelah pemberitahuan "Penyebaran Anda selesai". Atau, Anda dapat membuat lokasi kustom menggunakan portal Microsoft Azure. Untuk informasi selengkapnya, lihat dokumentasi Lokasi Kustom.

  13. Setelah penyebaran berhasil, Anda akan dapat melihat entri di halaman Ekstensi dengan nama yang Anda berikan ke ekstensi Event Grid Anda. Jika Anda melihat Status penginstalantertunda, tunggu beberapa menit, lalu pilih Refresh pada toolbar.

    Ekstensi Event Grid - diinstal

Instal menggunakan Azure CLI

  1. Memulai sesi shell. Anda dapat memulai sesi di komputer Anda atau Anda dapat membuka browser ke https://shell.azure.com.

  2. Membuat file konfigurasi protected-settings-extension.json. File ini diteruskan sebagai parameter saat membuat ekstensi Event Grid.

    Dalam perintah berikut dan di setiap baris konfigurasi, ganti filename dengan nama yang berisi sertifikat publik, sertifikat CA, atau kunci untuk operator (klien) atau broker (server), yang sesuai. Semua sertifikat yang disediakan harus dikodekan dengan basis64 tanpa pembungkus baris. Oleh karena itu, penggunaan perintah base64 --wrap=0.

    echo "{ 
        \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityKey\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityCaCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridbroker.service.tls.base64EncodedServerCert\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerKey\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerCaCert\":  \"$(base64 <filename> --wrap=0)\" 
    }" > protected-settings-extension.json 
    

    Misalnya, jika sertifikat publik untuk broker (item konfigurasi pertama di atas) dipanggil client.cer, maka baris konfigurasi pertama akan terlihat seperti yang berikut:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Membuat file konfigurasi settings-extension.json. File ini diteruskan sebagai parameter saat membuat ekstensi Event Grid.

    Penting

    Anda tidak boleh mengubah nilai untuk ServiceAccount dan serviceType. Selama versi pratinjau, satu-satunya tipe layanan Kubernetes yang didukung adalah ClusterIP.

    Untuk storageClassName sediakan kelas penyimpanan yang ingin Anda gunakan untuk broker dan yang didukung oleh distribusi Kubernetes Anda. Misalnya, jika Anda menggunakan AKS, Anda dapat menggunakan azurefile , yang menggunakan penyimpanan Azure Standard. Untuk informasi selengkapnya tentang kelas penyimpanan yang telah ditentukan sebelumnya yang didukung oleh AKS, lihat Kelas Penyimpanan di AKS. Jika Anda menggunakan distribusi Kubernetes lain, lihat dokumentasi distribusi Kubernetes Anda untuk kelas penyimpanan standar yang didukung atau cara Anda dapat menyediakannya sendiri.

    Atur reporterType ke prometheus untuk mengaktifkan metrik untuk topik dan langganan acara menggunakan format eksposisi Prometheus.

    Penting

    Selama versi pratinjau, menggunakan klien Prometheus adalah satu-satunya mekanisme yang didukung untuk mendapatkan metrik.

    echo "{
        \"Microsoft.CustomLocation.ServiceAccount\":\"eventgrid-operator\",
        \"eventgridbroker.service.serviceType\": \"ClusterIP\",
        \"eventgridbroker.dataStorage.storageClassName\": \"<storage_class_name>\",
        \"eventgridbroker.diagnostics.metrics.reporterType\":\"prometheus\"
    }" > settings-extension.json
    
  4. Buat ekstensi Kubernetes yang menginstal komponen Event Grid pada kluster Anda.

    Untuk parameter cluster-name dan resource-group, Anda harus menggunakan nama yang sama yang disediakan saat Anda menyambungkan kluster Anda ke Azure Arc.

    release-namespace adalah namespace tempat komponen Event Grid akan digunakan. Defaultnya adalah eventgrid-system. Anda mungkin ingin menyediakan nilai untuk menimpa default. Misalnya, Anda mungkin ingin memiliki namespace tunggal untuk semua layanan berkemampuan Azure Arc yang diterapkan ke kluster Anda. Jika namespace yang disediakan tidak ada, itu dibuat untuk Anda.

    Penting

    Selama versi pratinjau, adalah cluster satu-satunya lingkup yang didukung saat membuat atau memperbarui ekstensi Event Grid. Itu berarti layanan hanya mendukung satu instans ekstensi Event Grid pada kluster Kubernetes. Belum ada dukungan untuk penyebaran yang tercakup dalam namespace. Untuk informasi selengkapnya, lihat Cakupan ekstensi.

    az k8s-extension create \
        --cluster-type connectedClusters \
        --cluster-name <connected_cluster_name> \
        --resource-group <resource_group_of_connected_cluster> \
        --name <event_grid_extension_name> \
        --extension-type Microsoft.EventGrid \
        --scope cluster \
        --auto-upgrade-minor-version true \
        --release-train Stable \
        --release-namespace <namespace_name> \
        --configuration-protected-settings-file protected-settings-extension.json \
        --configuration-settings-file settings-extension.json    
    

    Untuk informasi selengkapnya tentang perintah CLI, lihat az k8s-extension create. Perhatikan bahwa Anda dapat menggunakan parameter --config-file untuk meneruskan nama file json yang berisi informasi konfigurasi yang terkait dengan Event Grid. Untuk mendukung HTTP, sertakan pengaturan berikut.

    "eventgridbroker.service.supportedProtocols[0]": "http" 
    

    Berikut adalah contoh settings-extension.json dengan pengaturan di atas.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Validasi bahwa ekstensi Event Grid telah berhasil diinstal.

    az k8s-extension show  --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
    

    Properti installedState harus Installed jika komponen ekstensi Event Grid berhasil disebarkan.

Lokasi kustom

Penting

Lokasi Kustom perlu dibuat sebelum mencoba menyebarkan topik Event Grid. Anda dapat membuat lokasi kustom menggunakan portal Microsoft Azure.

Pemecahan Masalah

Masalah kluster Azure Arc connect

Masalah: Saat Anda menavigasi ke Azure Arc dan memilih kluster Kubernetes di menu sebelah kiri, halaman yang ditampilkan tidak menampilkan kluster Kubernetes tempat saya berniat menginstal Event Grid.

Resolusi: Kluster Kubernetes Anda tidak terdaftar di Azure. Ikuti langkah-langkah dalam artikel Menyambungkan kluster Kubernetes yang ada ke Azure Arc. Jika Anda mengalami masalah selama langkah ini, ajukan permintaan dukungan dengan tim Kubernetes dengan dukungan Azure Arc.

Masalah ekstensi Event Grid

Masalah: Ketika mencoba menginstal "Ekstensi Event Grid", Anda mendapatkan pesan berikut: "Operasi tidak valid - Instans Event Grid telah diinstal pada kluster Kubernetes yang terhubung ini. Ekstensi Event Grid tercakup di tingkat kluster, yang berarti hanya satu instans yang dapat diinstal pada kluster."

Penjelasan: Anda sudah menginstal Event Grid. Versi pratinjau Event Grid hanya mendukung satu instans ekstensi Event Grid yang diterapkan ke kluster.

Langkah berikutnya

Buat lokasi khusus dan kemudian ikuti petunjuk dalam acara cloud Route mulai cepat ke Webhooks dengan Azure Event Grid di Kubernetes.