Aracılığıyla paylaş


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 olması için, bu makale "Kubernetes'te Event Grid uzantısı"nı "Kubernetes'te Event Grid" veya yalnızca "Event Grid" olarak ifade eder.

Ö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 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 Kubernetes kümesine Event Grid hizmet örneği 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 operatörün 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

Hizmetin önizleme sürümü, Event Grid uzantısı şu anda küme kapsamlı bir uzantı olarak tanımlandığından, Kubernetes kümesinde 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. 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 Sertifikası 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 konusuna olayları yayımlayan Event Grid yayımcılarının kimlikleri konunun SAS anahtarlarıyla doğrulanır.

Event Grid aracısı ve Event Grid işleci ile 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ı CA sertifikasını kullanabilir.

    Önemli

    İstemciyle ilişkilendirilmiş bir etki alanında farklı sertifika yetkilileri tarafından verilen birden fazla ortak sertifika 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'ye göre 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ını kullanarak yükleme

  1. Azure portalında Azure Arc araması yapın (ü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 sekmesi 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 adlı bir 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 oranını göz önünde bulundurun. MiB/saniye cinsinden alım oranı, olaylarınızın boyutu Event Grid aracısında tüm konularda yayımlama hızının (saniyedeki olaylar) çarpımı olarak ölçülür, 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. Meta veri tutma konusu ve olay aboneliği yapılandırması da depolama alanı kullanır, ancak bu normalde Event Grid tarafından alınan ve teslim edilen olaylardan daha düşük miktarda 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ı ile 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 en altındaki İleri: İzleme'yi seçin.

  10. Event Grid Yükleme 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 belirlerseniz Kubernetes'te Event Grid, Prometheus exposition 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 + 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üzden 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ı ve Event Grid işleç podlarının Çalışıyor durumunda olup olmadığını doğrulamak için aşağıdaki komutu yürütebilirsiniz. Bu, 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 konum oluşturmak için, "Dağıtımınız tamamlandı" bildirimi gösterildikten 5 dakika sonra en alttaki Bağlam sayfasını seçebilirsiniz. Alternatif olarak, Azure portalını 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 girdi görebilirsiniz. Yükleme durumu için Beklemede ifadesini görürseniz 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 bir 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 değerini, işleç (istemci) veya aracı (sunucu) için genel sertifika, CA sertifikası veya anahtarı içeren adla değiştirin filename . Sağlanan tüm sertifikalar, satır kaydırma olmadan base64 kodlanmış olmalıdır. Bu nedenle komutunun base64 --wrap=0 kullanımı.

    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.

    için storageClassName , aracı için kullanmak istediğiniz ve Kubernetes dağıtımınız tarafından desteklenen depolama sınıfını sağlayın. Ö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.

    prometheus Prometheus exposition biçimini kullanarak konu başlıkları ve olay abonelikleri için ölçümleri etkinleştirmek için 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 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ı oluşturulurken veya güncelleştirilirken 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 --config-file ilgili yapılandırma bilgilerini içeren bir json dosyasının adını geçirmek için parametresini kullanabileceğinize dikkat edin. HTTP'yi desteklemek için aşağıdaki ayarı ekleyin.

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

    Yukarıdaki ayara sahip örnek bir 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>
    

    Özelliği, installedState Event Grid uzantısı bileşenleri başarıyla dağıtıldıysa olmalıdır Installed .

Özel konum

Önemli

Event Grid konularını dağıtmaya çalışmadan önce Özel Konum oluşturulmalıdır. Azure portalını 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ırsınız: "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.