Aracılığıyla paylaş


Azure Uygulaması Yapılandırması Kubernetes Sağlayıcısı başvurusu

Aşağıdaki başvuru, Azure Uygulama Yapılandırması Kubernetes Sağlayıcısı v2.3.0 veya üzeri tarafından desteklenen özellikleri özetler. Değişiklik hakkında daha fazla bilgi için sürüm notlarına bakın.

Özellikler

Kaynağın AzureAppConfigurationProvider altında aşağıdaki üst düzey alt özellikler bulunur spec. veya endpointconnectionStringReference belirtilmesi gerekir.

Veri Akışı Adı Açıklama Gerekli Tür
uç nokta anahtar-değerlerini almak istediğiniz Azure Uygulaması Yapılandırmasının uç noktası. alternatif Dize
connectionStringReference Azure Uygulaması Yapılandırma bağlantı dizesi içeren Kubernetes Gizli Dizisinin adı. alternatif Dize
replicaDiscoveryEnabled Azure Uygulaması Yapılandırmasının çoğaltmalarının otomatik olarak bulunup bulunmayacağını ve yük devretme için kullanılıp kullanılmadığını belirleyen ayar. özelliği yoksa, varsayılan değeri true kullanılır. yanlış ikili
loadBalancingEnabled İş yükünüzün istekleri tüm kullanılabilir çoğaltmalar arasında Uygulama Yapılandırması dağıtmasını sağlayan ayar. özelliği yoksa, varsayılan değeri false kullanılır. yanlış ikili
hedef Kubernetes'te alınan anahtar-değerlerin hedefi. doğru nesne
kimlik doğrulaması Azure Uygulaması Yapılandırmasına erişmek için kimlik doğrulama yöntemi. yanlış nesne
yapılandırma Azure Uygulaması Yapılandırmasında anahtar değerlerini sorgulama ve işleme ayarları. yanlış nesne
gizli dizi Key Vault ayarları, Azure Uygulaması Yapılandırması'nda başvurur. koşullu nesne
featureFlag Azure Uygulaması Yapılandırmasındaki özellik bayraklarının ayarları. yanlış nesne

spec.target özelliği aşağıdaki alt özelliğe sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
configMapName Oluşturulacak ConfigMap'in adı. doğru Dize
configMapData Alınan verilerin oluşturulan ConfigMap'te nasıl doldurulması gerektiğini belirten ayar. yanlış nesne

spec.target.configMapData Özellik ayarlanmamışsa, oluşturulan ConfigMap Azure Uygulaması Yapılandırmasından alınan anahtar-değerlerin listesiyle doldurulur ve bu da ConfigMap'in ortam değişkenleri olarak tüketilmesine olanak tanır. ConfigMap'i bağlı bir dosya olarak kullanmak istiyorsanız bu özelliği güncelleştirin. Bu özellik aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
Tür Alınan verilerin oluşturulan ConfigMap'te nasıl oluşturulduğunu gösteren ayar. İzin verilen değerler , defaultve jsonyamldeğerlerini içerirproperties. isteğe bağlı Dize
anahtar , veya typeolarak ayarlandığında jsonyamlalınan verilerin properties anahtar adı. ConfigMap bağlı bir dosya olarak kullanılacak şekilde ayarlandıysa dosya adı olarak ayarlayın. koşullu Dize
ayırıcı Tür veya jsonolarak ayarlandığında ConfigMap verilerini hiyerarşik biçimde çıkarmak için yaml kullanılan sınırlayıcı. Ayırıcı varsayılan olarak boştur ve oluşturulan ConfigMap özgün biçiminde anahtar-değerler içerir. Bu ayarı yalnızca uygulamanızda kullanılan yapılandırma dosyası yükleyicisi anahtar-değerleri hiyerarşik biçime dönüştürmeden yükleyemiyorsa yapılandırın. isteğe bağlı Dize

spec.auth Uygulama Yapılandırması deponuzun bağlantı dizesi özelliği ayarlanarak spec.connectionStringReference sağlanıyorsa özellik gerekli değildir. Aksi takdirde kimliklerden, hizmet sorumlusundan, iş yükü kimliğinden veya yönetilen kimliklerden biri kimlik doğrulaması için kullanılır. spec.auth aşağıdaki alt özelliklere sahiptir. Bunlardan yalnızca biri belirtilmelidir. Hiçbiri ayarlı değilse, sanal makine ölçek kümesinin sistem tarafından atanan yönetilen kimliği kullanılır.

Veri Akışı Adı Açıklama Gerekli Tür
servicePrincipalReference Hizmet sorumlusunun kimlik bilgilerini içeren Kubernetes Gizli Dizisinin adı. Gizli dizi, Kubernetes sağlayıcısıyla aynı ad alanında olmalıdır. yanlış Dize
workloadIdentity İş yükü kimliğini kullanma ayarları. yanlış nesne
managedIdentityClientId Sanal makine ölçek kümesinin kullanıcı tarafından atanan yönetilen kimliğinin istemci kimliği. yanlış Dize

spec.auth.workloadIdentity özelliği aşağıdaki alt özelliğe sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
serviceAccountName (hizmetHesap Adı) İş yükü kimliğiyle ilişkili hizmet hesabının adı. doğru Dize

spec.configuration aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
Seçiciler Anahtar-değer filtreleme için seçicilerin listesi. yanlış nesne dizisi
trimKeyPrefixes Kırpılacak anahtar ön eklerinin listesi. yanlış dize dizisi
yenileme Azure Uygulaması Yapılandırması'ndan anahtar-değerleri yenileme ayarları. Özelliği yoksa, Azure Uygulaması Yapılandırmasındaki anahtar değerleri yenilenmez. yanlış nesne

spec.configuration.selectors Özellik ayarlı değilse etiketsiz tüm anahtar-değerler indirilir. Aşağıdaki alt özelliklere sahip bir seçici nesneleri dizisi içerir. Son seçicinin anahtar değerlerinin öncelikli olduğunu ve önceki seçicilerden çakışan anahtarları geçersiz kıldığını unutmayın.

Veri Akışı Adı Açıklama Gerekli Tür
keyFilter Anahtar-değerleri sorgulamak için anahtar filtresi. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. alternatif Dize
labelFilter Anahtar-değerleri sorgulamaya yönelik etiket filtresi. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. yanlış Dize
tagFilters Anahtar değerlerini sorgulamak için etiket filtreleri. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. Etiket filtresi şu şekilde tag1=value1biçimlendirilmelidir. yanlış dize dizisi
snapshotName Anahtar değerlerinin yüklendiği anlık görüntünün adı. Bu özellik diğer özelliklerle birlikte kullanılmamalıdır. alternatif Dize

spec.configuration.refresh özelliği aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
etkinleştirildi Azure Uygulaması Yapılandırmasındaki anahtar değerlerinin otomatik olarak yenilenip yenilenmediğini belirleyen ayar. özelliği yoksa, varsayılan değeri false kullanılır. yanlış ikili
izleme Değişiklik algılama için izlenen anahtar-değerler, yani sentinel anahtarları. Azure Uygulaması Yapılandırmasındaki anahtar değerleri yalnızca izlenen anahtar değerlerinden en az biri değiştirildiğinde yenilenir. Bu özellik yoksa, seçilen tüm anahtar-değerler yenileme için izlenir. yanlış nesne
aralık Anahtar-değerlerin Azure Uygulaması Yapılandırması'ndan yenilenme aralığı. 1 saniyeden büyük veya buna eşit olmalıdır. Özelliği yoksa, varsayılan değer olan 30 saniye kullanılır. yanlış süre dizesi

spec.configuration.refresh.monitoring.keyValues, aşağıdaki alt özelliklere sahip bir nesne dizisidir.

Veri Akışı Adı Açıklama Gerekli Tür
anahtar Anahtar-değerin anahtarı. doğru Dize
etiket Anahtar-değerin etiketi. yanlış Dize

spec.secret özelliği aşağıdaki alt özelliklere sahiptir. Herhangi bir Key Vault başvurularının indirilmesi bekleniyorsa gereklidir. Kubernetes yerleşik Gizli Dizi türleri desteği hakkında daha fazla bilgi edinmek için bkz . Gizli Dizi Türleri.

Veri Akışı Adı Açıklama Gerekli Tür
hedef Kubernetes'te alınan gizli dizilerin hedefi. doğru nesne
kimlik doğrulaması Key Vaults'a erişmek için kimlik doğrulama yöntemi. yanlış nesne
yenileme Key Vault'tan verileri yenileme ayarları. Özellik yoksa, ilgili Key Vault başvuruları yeniden yüklenmediği sürece Key Vault'lardan veriler yenilenmez. yanlış nesne

spec.secret.target özelliği aşağıdaki alt özelliğe sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
gizliAd Oluşturulacak Kubernetes Gizli Dizisinin adı. doğru Dize
secretData Alınan verilerin oluşturulan Gizli Dizide nasıl doldurulması gerektiğini belirten ayar. doğru Dize

spec.secret.target.secretData Özelliği ayarlanmamışsa oluşturulan Gizli Dizi, Anahtar Kasalarından alınan anahtar-değerlerin listesiyle doldurulur ve bu da Gizli Dizi'nin ortam değişkenleri olarak tüketilmesine olanak tanır. Gizli diziyi bağlı bir dosya olarak kullanmak istiyorsanız bu özelliği güncelleştirin. Bu özellik aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
Tür Alınan verilerin oluşturulan Gizli Dizide nasıl oluşturulduğunu gösteren ayar. İzin verilen değerler , defaultve jsonyamldeğerlerini içerirproperties. isteğe bağlı Dize
anahtar , veya typeolarak ayarlandığında jsonyamlalınan verilerin properties anahtar adı. Gizli dizi bağlı bir dosya olarak kullanılacak şekilde ayarlandıysa dosya adı olarak ayarlayın. koşullu Dize
ayırıcı Tür veya jsonolarak ayarlandığında Gizli dizi verilerini hiyerarşik biçimde çıkarmak için yaml kullanılan sınırlayıcı. Ayırıcı varsayılan olarak boştur ve oluşturulan Gizli Dizi özgün biçiminde anahtar-değerler içerir. Bu ayarı yalnızca uygulamanızda kullanılan yapılandırma dosyası yükleyicisi anahtar-değerleri hiyerarşik biçime dönüştürmeden yükleyemiyorsa yapılandırın. isteğe bağlı Dize

spec.secret.auth Özellik ayarlı değilse, sistem tarafından atanan yönetilen kimlik kullanılır. Aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
servicePrincipalReference Tek tek kimlik doğrulama yöntemleri belirtilmemiş Anahtar Kasaları ile kimlik doğrulaması için kullanılan hizmet sorumlusunun kimlik bilgilerini içeren Kubernetes Gizli Dizisinin adı. yanlış Dize
workloadIdentity Tek tek kimlik doğrulama yöntemleri belirtilmemiş Key Vault'larla kimlik doğrulaması için kullanılan iş yükü kimliğinin ayarları. ile aynı alt özelliğe spec.auth.workloadIdentitysahiptir. yanlış nesne
managedIdentityClientId Tek tek kimlik doğrulama yöntemleri belirtilmemiş Anahtar Kasaları ile kimlik doğrulaması için kullanılan sanal makine ölçek kümesinin kullanıcı tarafından atanan yönetilen kimliğinin istemci kimliği. yanlış Dize
Anahtar Kasaları Tek tek Key Vault'lar için kimlik doğrulama yöntemleri. yanlış nesne dizisi

Her Key Vault'un kimlik doğrulama yöntemi aşağıdaki özelliklerle belirtilebilir. veya sağlanmalıdır managedIdentityClientIdservicePrincipalReferenceworkloadIdentity.

Veri Akışı Adı Açıklama Gerekli Tür
URI Bir Key Vault'un URI'sini. doğru Dize
servicePrincipalReference Anahtar Kasası ile kimlik doğrulaması için kullanılan hizmet sorumlusunun kimlik bilgilerini içeren Kubernetes Gizli Dizisinin adı. yanlış Dize
workloadIdentity Key Vault ile kimlik doğrulaması için kullanılan iş yükü kimliğinin ayarları. ile aynı alt özelliğe spec.auth.workloadIdentitysahiptir. yanlış nesne
managedIdentityClientId Key Vault ile kimlik doğrulaması için kullanılan sanal makine ölçek kümesinin kullanıcı tarafından atanan yönetilen kimliğinin istemci kimliği. yanlış Dize

spec.secret.refresh özelliği aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
etkinleştirildi Key Vault'lardan alınan verilerin otomatik olarak yenilenip yenilenmediğini belirleyen ayar. özelliği yoksa, varsayılan değeri false kullanılır. yanlış ikili
aralık Verilerin Key Vault'tan yenilenme aralığı. 1 dakikadan büyük veya buna eşit olmalıdır. Key Vault yenilemesi, aracılığıyla spec.configuration.refreshyapılandırılan Uygulama Yapılandırması yenilemeden bağımsızdır. doğru süre dizesi

spec.featureFlag özelliği aşağıdaki alt özelliklere sahiptir. Herhangi bir özellik bayrağının indirilmesi bekleniyorsa gereklidir.

Veri Akışı Adı Açıklama Gerekli Tür
Seçiciler Özellik bayrağı filtreleme için seçicilerin listesi. yanlış nesne dizisi
yenileme Özellik yenileme ayarları, Azure Uygulaması Yapılandırmasından bayraklar alır. Özellik yoksa, Azure Uygulaması Yapılandırmasındaki özellik bayrakları yenilenmez. yanlış nesne

spec.featureFlag.selectors Özellik ayarlanmadıysa özellik bayrakları indirılmaz. Aşağıdaki alt özelliklere sahip bir seçici nesneleri dizisi içerir. Son seçicinin özellik bayraklarının öncelikli olduğunu ve önceki seçicilerden çakışan anahtarları geçersiz kıldığını unutmayın.

Veri Akışı Adı Açıklama Gerekli Tür
keyFilter Özellik bayraklarını sorgulamak için anahtar filtresi. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. alternatif Dize
labelFilter Özellik bayraklarını sorgulamaya yönelik etiket filtresi. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. yanlış Dize
tagFilters Sorgulama için etiket filtreleri özellik bayrakları. Bu özellik ve snapshotName özelliği aynı anda ayarlanmamalıdır. Etiket filtresi şu şekilde tag1=value1biçimlendirilmelidir. yanlış dize dizisi
snapshotName Özellik bayraklarının yüklendiği anlık görüntünün adı. Bu özellik diğer özelliklerle birlikte kullanılmamalıdır. alternatif Dize

spec.featureFlag.refresh özelliği aşağıdaki alt özelliklere sahiptir.

Veri Akışı Adı Açıklama Gerekli Tür
etkinleştirildi Azure Uygulaması Yapılandırması'ndan özellik bayraklarının otomatik olarak yenilenip yenilenmediğini belirleyen ayar. özelliği yoksa, varsayılan değeri false kullanılır. yanlış ikili
aralık Özellik bayraklarının Azure Uygulaması Yapılandırması'ndan yenilenme aralığı. 1 saniyeden büyük veya buna eşit olmalıdır. Özelliği yoksa, varsayılan değer olan 30 saniye kullanılır. yanlış süre dizesi

Yükleme

Azure Uygulaması Yapılandırma Kubernetes Sağlayıcısı'nı yüklemek için aşağıdaki helm install komutu kullanın. Parametrelerin tam listesi ve varsayılan değerleri için helm-values.yaml dosyasına bakın. bayrağını komutuna geçirerek --set varsayılan değerleri geçersiz kılabilirsiniz.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace

Otomatik ölçeklendirme

Varsayılan olarak, otomatik ölçeklendirme devre dışıdır. Ancak, birden çok ConfigMap/Gizli Dizi oluşturmak için birden çok AzureAppConfigurationProvider kaynağınız varsa, olarak ayarlayarak autoscaling.enabled yatay pod otomatik ölçeklendirmesini trueetkinleştirebilirsiniz.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace
    --set autoscaling.enabled=true

Veri toplama

Yazılım, sizinle ve yazılımı kullanımınızla ilgili bilgileri toplayıp Microsoft'a gönderebilir. Microsoft bu bilgileri, hizmetleri sağlamak ve ürün ve hizmetlerimizi iyileştirmek için kullanabilir. Azure Uygulaması Yapılandırma Kubernetes Sağlayıcısı'nı yüklerken ayarını requestTracing.enabled=false yaparak telemetriyi kapatabilirsiniz. Yazılımda sizin ve Microsoft'un uygulamalarınızın kullanıcılarından veri toplamanıza olanak tanıyabilecek bazı özellikler de vardır. Bu özellikleri kullanıyorsanız, microsoft'un gizlilik bildiriminin bir kopyasıyla birlikte uygulamalarınızın kullanıcılarına uygun bildirimler sağlamak da dahil olmak üzere geçerli yasalara uymanız gerekir. Gizlilik bildirimimiz, https://go.microsoft.com/fwlink/?LinkID=824704 adresinde bulunmaktadır. Veri toplama ve kullanma hakkında daha fazla bilgiyi yardım belgelerinde ve gizlilik bildirimimizde bulabilirsiniz. Yazılımı kullanmanız, bu uygulamalara verdiğiniz onay yerine geçer.

Örnekler

Kimlik Doğrulaması

Sanal makine ölçek kümesinin sistem tarafından atanan yönetilen kimliğini kullanma

  1. Azure Kubernetes Service (AKS) kümesi tarafından kullanılan sanal makine ölçek kümesinde sistem tarafından atanan yönetilen kimliği etkinleştirin.

  2. Azure Uygulaması Yapılandırmasında sistem tarafından atanan yönetilen kimlik Uygulama Yapılandırması Veri Okuyucusu rolü verin.

  3. Aşağıdaki örnek AzureAppConfigurationProvider kaynağı AKS kümesine dağıtın.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Sanal makine ölçek kümesinin kullanıcı tarafından atanan yönetilen kimliğini kullanma

  1. Kullanıcı tarafından atanan bir yönetilen kimlik oluşturun ve oluşturulduktan sonra istemci kimliğini not edin.

  2. Kullanıcı tarafından atanan yönetilen kimliği Azure Kubernetes Service (AKS) kümesi tarafından kullanılan sanal makine ölçek kümesine atayın.

  3. Azure Uygulaması Yapılandırmasında kullanıcı tarafından atanan yönetilen kimlik Uygulama Yapılandırması Veri Okuyucusu rolü verin.

  4. spec.auth.managedIdentityClientId özelliğini aşağıdaki örnek AzureAppConfigurationProvider kaynakta kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğine ayarlayın ve AKS kümesine dağıtın.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        managedIdentityClientId: <your-managed-identity-client-id>
    

Hizmet sorumlusunu kullanma

  1. Bir Hizmet Sorumlusu oluşturma

  2. Azure Uygulaması Yapılandırmasında hizmet sorumlusu Uygulama Yapılandırması Veri Okuyucusu rolü verin.

  3. Kaynakla aynı ad alanında AzureAppConfigurationProvider bir Kubernetes Gizli Anahtarı oluşturun ve hizmet sorumlusunun azure_client_id, azure_client_secret ve azure_tenant_id Gizli Diziye ekleyin.

  4. spec.auth.servicePrincipalReference Özelliğini aşağıdaki örnek AzureAppConfigurationProvider kaynakta Gizli Dizi adı olarak ayarlayın ve Kubernetes kümesine dağıtın.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        servicePrincipalReference: <your-service-principal-secret-name>
    

İş yükü kimliğini kullanma

  1. Azure Kubernetes Service (AKS) kümesinde İş Yükü Kimliğini etkinleştirin.

  2. AKS kümesinin OIDC veren URL'sini alın.

  3. Kullanıcı tarafından atanan bir yönetilen kimlik oluşturun ve istemci kimliğini, kiracı kimliğini, adını ve kaynak grubunu not edin.

  4. Azure Uygulaması Yapılandırmasında kullanıcı tarafından atanan yönetilen kimlik Uygulama Yapılandırması Veri Okuyucusu rolü verin.

  5. AKS dağıtım dosyalarınızı içeren dizine aşağıdaki içeriğe sahip bir YAML dosyası (örn . serviceAccount.yaml) ekleyerek bir hizmet hesabı oluşturun. Hizmet hesabı, AKS kümenize tüm dağıtım değişikliklerinizi uyguladığınızda (örneğin, kullanarak kubectl apply) oluşturulur. değerini istemci kimliğiyle ve <your-managed-identity-client-id> yeni oluşturulan kullanıcı tarafından atanan yönetilen kimliğin kiracı kimliğiyle değiştirin<your-managed-identity-tenant-id>. değerini tercih ettiğiniz adla değiştirin <your-service-account-name> .

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: <your-service-account-name>
      annotations:
        azure.workload.identity/client-id: <your-managed-identity-client-id>
        azure.workload.identity/tenant-id: <your-managed-identity-tenant-id>
    
  6. Azure CLI kullanarak kullanıcı tarafından atanan yönetilen kimlik için federasyon kimliği kimlik bilgileri oluşturun. değerini adıyla ve <user-assigned-identity-name> yeni oluşturulan kullanıcı tarafından atanan yönetilen kimliğin kaynak grubuyla değiştirin<resource-group>. değerini AKS kümesinin OIDC veren URL'si ile değiştirin <aks-oidc-issuer> . değerini yeni oluşturulan hizmet hesabının adıyla değiştirin <your-service-account-name> . değerini federasyon kimliği kimlik bilgileri için tercih ettiğiniz adla değiştirin <federated-identity-credential-name> .

    az identity federated-credential create --name "<federated-identity-credential-name>" --identity-name "<user-assigned-identity-name>" --resource-group "<resource-group>" --issuer "<aks-oidc-issuer>" --subject system:serviceaccount:default:<your-service-account-name> --audience api://AzureADTokenExchange
    

    Federasyon kimliği kimlik bilgilerinin konusunun şu biçimi izlemesi gerektiğini unutmayın: system:serviceaccount:<service-account-namespace>:<service-account-name>.

  7. spec.auth.workloadIdentity.serviceAccountName özelliğini aşağıdaki örnek AzureAppConfigurationProvider kaynaktaki hizmet hesabının adına ayarlayın. Kaynak ve hizmet hesabının aynı ad alanında olduğundan emin AzureAppConfigurationProvider olun.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        workloadIdentity:
          serviceAccountName: <your-service-account-name>
    

bağlantı dizesi kullanma

  1. Kaynakla aynı ad alanında AzureAppConfigurationProvider bir Kubernetes Gizli Anahtarı oluşturun ve Gizli Dizi'de anahtar azure_app_configuration_connection_string ile Azure Uygulaması Yapılandırma bağlantı dizesi ekleyin.

  2. spec.connectionStringReference Özelliğini aşağıdaki örnek AzureAppConfigurationProvider kaynakta Gizli Dizi adı olarak ayarlayın ve Kubernetes kümesine dağıtın.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      connectionStringReference: <your-connection-string-secret-name>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Anahtar-değer seçimi

selectors Azure Uygulaması Yapılandırması'ndan indirilecek anahtar değerlerini filtrelemek için özelliğini kullanın.

Aşağıdaki örnek etiketsiz tüm anahtar değerlerini indirir.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

Aşağıdaki örnekte, her biri benzersiz etiketlere sahip iki anahtar-değer kümesini almak için iki seçici kullanılır. Son seçicinin değerlerinin öncelikli olduğunu ve önceki seçicilerden çakışan anahtarları geçersiz kıldığını unutmayın.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
      - keyFilter: app1*
        labelFilter: development

Etiket filtreleri ayrıca anahtar değerleri filtrelemek için kullanılabilir. Aşağıdaki örnekte, yalnızca etiketli env=prod anahtar değerler indirilir.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: '*'
        tagFilters:
          - env=prod

Anlık görüntü tek başına veya diğer anahtar-değer seçicilerle birlikte kullanılabilir. Aşağıdaki örnekte, ortak yapılandırmanın anahtar değerlerini bir anlık görüntüden yükleyip bazılarını geliştirme için anahtar-değerlerle geçersiz kılacaksınız.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - snapshotName: app1_common_configuration
      - keyFilter: app1*
        labelFilter: development

Anahtar ön eki kırpma

Aşağıdaki örnek, anahtar adlarından oluşturulan ConfigMap'e eklemeden önce iki ön eki kırpmak için özelliğini kullanır trimKeyPrefixes .

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    trimKeyPrefixes: [prefix1, prefix2]

Yapılandırma yenilemesi

Azure Uygulaması Yapılandırması'nda verilerinizde değişiklik yaptığınızda, bu değişikliklerin Kubernetes kümenizde otomatik olarak yenilenmesini isteyebilirsiniz. Aşağıdaki örnekte Kubernetes sağlayıcısı azure uygulama yapılandırmasında güncelleştirmeleri dakikada bir denetler. İlişkili ConfigMap ve Gizli Dizi yalnızca değişiklikler algılandığında yeniden oluşturulur. Yapılandırma değişikliklerini izleme hakkında daha fazla bilgi için bkz. Yapılandırma yenileme için en iyi yöntemler.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 1m

Key Vault başvuruları

Kimlik Doğrulaması

Aşağıdaki örnekte, bir Key Vault hizmet sorumlusuyla doğrulanırken, diğer tüm Anahtar Kasalarının kimliği kullanıcı tarafından atanan yönetilen kimlikle doğrulanır.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
      keyVaults:
        - uri: <your-key-vault-uri>
          servicePrincipalReference: <name-of-secret-containing-service-principal-credentials>

Gizli Dizi Türleri

Şu anda iki Kubernetes yerleşik Gizli Dizi türü olan Opak ve TLS desteklenmektedir. Key Vault başvurularından çözümlenen gizli diziler varsayılan olarak Opak Gizli Dizi türü olarak kaydedilir. Bir sertifikaya Key Vault başvurunuz varsa ve sertifikayı TLS Gizli Anahtarı türü olarak kaydetmek istiyorsanız, Azure Uygulaması Yapılandırması'ndaki Key Vault başvurusuna aşağıdaki ad ve değere sahip bir etiket ekleyebilirsiniz. Bunu yaptığınızda, türüne kubernetes.io/tls sahip bir Gizli Dizi oluşturulur ve Anahtar Kasası başvurusunun anahtarından sonra adlandırılır.

Veri Akışı Adı Değer
.kubernetes.secret.type kubernetes.io/tls

Aşağıdaki örneklerde verilerin oluşturulan Gizli Dizilerde farklı türlerle nasıl doldurulu olduğu gösterilmektedir.

Bir Uygulama Yapılandırması deposunda şu Key Vault başvuruları olduğu varsayılır:

anahtar değer Etiketler
app1-secret1 <Key Vault başvurusu 1> {}
app1-secret2 <Key Vault başvurusu 2> {}
app1-certificate <Key Vault başvurusu 3> {".kubernetes.secret.type": "kubernetes.io/tls"}

Aşağıdaki örnek hem Opak hem de TLS türlerinin Gizli Dizilerini oluşturur.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>

Oluşturulan Gizli Diziler aşağıdaki verilerle doldurulur:

name: secret-created-by-appconfig-provider
type: Opaque
data:
  app1-secret1: <secret value retrieved from Key Vault>
  app1-secret2: <secret value retrieved from Key Vault>
name: app1-certificate
type: kubernetes.io/tls
data:
  tls.crt: |
    <certificate data retrieved from Key Vault>
  tls.key: |
    <certificate key retrieved from Key Vault>

Key Vault'tan gizli dizileri yenileme

Key Vault'lardan gizli dizileri yenilemek için genellikle Azure Uygulaması Yapılandırması'ndan ilgili Key Vault başvurularının yeniden yüklenmesi gerekir. Ancak özelliğiyle spec.secret.refresh gizli dizileri Key Vault'tan bağımsız olarak yenileyebilirsiniz. Bu özellikle iş yükünüzün gizli dizi döndürme sırasında Key Vault'tan güncelleştirilmiş gizli dizileri otomatik olarak almasını sağlamak için kullanışlıdır. Bir gizli dizinin en son sürümünü yüklemek için Key Vault başvurusunun sürümlenmiş bir gizli dizi olmaması gerektiğini unutmayın.

Aşağıdaki örnek, Key Vault'taki sürümsüz tüm gizli dizileri saatte bir yeniler.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
    refresh:
      enabled: true
      interval: 1h

Özellik Bayrakları

Aşağıdaki örnekte, ile app1 başlayan anahtarlar ve ile eşdeğer common etiketler içeren özellik bayrakları her 10 dakikada bir indirilip yenilenir. Oluşturulan ConfigMap'te özellik bayraklarını doldurmak için özelliğin configMapData.type veya jsonolması yaml gerektiğini unutmayın.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
    configMapData:
      type: json
      key: appSettings.json
  featureFlag:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 10m

İsteğe Bağlı Yenileme

Otomatik veri yenilemeyi ayarlayabilirsiniz ancak Uygulama Yapılandırması ve Key Vault'tan en son verileri almak için isteğe bağlı yenileme tetiklemek isteyebileceğiniz zamanlar olabilir. Bu, öğesinin bölümünde metadata.annotationsherhangi bir ek açıklama AzureAppConfigurationProvider ekleyerek veya güncelleştirerek yapılabilir. Kubernetes sağlayıcısı daha sonra ConfigMap ve Secret'ı Uygulama Yapılandırma deponuzdan ve Key Vault'tan alınan en son verilerle mutabık tutar ve güncelleştirir.

Aşağıdaki örnekte , AzureAppConfigurationProvider yeni bir ek açıklamayla güncelleştirilir. Değişiklik sonrasında, isteğe bağlı yenilemeyi tetiklemek için kullanarak kubectl apply değişiklikleri uygulayın.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
  annotations:
    key1: value1
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>

ConfigMap Tüketimi

Kubernetes'te çalışan uygulamalar genellikle ConfigMap'i ortam değişkenleri veya yapılandırma dosyaları olarak tüketir. configMapData.type Özellik yoksa veya varsayılan olarak ayarlandıysa, ConfigMap Azure Uygulaması Yapılandırması'ndan alınan ve ortam değişkenleri olarak kolayca tüketilebilen listelenmiş veri listesiyle doldurulur. configMapData.type Özellik json, yaml veya özellikler olarak ayarlanırsa, Azure Uygulaması Yapılandırmasından alınan veriler, oluşturulan ConfigMap'te özelliği tarafından configMapData.key belirtilen anahtar adıyla tek bir öğede gruplandırılır ve bu öğe bağlı bir dosya olarak kullanılabilir.

Aşağıdaki örneklerde, oluşturulan ConfigMap'te verilerin özelliğin farklı ayarlarıyla nasıl doldurulan configMapData.type gösterilmektedir.

bir Uygulama Yapılandırması deposu şu anahtar değerlerine sahip olduğu varsayılır:

anahtar değer
anahtar1 değer1
anahtar2 değer2
anahtar3 değer3

configMapData.type Ve özelliği yok veya olarak defaultayarlanmıştır.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

Oluşturulan ConfigMap aşağıdaki verilerle doldurulur:

data:
  key1: value1
  key2: value2
  key3: value3