Azure Kubernetes hizmeti (AKS) için davpr uzantısı (Önizleme)

Davpr , tüm geliştiricilerin bulut ve kenar üzerinde çalışan dayanıklı, durumsuz ve durum bilgisi olmayan uygulamalar oluşturmasını kolaylaştıran ve dillerin ve geliştirici çerçevelerinin çeşitliliğe açık olması için, taşınabilir ve olay odaklı bir çalışma zamanı. Bir sepet mimarisinin avantajlarından yararlanarak, Davpr, mikro hizmetler oluşturma ile gelen zorlukların üstesinden gelmenize yardımcı olur ve kod platformunuzu belirsiz şekilde korur. Özellikle, diğer hizmetleri güvenilir ve güvenli bir şekilde çağırma, yayın Sub ile olay odaklı uygulamalar oluşturma ve birden çok bulut hizmeti ve ana bilgisayar (ör. Kubernetes vs. a VM) üzerinde taşınabilir uygulamalar oluşturma hizmetleri etrafında sorunları çözmeye yardımcı olur.

Aks kümenizdeki Davpr 'yi sağlamak için AKS Davpr uzantısını kullanarak, Davpr araçları 'nı indirme ve AKS kümenizde çalışma zamanını el ile yükleme ve yönetme yükünü ortadan kaldıracaksınız. Ayrıca, uzantı basit komut satırı bağımsız değişkenleri aracılığıyla tüm Yerel Davpr yapılandırma özellikleri için destek sağlar.

Not

Bir Kubernetes üretim ortamında Davpr yüklemeyi planlıyorsanız, lütfen Üretim kullanımı belgeleri sayfasına yönelik newpr yönergelerine bakın.

Nasıl çalışır?

AKS Davpr uzantısı, AKS kümenizde Davpr denetim düzlemi sağlamak için Azure CLı 'yi kullanır. Bu işlem şunları oluşturur:

  • DAPR-operator: DAPR (durum depoları, pub/subs vb.) için bileşen güncelleştirmelerini ve Kubernetes hizmet uç noktalarını yönetir
  • davpr-sidecar-Injector: ınpr 'yi açıklamalı dağıtım parçalara ayırır ve ortam değişkenlerini ekler DAPR_HTTP_PORT ve DAPR_GRPC_PORT Kullanıcı tanımlı uygulamaların, sabit kodlu bağlantı noktası değerleri olmadan davpr ile kolayca iletişim kurmasını sağlar.
  • davpr-yerleştirme: yalnızca aktörler için kullanılır. Aktör örneklerini Pod ile eşleyen eşleme tabloları oluşturur
  • davpr-Sentry: hizmetler arasında MTLS 'yi yönetir ve sertifika yetkilisi görevi görür. Daha fazla bilgi için Güvenliğe genel bakışkonusunu okuyun.

AKS kümenize bir DAPR yüklendikten sonra, uygulama hizmetleriniz artık birlikte çalışan DAPR dışarıdan yükleme ' ye sahip olur. Bu, Bapr yapı blok API 'Lerini kullanmaya hemen başlayabilmenizi sağlar. Yapı blok API 'Lerine yönelik daha ayrıntılı bir genel bakış ve bunları en iyi şekilde kullanma hakkında daha fazla bilgi için lütfen bkz. Davpr derleme bloklarına genel bakış.

Uyarı

AKS uzantısı aracılığıyla Davpr 'yi yüklerseniz, anmımızda, napr CLı yerine, daha sonraki bir iç isteği yönetimi için uzantıyı kullanmaya devam etmeniz gerekir. İki aracı birleştirmek çakışmaya neden olabilir ve istenmeyen davranışa yol açabilir.

Desteklenen Kubernetes sürümleri

Davpr uzantısı, AKS ile aynı destek penceresini kullanır. Daha fazla bilgi için bkz. Kubernetes sürüm destek ilkesi.

Ön koşullar

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Azure CLI 'nın en son sürümünü ve aks-Preview uzantısını yükler.
  • Henüz bir tane yoksa bir aks kümesioluşturmanız gerekir.

AKS-ExtensionManagerVe AKS-Dapr Önizleme özelliklerini kaydetme

Önemli

AKS önizleme özellikleri self servis, kabul etme temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinden ve sınırlı garantiden dışlanmıştır. AKS önizlemeleri en iyi çaba temelinde müşteri desteği kapsamındadır. Bu nedenle bu özellikler üretimde kullanım için uygun değil. Daha fazla bilgi için aşağıdaki destek makalelerini okuyun:

DAPR uzantısını kullanabilen bir AKS kümesi oluşturmak için, AKS-ExtensionManager AKS-Dapr aboneliğinizdeki ve özellik bayraklarını etkinleştirmeniz gerekir.

AKS-ExtensionManager AKS-Dapr Aşağıdaki örnekte gösterildiği gibi, az Feature Register komutunu kullanarak ve özellik bayraklarını kaydedin:

az feature register --namespace "Microsoft.ContainerService" --name "AKS-ExtensionManager"
az feature register --namespace "Microsoft.ContainerService" --name "AKS-Dapr"

Durumun kayıtlı gösterilmesi birkaç dakika sürer. Az Feature List komutunu kullanarak kayıt durumunu doğrulayın:

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-ExtensionManager')].{Name:name,State:properties.state}"
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-Dapr')].{Name:name,State:properties.state}"

Hazır olduğunda, az Provider Register komutunu kullanarak Microsoft. KubernetesConfiguration ve Microsoft. Containerservice kaynak sağlayıcılarının kaydını yenileyin:

az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ContainerService

Küme uzantıları için Azure CLı uzantısını ayarlama

Ayrıca k8s-extension Azure CLI uzantısına de ihtiyacınız olacaktır. Aşağıdaki komutları çalıştırarak bunu yüklemelisiniz:

az extension add --name k8s-extension

k8s-extensionUzantı zaten yüklüyse, aşağıdaki komutu kullanarak en son sürüme güncelleştirebilirsiniz:

az extension update --name k8s-extension

Uzantıyı oluşturun ve AKS kümenize Davpr 'yi yüklersiniz

Not

--cluster-type managedClustersAKS kümenize Davpr uzantısını yüklerken bayrağını kullanmanız önemlidir. Kullanımı --cluster-type connectedClusters Şu anda desteklenmiyor.

Aboneliğiniz Kubernetes uzantıları 'nı kullanmak üzere kaydedildikten sonra, AKS kümenize Davpr 'yi yükleyecek olan bir Dadpr uzantısı oluşturabilirsiniz. Örnek:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr

Bir --auto-upgrade-minor-version parametre belirterek ve değerini olarak ayarlayarak, Davpr 'nin ikincil sürümünü otomatik olarak güncelleştirmesine izin verme seçeneğiniz vardır true :

--auto-upgrade-minor-version true

Yapılandırma ayarları

Uzantı, parametresini kullanarak Davpr yapılandırma seçeneklerini ayarlamanıza olanak sağlar --configuration-settings . Örneğin, yüksek kullanılabilirlik (HA) özellikli bir Davpr sağlamak için parametresini şu şekilde ayarlayın global.ha.enabled true :

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"

Not

Yapılandırma ayarları gizli ise ve korunması gerekiyorsa, örneğin, sertifika ile ilgili bilgi için --configuration-protected-settings parametreyi geçirin ve değerin okunmadan korunması gerekir.

Yapılandırma ayarları geçirilmemişse, Davpr yapılandırması varsayılan olarak şu şekilde olur:

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

Kullanılabilir seçeneklerin listesi için lütfen bkz. Davpr yapılandırması.

Belirli bir Davpr sürümünü hedefleme

Not

Davpr, yalnızca geçerli ve önceki sürümler dahil olmak üzere bir sıralı pencere ile desteklenir. Bu desteklenen sürümlerle güncel kalabilmeniz için operasyonel sorumluluğun olması önerilir. Daha eski bir Davpr sürümüne sahipseniz, desteklenen bir sürüme ulaşmak için ara yükseltmeler yapmanız gerekebilir.

Aynı komut satırı bağımsız değişkeni, belirli bir Davpr sürümünün yüklenmesi veya önceki bir sürüme geri alınması için kullanılır. --auto-upgrade-minor-version false --version Yüklemek istediğiniz davpr sürümüne ve olarak ayarlayın. versionParametresi atlanırsa, uzantı en son bir Davpr sürümünü yükler. Örneğin, Davpr X. X. X kullanmak için:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version X.X.X

Uzantıyı belirli düğümlerle sınırlandırma ( nodeSelector )

Bazı yapılandırmalarda, yalnızca belirli düğümlerde Dadpr çalıştırmak isteyebilirsiniz. Bu nodeSelector , uzantı yapılandırmasında bir öğesine geçerek gerçekleştirilebilir. İsterseniz nodeSelector . , bunlardan kabuktan ve uzantısından kaçış yapmanız gerektiğini unutmayın. Örneğin, aşağıdaki yapılandırma yalnızca içeren düğümlere node 'a yükler kubernetes.io/os=linux :

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/os=linux"

Geçerli yapılandırma ayarlarını göster

az k8s-extension showGeçerli Davpr yapılandırma ayarlarını göstermek için komutunu kullanın:

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension

Yapılandırma ayarlarını Güncelleştir

Önemli

Bazı yapılandırma seçenekleri, oluşturma sonrası değiştirilemez. Bu seçeneklere yapılan ayarlamalar uzantının silinmesini ve yeniden kullanılmasını gerektirir. Bu, aşağıdaki ayarlara uygulanabilir:

  • global.ha.*
  • dapr_placement.*

Not

Yüksek kullanılabilirlik (HA), herhangi bir zamanda etkinleştirilebilir. Ancak, etkinleştirildikten sonra uzantının silinmesi ve yeniden kullanılmasını gerektirir. Kullanım durumu için yüksek kullanılabilirlik gerekli olduğundan emin değilseniz, kesintiyi en aza indirmek için BT 'nin devre dışı bırakılması önerilir.

Davpr yapılandırma ayarlarınızı güncelleştirmek için uzantıyı istenen durumla yeniden oluşturmanız yeterlidir. Örneğin, aşağıdaki yapılandırmayı kullanarak daha önce oluşturulmuş ve uzantıyı yüklediğimiz varsayılmaktadır:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \  
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" 

dapr_operator.replicaCount2 ile 3 arasında güncelleştirmek için aşağıdakileri kullanın:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

Uzantı hataları sorunlarını giderme

Uzantı oluşturma veya güncelleştirme işlemi başarısız olursa, komutunu çalıştırarak uzantı oluşturmanın başarısız olduğunu inceleyebilirsiniz az k8s-extension list . Örneğin, yapılandırma ayarlarında yanlış bir anahtar kullanılıyorsa, global.ha=false bunun yerine global.ha.enabled=false :

az k8s-extension list --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup

Aşağıdaki JSON döndürülür ve hata iletisi özelliği içinde yakalanır message .

"statuses": [
      {
        "code": "InstallationFailed",
        "displayStatus": null,
        "level": null,
        "message": "Error: {failed to install chart from path [] for release [dapr-1]: err [template: dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml:1:17: executing \"dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml\" at <.Values.global.ha.enabled>: can't evaluate field enabled in type interface {}]} occurred while doing the operation : {Installing the extension} on the config",
        "time": null
      }
],

Uzantıyı Sil

Uzantıyı silmeniz ve AKS kümenizdeki Davpr 'yi kaldırmanız gerekiyorsa, aşağıdaki komutu kullanabilirsiniz:

az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSCluster --cluster-type managedClusters --name myDaprExtension

Sonraki Adımlar

  • AKS kümenizde DAPR 'yi başarıyla sağladıysanız, örnek bir uygulamadağıtmaya çalışın.