Azure Arc özellikli Kubernetes kümesine Event Grid uzantısını yükleme

Bu makale, Event Grid'i Azure Arc özellikli kubernetes kümesine yükleme adımlarında size yol gösterir.

Kısa bir ifadeyle, bu makalede "Kubernetes'te Event Grid uzantısı" "Kubernetes'te Event Grid" veya yalnızca "Event Grid" ifadeleri yer alır.

Önemli

Azure Arc ile Kubernetes üzerinde Event Grid şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yüklerinde kullanılması önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Desteklenen Kubernetes dağıtımları

Event Grid'in dağıtılıp çalıştırılabildiği desteklenen Kubernetes dağıtımları aşağıdadır.

  1. Azure AKS tarafından desteklenen Kubernetes dağıtımları.
  2. RedHat OpenShift Kapsayıcı Platformu.

Event Grid Uzantısı

Bir Event Grid hizmet örneğini Kubernetes kümesine yükleyen işlem, hem Event Grid aracısı hem de Event Grid işleci dağıtan bir Azure Arc kümesi uzantısının oluşturulmasıdır. Aracı ve işlecin işlevi hakkında daha fazla bilgi için bkz. Kubernetes bileşenlerinde Event Grid. Azure Arc kümesi uzantısı özelliği, Azure Arc özellikli Kubernetes kümelerine dağıtılan Event Grid'e Azure Resource Manager (ARM) denetim düzlemi işlemlerini kullanarak yaşam döngüsü yönetimi sağlar.

Not

Event Grid uzantısı şu anda küme kapsamlı bir uzantı olarak tanımlandığından, hizmetin önizleme sürümü Kubernetes kümesindeki Event Grid uzantısının yalnızca tek bir örneğini destekler. Event Grid için bir kümeye birden çok örneğin dağıtılması için henüz ad alanı kapsamlı dağıtım desteği yoktur. Daha fazla bilgi için bkz . Uzantı kapsamı.

Önkoşullar

Event Grid yüklemesine devam etmeden önce aşağıdaki önkoşulların karşılandığından emin olun.

  1. Desteklenen Kubernetes dağıtımlarından birinde çalışan bir küme.
  2. Bir Azure aboneliği.
  3. Event Grid aracısı ile HTTPS bağlantısı kurmak için kullanılacak PKI Sertifikaları.
  4. Kümenizi Azure Arc'a bağlayın.

Destek alma

Bir sorunla karşılaşırsanız yaygın koşullarla ilgili yardım için Sorun Giderme bölümüne bakın. Sorun yaşamaya devam ediyorsanız bir Azure desteği isteği oluşturun.

PKI Sertifika gereksinimleri

Event Grid aracısı (sunucu) iki tür istemciye hizmet eder. Sunucu kimlik doğrulaması Sertifikalar kullanılarak yapılır. İstemci kimlik doğrulaması, istemci türüne göre sertifikalar veya SAS anahtarları kullanılarak gerçekleştirilir.

  • Event Grid aracısına denetim düzlemi isteklerinde bulunan Event Grid işleçlerinin kimliği sertifikalar kullanılarak doğrulanır.
  • Event Grid konu başlığındaki olayları yayımlayan Event Grid yayımcılarının kimliği, konunun SAS anahtarlarıyla doğrulanır.

Event Grid aracısı ve Event Grid işleciyle güvenli bir HTTPS iletişimi kurmak için, Event Grid uzantısının yüklenmesi sırasında PKI Sertifikalarını kullanırız. Bu PKI sertifikaları için genel gereksinimler şunlardır:

  1. Sertifikalar ve anahtarlar X.509 sertifikaları ve Gizlilikle Geliştirilmiş Posta PEM kodlanmış olmalıdır.

  2. Yükleme sırasında Event Grid aracısı (sunucu) sertifikasını yapılandırmak için şunları sağlamanız gerekir:

    1. CA sertifikası
    2. Ortak sertifika
    3. Özel anahtar
  3. Event Grid işleci (istemci) sertifikasını yapılandırmak için şunları sağlamanız gerekir:

    1. CA sertifikası
    2. Ortak sertifika
    3. Özel anahtar

    Yayımlama istemcileri, olayları bir konuya yayımlarken sunucuyu doğrulamak için Event Grid aracısı CA sertifikasını kullanabilir.

    Önemli

    İstemciyle ilişkilendirilmiş bir etki alanının farklı sertifika yetkilileri tarafından verilen birden fazla ortak sertifikası olabilir ancak Kubernetes'te Event Grid, Event Grid'i yüklerken istemciler için yalnızca tek bir CA sertifikasının karşıya yüklenmesine izin verir. Sonuç olarak, sertifika zinciri doğrulamasının başarılı olması ve bir TLS oturumunun başarıyla kurulması için Event Grid işlecine yönelik sertifikaların aynı CA tarafından verilmesi (imzalanması) gerekir.

  4. Sunucu ve istemci sertifikaları için Ortak Ad'ı (CN) yapılandırırken, sertifika yetkilisi sertifikası için sağlanan CN'lerden farklı olduklarından emin olun.

    Önemli

    Kavram kanıtının erken aşamalarında, otomatik olarak imzalanan sertifikalar bir seçenek olabilir, ancak genel olarak, Sertifika Yetkilisi (CA) tarafından imzalanan uygun PKI sertifikaları temin edilmeli ve kullanılmalıdır.

Azure portal kullanarak yükleme

  1. Azure portal Azure Arc için arama (üstteki alan)

  2. Altyapı bölümündeki sol taraftaki menüden Kubernetes kümesi'ni seçin

  3. Küme listesinin altında Event Grid'i yüklemek istediğiniz kümeyi bulun ve seçin. Kümenin Genel Bakış sayfası görüntülenir.

    Kubernetes kümenizi seçin

  4. Soldaki menüden Ayarlar grubunda Uzantılar'ı seçin.

  5. + Ekle'yi seçin. Kullanılabilir Azure Arc Kubernetes uzantılarını gösteren bir sayfa görüntülenir.

    Küme uzantıları - Ekle düğmesi

  6. Yeni kaynak sayfasında Kubernetes Uzantısı'nda Event Grid'i seçin.

    Kubernetes uzantısında Event Grid'i seçin

  7. Kubernetes Uzantısı'nda Event Grid sayfasında Oluştur'u seçin.

    Kubernetes uzantısı oluştur'u seçin

  8. Event Grid'i Yükleme sayfasının Temel Bilgiler sekmesinde aşağıdaki adımları izleyin.

    1. Azure Arc uzantıları, yüklendikleri bağlı kümenin aynı Azure aboneliği ve kaynak grubu altında dağıtıldığından , Proje Ayrıntıları bölümünde salt okunur abonelik ve kaynak grubu değerleri gösterilir.

    2. Event Grid uzantısı adı alanına bir ad girin. Bu ad, aynı Azure Arc bağlı kümesine dağıtılan diğer Azure Arc uzantıları arasında benzersiz olmalıdır.

    3. Yayın ad alanı için Event Grid bileşenlerinin dağıtılacağı Kubernetes ad alanının adını sağlamak isteyebilirsiniz. Örneğin, kümenize dağıtılan tüm Azure Arc özellikli hizmetler için tek bir ad alanına sahip olmak isteyebilirsiniz. Varsayılan değer eventgrid-system'dir. Sağlanan ad alanı yoksa sizin için oluşturulur.

    4. Event Grid aracısı ayrıntıları bölümünde hizmet türü gösterilir. Olayların gönderildiği konu uç noktalarını kullanıma sunan bileşen olan Event Grid aracısı, ClusterIP kubernetes hizmet türü olarak kullanıma sunulur. Bu nedenle, tüm konulara atanan IP'ler küme için yapılandırılmış özel IP alanını kullanır.

    5. Aracı için kullanmak istediğiniz ve Kubernetes dağıtımınız tarafından desteklenen depolama sınıfı adını belirtin. Örneğin AKS kullanıyorsanız Azure Standart depolamayı kullanan kullanabilirsiniz azurefile. AKS tarafından desteklenen önceden tanımlanmış depolama sınıfları hakkında daha fazla bilgi için bkz. AKS'de Depolama Sınıfları. Diğer Kubernetes dağıtımlarını kullanıyorsanız desteklenen önceden tanımlanmış depolama sınıfları için Kubernetes dağıtım belgelerinize veya kendi depolama sınıflarınızı sağlama yönteminize bakın.

    6. Depolama boyutu. Varsayılan değer 1 GiB'dir. Depolama alanınızın boyutunu belirlerken alım hızını göz önünde bulundurun. Olaylarınızın boyutu, Event Grid aracısında yer alan tüm konularda yayımlama hızının (saniyedeki olaylar) çarpımı olarak ölçülen MiB/saniye cinsinden alım oranı, depolama alanı ayrılırken önemli bir faktördür. Olaylar doğası gereği geçicidir ve teslim edildikten sonra bu olaylar için depolama tüketimi olmaz. Alım hızı depolama kullanımı için ana etmen olsa da, tek sürücü bu değildir. Konu başlığını ve olay aboneliği yapılandırmasını tutan meta veriler de depolama alanı kullanır, ancak bu normalde Event Grid tarafından alınan ve teslim edilen olaylardan daha düşük bir depolama alanı gerektirir.

    7. Bellek sınırı. Varsayılan değer 1 GiB'dir.

    8. Bellek isteği. Varsayılan değer 200 MiB'dir. Bu alan düzenlenemez.

      Event Grid uzantısını yükleme - Temel bilgiler sayfası

    9. Sayfanın alt kısmındaki İleri: Yapılandırma'ya tıklayın.

  9. Event Grid'i Yükle sayfasının Yapılandırma sekmesinde aşağıdaki adımları uygulayın:

    1. HTTP (güvenli değil) iletişimi etkinleştirin. İstemciler Event Grid aracısı ile iletişim kurarken güvenli olmayan bir kanal kullanmak istiyorsanız bu kutuyu işaretleyin.

      Önemli

      Bu seçeneğin etkinleştirilmesi Event Grid aracısıyla iletişimin aktarım olarak HTTP kullanmasını sağlar. Bu nedenle, herhangi bir yayımlama istemcisi ve Event Grid işleci Event Grid aracısı ile güvenli bir şekilde iletişim kurmaz. Bu seçeneği yalnızca geliştirmenin ilk aşamalarında kullanmanız gerekir.

    2. HTTP iletişimini etkinleştirmediyseniz, temin ettiğiniz PKI sertifika dosyalarının her birini seçin ve PKI sertifika gereksinimlerini karşılayın.

      Event Grid uzantısını yükleme - Yapılandırma sayfası

    3. Sayfanın alt kısmındaki Sonraki: İzleme'yi seçin.

  10. Event Grid'i Yükle sayfasının İzleme sekmesinde aşağıdaki adımları uygulayın:

    1. Ölçümleri etkinleştir 'i seçin (isteğe bağlı). Bu seçeneği belirtirseniz Kubernetes'te Event Grid, Prometheus edat biçimini kullanarak konu başlıkları ve olay abonelikleri için ölçümleri kullanıma sunar.

      Event Grid uzantısını yükleme - İzleme sayfası

    2. Etiketler sayfasına gitmek için İleri: Etiketler'i seçin.

  11. Etiketler sayfasında aşağıdaki adımları uygulayın:

    1. Gerekirse etiketleri tanımlayın.

      Event Grid uzantısını yükleme - Etiketler sayfası

    2. Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.

  12. Gözden Geçir ve oluştur sekmesinde Oluştur'u seçin.

    Event Grid uzantısını yükleme - Gözden Geçir ve Oluştur sayfası

    Önemli

    Event Grid yüklemesi, Azure Portal'da dağıtımın tamamlandığını bildiren bir bildirim gördüğünüz zamandan daha uzun süre Kubernetes kümesinde çalışabilen zaman uyumsuz bir işlemdir. Özel bir konum oluşturmaya çalışmadan önce "Dağıtımınız tamamlandı" bildirimini gördükkten sonra en az 5 dakika bekleyin (sonraki adım). Kubernetes kümesine erişiminiz varsa, bir bash oturumunda Event Grid aracısının ve Event Grid işleci podlarının Çalışıyor durumda olup olmadığını doğrulamak için aşağıdaki komutu yürütebilirsiniz; bu da yüklemenin tamamlandığını gösterir:

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

    Örnek çıktı şu şekildedir:

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

    Önemli

    Event Grid konularını dağıtmaya çalışmadan önce Özel Konum oluşturulmalıdır. Özel bir konum oluşturmak için, "Dağıtımınız tamamlandı" bildirimi gösterildikten sonraki en alt 5 dakika içinde Bağlam sayfasını seçebilirsiniz. Alternatif olarak, Azure portal kullanarak özel bir konum oluşturabilirsiniz. Daha fazla bilgi için Özel Konum belgelerine bakın.

  13. Dağıtım başarılı olduktan sonra , Uzantılar sayfasında Event Grid uzantınıza sağladığınız adı içeren bir giriş görebilirsiniz. Yükleme durumu için Beklemede ifadesini görüyorsanız birkaç dakika bekleyin ve araç çubuğunda Yenile'yi seçin.

    Event Grid uzantısı - yüklü

Azure CLI kullanarak yükleme

  1. Kabuk oturumu başlatın. Bilgisayarınızda oturum başlatabilir veya için bir tarayıcı https://shell.azure.comaçabilirsiniz.

  2. Yapılandırma dosyası protected-settings-extension.jsonoluşturun. Bu dosya Event Grid uzantısı oluşturulurken parametre olarak geçirilir.

    Aşağıdaki komutta ve yapılandırma satırlarının her birinde, işleç (istemci) veya aracı (sunucu) için genel sertifikayı, CA sertifikasını veya anahtarı içeren adla değiştirin filename . Sağlanan tüm sertifikalar, satır sarmalama olmadan base64 kodlanmış olmalıdır. Bu nedenle komutu kullanılır 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 
    

    Örneğin, aracı için genel sertifika (yukarıdaki ilk yapılandırma öğesi) olarak adlandırılırsa client.cer, ilk yapılandırma satırı aşağıdaki gibi görünmelidir:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Yapılandırma dosyası settings-extension.jsonoluşturun. Bu dosya Event Grid uzantısı oluşturulurken parametre olarak geçirilir.

    Önemli

    ve serviceTypedeğerlerini ServiceAccount değiştiremezsiniz. Önizleme sürümü sırasında desteklenen tek Kubernetes hizmet türü olur ClusterIP.

    Aracı storageClassName için kullanmak istediğiniz ve Kubernetes dağıtımınız tarafından desteklenen depolama sınıfını sağlamak için. Örneğin AKS kullanıyorsanız Azure Standart depolamayı kullanan kullanabilirsiniz azurefile . AKS tarafından desteklenen önceden tanımlanmış depolama sınıfları hakkında daha fazla bilgi için bkz. AKS'de Depolama Sınıfları. Diğer Kubernetes dağıtımlarını kullanıyorsanız desteklenen önceden tanımlanmış depolama sınıfları için Kubernetes dağıtım belgelerinize veya kendi depolama sınıflarınızı sağlama yönteminize bakın.

    prometheusPrometheus exposition biçimini kullanarak konu başlıkları ve olay abonelikleri için ölçümleri etkinleştirmek üzere olarak ayarlayınreporterType.

    Önemli

    Önizleme sürümü sırasında, ölçümleri almak için desteklenen tek mekanizma Prometheus istemcisi kullanmaktır.

    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. Kümenize Event Grid bileşenlerini yükleyen bir Kubernetes uzantısı oluşturun.

    ve resource-groupparametreleri cluster-name için, kümenizi Azure Arc'a bağlarken sağlanan adlarla aynı adları kullanmanız gerekir.

    release-namespace Event Grid bileşenlerinin dağıtılacağı ad alanıdır. Varsayılan değer eventgrid-system'dir. Varsayılanı geçersiz kılmak için bir değer sağlamak isteyebilirsiniz. Örneğin, kümenize dağıtılan tüm Azure Arc özellikli hizmetler için tek bir ad alanına sahip olmak isteyebilirsiniz. Sağlanan ad alanı yoksa sizin için oluşturulur.

    Önemli

    Önizleme sürümü sırasında, cluster Event Grid uzantısını oluştururken veya güncelleştirirken desteklenen tek kapsamdır. Bu, hizmetin Bir Kubernetes kümesinde Event Grid uzantısının yalnızca tek bir örneğini desteklediği anlamına gelir. Ad alanı kapsamlı dağıtımlar için henüz destek sağlanmamıştır. Daha fazla bilgi için bkz . Uzantı kapsamı.

    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    
    

    CLI komutu hakkında daha fazla bilgi için bkz. az k8s-extension create. Event Grid ile ilgili yapılandırma bilgilerini içeren bir json dosyasının adını geçirmek için parametresini kullanabileceğinize --config-file dikkat edin. HTTP'yi desteklemek için aşağıdaki ayarı ekleyin.

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

    Yukarıdaki ayara sahip bir örnek settings-extension.json aşağıda verilmiştır.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Event Grid uzantısının başarıyla yüklendiğini doğrulayın.

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

    Özellik, installedState Event Grid uzantısı bileşenlerinin başarıyla dağıtılması durumunda olmalıdır Installed .

Özel konum

Önemli

Event Grid konularını dağıtmaya çalışmadan önce Özel Konum oluşturulmalıdır. Azure portal kullanarak özel bir konum oluşturabilirsiniz.

Sorun giderme

Azure Arc connect küme sorunları

Sorun: Azure Arc'a gidip sol taraftaki menüden Kubernetes kümesi'ni seçtiğinizde, görüntülenen sayfada Event Grid'i yükleme amacım olan Kubernetes kümesi gösterilmiyor.

Çözüm: Kubernetes kümeniz Azure'a kayıtlı değil. Mevcut bir Kubernetes kümesini Azure Arc'a bağlama makalesindeki adımları izleyin. Bu adım sırasında bir sorun varsa Azure Arc özellikli Kubernetes ekibine bir destek isteği gönderin.

Event Grid uzantısı sorunları

Sorun: "Event Grid uzantısı" yüklemeye çalışırken şu iletiyi alıyorsunuz: "Geçersiz işlem - Bu bağlı Kubernetes kümesine Event Grid örneği zaten yüklenmiş. Event Grid uzantısının kapsamı küme düzeyindedir, yani bir kümeye yalnızca bir örnek yüklenebilir."

Açıklama: Event Grid zaten yüklü. Event Grid'in önizleme sürümü, kümeye dağıtılan yalnızca bir Event Grid uzantısı örneğini destekler.

Sonraki adımlar

Özel bir konum oluşturun ve kubernetes üzerinde Azure Event Grid ile bulut olaylarını Web kancalarına yönlendirme hızlı başlangıç yönergelerini izleyin.