Bagikan melalui


Referensi Penyedia Kubernetes Azure App Configuration

Referensi berikut menguraikan properti yang didukung oleh Penyedia v2.3.0 Kubernetes Azure App Configuration atau yang lebih baru. Lihat catatan rilis untuk informasi selengkapnya tentang perubahan.

Properti

Sumber AzureAppConfigurationProvider daya memiliki properti turunan tingkat atas berikut di specbawah . Salah satu endpoint atau connectionStringReference harus ditentukan.

Nama Deskripsi Wajib Tipe
titik akhir Titik akhir Azure App Configuration, yang ingin Anda ambil kunci-nilainya. Alternatif string
connectionStringReference Nama Rahasia Kubernetes yang berisi Azure App Configuration string koneksi. Alternatif string
replicaDiscoveryEnabled Pengaturan yang menentukan apakah replika Azure App Configuration secara otomatis ditemukan dan digunakan untuk failover. Jika properti tidak ada, nilai true default digunakan. salah bool
loadBalancingEnabled Pengaturan yang memungkinkan beban kerja Anda mendistribusikan permintaan ke App Configuration di semua replika yang tersedia. Jika properti tidak ada, nilai false default digunakan. salah bool
sasaran Tujuan dari nilai kunci yang diambil di Kubernetes. TRUE objek
autentikasi Metode autentikasi untuk mengakses Azure App Configuration. salah objek
konfigurasi Pengaturan untuk mengkueri dan memproses nilai kunci di Azure App Configuration. salah objek
rahasia Pengaturan untuk referensi Key Vault di Azure App Configuration. kondisional objek
featureFlag Pengaturan untuk bendera fitur di Azure App Configuration. salah objek

Properti spec.target ini memiliki properti anak berikut.

Nama Deskripsi Wajib Tipe
configMapName Nama ConfigMap yang akan dibuat. TRUE string
configMapData Pengaturan yang menentukan bagaimana data yang diambil harus diisi dalam ConfigMap yang dihasilkan. salah objek

spec.target.configMapData Jika properti tidak diatur, ConfigMap yang dihasilkan diisi dengan daftar nilai kunci yang diambil dari Azure App Configuration, yang memungkinkan ConfigMap digunakan sebagai variabel lingkungan. Perbarui properti ini jika Anda ingin menggunakan ConfigMap sebagai file yang dipasang. Properti ini memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
jenis Pengaturan yang menunjukkan bagaimana data yang diambil dibangun dalam ConfigMap yang dihasilkan. Nilai yang diizinkan meliputi default, json, yaml dan properties. opsional string
kunci Nama kunci data yang diambil saat type diatur ke json, yaml atau properties. Atur ke nama file jika ConfigMap disiapkan untuk digunakan sebagai file yang dipasang. kondisional string
pemisah Pemisah yang digunakan untuk menghasilkan data ConfigMap dalam format hierarkis saat jenis diatur ke json atau yaml. Pemisah kosong secara default dan ConfigMap yang dihasilkan berisi nilai kunci dalam bentuk aslinya. Konfigurasikan pengaturan ini hanya jika pemuat file konfigurasi yang digunakan dalam aplikasi Anda tidak dapat memuat nilai kunci tanpa mengonversinya ke format hierarkis. opsional string

Properti spec.auth tidak diperlukan jika string koneksi penyimpanan App Configuration Anda disediakan dengan mengatur spec.connectionStringReference properti . Jika tidak, salah satu identitas, perwakilan layanan, identitas beban kerja, atau identitas terkelola, digunakan untuk autentikasi. spec.auth memiliki properti turunan berikut. Hanya satu dari mereka yang harus ditentukan. Jika tidak ada yang diatur, identitas terkelola yang ditetapkan sistem dari set skala komputer virtual digunakan.

Nama Deskripsi Wajib Tipe
servicePrincipalReference Nama Rahasia Kubernetes yang berisi kredensial perwakilan layanan. Rahasia harus berada di namespace yang sama dengan penyedia Kubernetes. salah string
workloadIdentity Pengaturan untuk menggunakan identitas beban kerja. salah objek
managedIdentityClientId ID klien dari identitas terkelola yang ditetapkan pengguna dari set skala komputer virtual. salah string

Properti spec.auth.workloadIdentity ini memiliki properti anak berikut.

Nama Deskripsi Wajib Tipe
layananNama Akun Nama akun layanan yang terkait dengan identitas beban kerja. TRUE string

spec.configuration memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
Penyeleksi Daftar pemilih untuk pemfilteran kunci-nilai. salah array objek
trimKeyPrefixes Daftar awalan kunci yang akan dipangkas. salah array string
refresh Pengaturan untuk me-refresh nilai kunci dari Azure App Configuration. Jika properti tidak ada, nilai kunci dari Azure App Configuration tidak di-refresh. salah objek

spec.configuration.selectors Jika properti tidak diatur, semua nilai kunci tanpa label diunduh. Ini berisi array objek pemilih , yang memiliki properti turunan berikut. Perhatikan bahwa nilai kunci dari pemilih terakhir lebih diutamakan dan menimpa kunci yang tumpang tindih dari pemilih sebelumnya.

Nama Deskripsi Wajib Tipe
keyFilter Filter kunci untuk mengkueri nilai kunci. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. Alternatif string
labelFilter Filter label untuk mengkueri nilai kunci. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. salah string
tagFilter Filter tag untuk mengkueri nilai kunci. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. Filter tag harus diformat sebagai tag1=value1. salah array string
snapshotName Nama rekam jepret tempat nilai kunci dimuat. Properti ini tidak boleh digunakan bersama dengan properti lain. Alternatif string

Properti spec.configuration.refresh memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
diaktifkan Pengaturan yang menentukan apakah kunci-nilai dari Azure App Configuration secara otomatis di-refresh. Jika properti tidak ada, nilai false default digunakan. salah bool
pemantauan Kunci-nilai yang dipantau untuk deteksi perubahan, alias kunci sentinel. Nilai kunci dari Azure App Configuration di-refresh hanya jika setidaknya salah satu nilai kunci yang dipantau diubah. Jika properti ini tidak ada, semua nilai kunci yang dipilih akan dipantau untuk refresh. salah objek
interval Interval di mana nilai kunci disegarkan dari Azure App Configuration. Ini harus lebih besar dari atau sama dengan 1 detik. Jika properti tidak ada, nilai default 30 detik akan digunakan. salah string durasi

spec.configuration.refresh.monitoring.keyValues adalah array objek, yang memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
kunci Kunci kunci-nilai. TRUE string
label Label nilai kunci. salah string

Properti spec.secret memiliki properti turunan berikut. Diperlukan jika ada referensi Key Vault yang diharapkan diunduh. Untuk mempelajari selengkapnya tentang dukungan untuk jenis Rahasia bawaan Kubernetes, lihat Jenis Rahasia.

Nama Deskripsi Wajib Tipe
sasaran Tujuan rahasia yang diambil di Kubernetes. TRUE objek
autentikasi Metode autentikasi untuk mengakses Key Vault. salah objek
refresh Pengaturan untuk menyegarkan data dari Key Vault. Jika properti tidak ada, data dari Key Vault tidak di-refresh kecuali referensi Key Vault yang sesuai dimuat ulang. salah objek

Properti spec.secret.target ini memiliki properti anak berikut.

Nama Deskripsi Wajib Tipe
namaRahasia Nama Rahasia Kubernetes yang akan dibuat. TRUE string
secretData Pengaturan yang menentukan bagaimana data yang diambil harus diisi dalam Rahasia yang dihasilkan. TRUE string

spec.secret.target.secretData Jika properti tidak diatur, Rahasia yang dihasilkan diisi dengan daftar nilai kunci yang diambil dari Key Vault, yang memungkinkan Rahasia digunakan sebagai variabel lingkungan. Perbarui properti ini jika Anda ingin menggunakan Rahasia sebagai file yang dipasang. Properti ini memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
jenis Pengaturan yang menunjukkan bagaimana data yang diambil dibangun dalam Rahasia yang dihasilkan. Nilai yang diizinkan meliputi default, json, yaml dan properties. opsional string
kunci Nama kunci data yang diambil saat type diatur ke json, yaml atau properties. Atur ke nama file jika Rahasia disiapkan untuk digunakan sebagai file yang dipasang. kondisional string
pemisah Pemisah yang digunakan untuk menghasilkan data Rahasia dalam format hierarkis saat jenis diatur ke json atau yaml. Pemisah kosong secara default dan Rahasia yang dihasilkan berisi nilai kunci dalam bentuk aslinya. Konfigurasikan pengaturan ini hanya jika pemuat file konfigurasi yang digunakan dalam aplikasi Anda tidak dapat memuat nilai kunci tanpa mengonversinya ke format hierarkis. opsional string

spec.secret.auth Jika properti tidak diatur, identitas terkelola yang ditetapkan sistem akan digunakan. Ini memiliki properti anak berikut.

Nama Deskripsi Wajib Tipe
servicePrincipalReference Nama Rahasia Kubernetes yang berisi kredensial perwakilan layanan yang digunakan untuk autentikasi dengan Key Vault yang tidak memiliki metode autentikasi individual yang ditentukan. salah string
workloadIdentity Pengaturan identitas beban kerja yang digunakan untuk autentikasi dengan Key Vault yang tidak memiliki metode autentikasi individual yang ditentukan. Ini memiliki properti anak yang sama dengan spec.auth.workloadIdentity. salah objek
managedIdentityClientId ID klien dari identitas terkelola yang ditetapkan pengguna dari set skala komputer virtual yang digunakan untuk autentikasi dengan Key Vault yang tidak memiliki metode autentikasi individual yang ditentukan. salah string
Vault kunci Metode autentikasi untuk Masing-masing Key Vault. salah array objek

Metode autentikasi setiap Key Vault dapat ditentukan dengan properti berikut. Salah satu dari managedIdentityClientId, servicePrincipalReference atau workloadIdentity harus disediakan.

Nama Deskripsi Wajib Tipe
uri URI brankas kunci. TRUE string
servicePrincipalReference Nama Rahasia Kubernetes yang berisi kredensial perwakilan layanan yang digunakan untuk autentikasi dengan Key Vault. salah string
workloadIdentity Pengaturan identitas beban kerja yang digunakan untuk autentikasi dengan Key Vault. Ini memiliki properti anak yang sama dengan spec.auth.workloadIdentity. salah objek
managedIdentityClientId ID klien dari identitas terkelola yang ditetapkan pengguna dari set skala komputer virtual yang digunakan untuk autentikasi dengan Key Vault. salah string

Properti spec.secret.refresh memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
diaktifkan Pengaturan yang menentukan apakah data dari Key Vault secara otomatis di-refresh. Jika properti tidak ada, nilai false default digunakan. salah bool
interval Interval di mana data disegarkan dari Key Vault. Ini harus lebih besar dari atau sama dengan 1 menit. Refresh Key Vault independen dari refresh App Configuration yang dikonfigurasi melalui spec.configuration.refresh. TRUE string durasi

Properti spec.featureFlag memiliki properti turunan berikut. Diperlukan jika ada bendera fitur yang diharapkan diunduh.

Nama Deskripsi Wajib Tipe
Penyeleksi Daftar pemilih untuk pemfilteran bendera fitur. salah array objek
refresh Pengaturan untuk me-refresh bendera fitur dari Azure App Configuration. Jika properti tidak ada, bendera fitur dari Azure App Configuration tidak di-refresh. salah objek

spec.featureFlag.selectors Jika properti tidak diatur, bendera fitur tidak diunduh. Ini berisi array objek pemilih , yang memiliki properti turunan berikut. Perhatikan bahwa bendera fitur pemilih terakhir lebih diutamakan dan menimpa kunci yang tumpang tindih dari pemilih sebelumnya.

Nama Deskripsi Wajib Tipe
keyFilter Filter kunci untuk mengkueri bendera fitur. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. Alternatif string
labelFilter Filter label untuk mengkueri bendera fitur. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. salah string
tagFilter Filter tag untuk mengkueri bendera fitur. Properti ini dan snapshotName properti tidak boleh diatur secara bersamaan. Filter tag harus diformat sebagai tag1=value1. salah array string
snapshotName Nama rekam jepret tempat bendera fitur dimuat. Properti ini tidak boleh digunakan bersama dengan properti lain. Alternatif string

Properti spec.featureFlag.refresh memiliki properti turunan berikut.

Nama Deskripsi Wajib Tipe
diaktifkan Pengaturan yang menentukan apakah bendera fitur dari Azure App Configuration di-refresh secara otomatis. Jika properti tidak ada, nilai false default digunakan. salah bool
interval Interval di mana bendera fitur di-refresh dari Azure App Configuration. Ini harus lebih besar dari atau sama dengan 1 detik. Jika properti tidak ada, nilai default 30 detik akan digunakan. salah string durasi

Penginstalan

Gunakan perintah berikut helm install untuk menginstal Penyedia Kubernetes Azure App Configuration. Lihat helm-values.yaml untuk daftar lengkap parameter dan nilai defaultnya. Anda dapat mengambil alih nilai default dengan meneruskan --set bendera ke perintah .

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

Penskalaan otomatis

Secara default, autoscaling dinonaktifkan. Namun, jika Anda memiliki beberapa AzureAppConfigurationProvider sumber daya untuk menghasilkan beberapa ConfigMaps/Secrets, Anda dapat mengaktifkan autoscaling pod horizontal dengan mengatur autoscaling.enabled ke true.

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

Kumpulan data

Perangkat lunak ini dapat mengumpulkan informasi tentang Anda dan penggunaan perangkat lunak dan mengirimkannya ke Microsoft. Microsoft dapat menggunakan informasi ini untuk menyediakan layanan dan meningkatkan produk dan layanan kami. Anda dapat menonaktifkan telemetri dengan mengatur requestTracing.enabled=false saat menginstal Penyedia Kubernetes Azure App Configuration. Ada juga beberapa fitur dalam perangkat lunak yang dapat memungkinkan Anda dan Microsoft mengumpulkan data dari pengguna aplikasi Anda. Jika Anda menggunakan fitur-fitur ini, Anda harus mematuhi hukum yang berlaku, termasuk memberikan pemberitahuan yang sesuai kepada pengguna aplikasi Anda bersama dengan salinan pernyataan privasi Microsoft. Pernyataan privasi kami terletak di https://go.microsoft.com/fwlink/?LinkID=824704. Anda dapat mempelajari selengkapnya tentang pengumpulan dan penggunaan data dalam dokumentasi bantuan dan pernyataan privasi kami. Penggunaan Anda atas perangkat lunak beroperasi sebagai persetujuan Anda untuk praktik ini.

Contoh

Autentikasi

Menggunakan identitas terkelola yang ditetapkan sistem dari set skala komputer virtual

  1. Aktifkan identitas terkelola yang ditetapkan sistem dalam set skala komputer virtual yang digunakan oleh kluster Azure Kubernetes Service (AKS).

  2. Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan sistem di Azure App Configuration.

  3. Sebarkan sumber daya sampel AzureAppConfigurationProvider berikut ke kluster AKS.

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

Menggunakan identitas terkelola yang ditetapkan pengguna dari set skala komputer virtual

  1. Buat identitas terkelola yang ditetapkan pengguna dan catat ID kliennya setelah pembuatan.

  2. Tetapkan identitas terkelola yang ditetapkan pengguna ke set skala komputer virtual yang digunakan oleh kluster Azure Kubernetes Service (AKS).

  3. Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan pengguna di Azure App Configuration.

  4. Atur spec.auth.managedIdentityClientId properti ke ID klien identitas terkelola yang ditetapkan pengguna dalam sumber daya sampel AzureAppConfigurationProvider berikut dan sebarkan ke kluster AKS.

    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>
    

Menggunakan perwakilan layanan

  1. Membuat Perwakilan Layanan

  2. Berikan peran Pembaca Data App Configuration perwakilan layanan di Azure App Configuration.

  3. Buat Rahasia Kubernetes di namespace AzureAppConfigurationProvider yang sama dengan sumber daya dan tambahkan azure_client_id, azure_client_secret, dan azure_tenant_id perwakilan layanan ke Rahasia.

  4. Atur spec.auth.servicePrincipalReference properti ke nama Rahasia dalam sumber daya sampel AzureAppConfigurationProvider berikut dan sebarkan ke kluster Kubernetes.

    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>
    

Menggunakan identitas beban kerja

  1. Aktifkan Identitas Beban Kerja pada kluster Azure Kubernetes Service (AKS).

  2. Dapatkan URL penerbit OIDC dari kluster AKS.

  3. Buat identitas terkelola yang ditetapkan pengguna dan catat ID klien, ID penyewa, nama, dan grup sumber dayanya.

  4. Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan pengguna di Azure App Configuration.

  5. Buat akun layanan dengan menambahkan file YAML (misalnya, serviceAccount.yaml) dengan konten berikut ke direktori yang berisi file penyebaran AKS Anda. Akun layanan akan dibuat saat Anda menerapkan semua perubahan penyebaran ke kluster AKS Anda (misalnya, menggunakan kubectl apply). Ganti <your-managed-identity-client-id> dengan ID klien dan <your-managed-identity-tenant-id> dengan ID penyewa identitas terkelola yang ditetapkan pengguna yang baru saja dibuat. Ganti <your-service-account-name> dengan nama pilihan Anda.

    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. Buat kredensial identitas federasi untuk identitas terkelola yang ditetapkan pengguna menggunakan Azure CLI. Ganti <user-assigned-identity-name> dengan nama dan <resource-group> dengan grup sumber daya identitas terkelola yang baru dibuat yang ditetapkan pengguna. Ganti <aks-oidc-issuer> dengan URL penerbit OIDC kluster AKS. Ganti <your-service-account-name> dengan nama akun layanan yang baru dibuat. Ganti <federated-identity-credential-name> dengan nama pilihan Anda untuk kredensial identitas federasi.

    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
    

    Perhatikan bahwa subjek kredensial identitas federasi harus mengikuti format ini: system:serviceaccount:<service-account-namespace>:<service-account-name>.

  7. Atur spec.auth.workloadIdentity.serviceAccountName properti ke nama akun layanan di sumber daya sampel AzureAppConfigurationProvider berikut. Pastikan bahwa AzureAppConfigurationProvider sumber daya dan akun layanan berada di namespace yang sama.

    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>
    

Gunakan string koneksi

  1. Buat Rahasia Kubernetes di namespace AzureAppConfigurationProvider yang sama dengan sumber daya dan tambahkan Azure App Configuration string koneksi dengan azure_app_configuration_connection_string kunci di Rahasia.

  2. Atur spec.connectionStringReference properti ke nama Rahasia dalam sumber daya sampel AzureAppConfigurationProvider berikut dan sebarkan ke kluster Kubernetes.

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

Pilihan nilai kunci

selectors Gunakan properti untuk memfilter nilai kunci yang akan diunduh dari Azure App Configuration.

Sampel berikut mengunduh semua nilai kunci tanpa label.

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

Dalam contoh berikut, dua pemilih digunakan untuk mengambil dua set nilai kunci, masing-masing dengan label unik. Penting untuk dicatat bahwa nilai pemilih terakhir lebih diutamakan dan mengambil alih kunci yang tumpang tindih dari pemilih sebelumnya.

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

Filter tag juga dapat digunakan untuk memfilter nilai kunci. Dalam contoh berikut, hanya nilai kunci dengan tag env=prod yang diunduh.

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

Rekam jepret dapat digunakan sendiri atau bersama dengan pemilih nilai kunci lainnya. Dalam sampel berikut, Anda memuat nilai kunci konfigurasi umum dari rekam jepret lalu menimpa beberapa di antaranya dengan nilai kunci untuk pengembangan.

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

Pemangkasan awalan kunci

Sampel berikut menggunakan properti untuk memangkas trimKeyPrefixes dua awalan dari nama kunci sebelum menambahkannya ke ConfigMap yang dihasilkan.

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]

Refresh konfigurasi

Saat membuat perubahan pada data di Azure App Configuration, Anda mungkin ingin perubahan tersebut di-refresh secara otomatis di kluster Kubernetes Anda. Dalam sampel berikut, penyedia Kubernetes memeriksa Azure App Configuration untuk pembaruan setiap menit. ConfigMap dan Secret terkait hanya diregenerasi saat perubahan terdeteksi. Untuk informasi selengkapnya tentang memantau perubahan konfigurasi, lihat Praktik terbaik untuk refresh konfigurasi.

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

Referensi Key Vault

Autentikasi

Dalam sampel berikut, satu Key Vault diautentikasi dengan perwakilan layanan, sementara semua Key Vault lainnya diautentikasi dengan identitas terkelola yang ditetapkan pengguna.

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>

Jenis Rahasia

Dua jenis Rahasia bawaan Kubernetes, Buram dan TLS, saat ini didukung. Rahasia yang diselesaikan dari referensi Key Vault disimpan sebagai jenis Rahasia Buram secara default. Jika Anda memiliki referensi Key Vault ke sertifikat dan ingin menyimpannya sebagai jenis Rahasia TLS, Anda dapat menambahkan tag dengan nama dan nilai berikut ke referensi Key Vault di Azure App Configuration. Dengan demikian, Rahasia dengan kubernetes.io/tls jenis akan dibuat dan dinamai sesuai dengan kunci referensi Key Vault.

Nama Nilai
.kubernetes.secret.type kubernetes.io/tls

Contoh berikut menunjukkan bagaimana data diisi dalam Rahasia yang dihasilkan dengan berbagai jenis.

Dengan asumsi penyimpanan App Configuration memiliki referensi Key Vault ini:

kunci nilai tag
app1-secret1 <Referensi Key Vault 1> {}
app1-secret2 <Referensi Key Vault 2> {}
app1-certificate <Referensi Key Vault 3> {".kubernetes.secret.type": "kubernetes.io/tls"}

Sampel berikut menghasilkan Rahasia dari jenis Buram dan TLS.

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>

Rahasia yang dihasilkan diisi dengan data berikut:

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>

Refresh rahasia dari Key Vault

Menyegarkan rahasia dari Key Vault biasanya memerlukan pemuatan ulang referensi Key Vault yang sesuai dari Azure App Configuration. Namun, dengan spec.secret.refresh properti , Anda dapat me-refresh rahasia dari Key Vault secara independen. Ini sangat berguna untuk memastikan bahwa beban kerja Anda secara otomatis mengambil rahasia yang diperbarui dari Key Vault selama rotasi rahasia. Perhatikan bahwa untuk memuat versi terbaru rahasia, referensi Key Vault tidak boleh menjadi rahasia versi.

Sampel berikut me-refresh semua rahasia non-versi dari Key Vault setiap jam.

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

Bendera Fitur

Dalam sampel berikut, bendera fitur dengan kunci yang dimulai dengan app1 dan label yang setara common dengan diunduh dan di-refresh setiap 10 menit. Perhatikan bahwa untuk mengisi bendera fitur di ConfigMap yang dihasilkan, configMapData.type properti harus json atau yaml.

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

Refresh sesuai permintaan

Meskipun Anda dapat menyiapkan refresh data otomatis, ada kalanya Anda mungkin ingin memicu refresh sesuai permintaan untuk mendapatkan data terbaru dari App Configuration dan Key Vault. Ini dapat dilakukan dengan menambahkan atau memperbarui anotasi apa pun di bagian metadata.annotationsAzureAppConfigurationProvider. Penyedia Kubernetes kemudian akan mendamaikan dan memperbarui ConfigMap dan Secret dengan data terbaru dari penyimpanan App Configuration dan Key Vault Anda.

Dalam contoh berikut, diperbarui AzureAppConfigurationProvider dengan anotasi baru. Setelah modifikasi, terapkan perubahan menggunakan kubectl apply untuk memicu refresh sesuai permintaan.

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>

Konsumsi ConfigMap

Aplikasi yang berjalan di Kubernetes biasanya menggunakan ConfigMap baik sebagai variabel lingkungan atau sebagai file konfigurasi. configMapData.type Jika properti tidak ada atau diatur ke default, ConfigMap diisi dengan daftar data terperinci yang diambil dari Azure App Configuration, yang dapat dengan mudah digunakan sebagai variabel lingkungan. configMapData.type Jika properti diatur ke json, yaml, atau properti, data yang diambil dari Azure App Configuration dikelompokkan ke dalam satu item dengan nama kunci yang ditentukan oleh configMapData.key properti dalam ConfigMap yang dihasilkan, yang dapat digunakan sebagai file yang dipasang.

Contoh berikut menunjukkan bagaimana data diisi dalam ConfigMap yang dihasilkan dengan pengaturan properti yang configMapData.type berbeda.

Dengan asumsi penyimpanan App Configuration memiliki nilai kunci ini:

kunci nilai
kunci1 nilai1
kunci2 nilai2
key3 value3

configMapData.type Dan properti tidak ada atau diatur ke default,

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

ConfigMap yang dihasilkan diisi dengan data berikut:

data:
  key1: value1
  key2: value2
  key3: value3