Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
Aktifkan identitas terkelola yang ditetapkan sistem dalam set skala komputer virtual yang digunakan oleh kluster Azure Kubernetes Service (AKS).
Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan sistem di Azure App Configuration.
Sebarkan sumber daya sampel
AzureAppConfigurationProviderberikut 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
Buat identitas terkelola yang ditetapkan pengguna dan catat ID kliennya setelah pembuatan.
Tetapkan identitas terkelola yang ditetapkan pengguna ke set skala komputer virtual yang digunakan oleh kluster Azure Kubernetes Service (AKS).
Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan pengguna di Azure App Configuration.
Atur
spec.auth.managedIdentityClientIdproperti ke ID klien identitas terkelola yang ditetapkan pengguna dalam sumber daya sampelAzureAppConfigurationProviderberikut 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
Berikan peran Pembaca Data App Configuration perwakilan layanan di Azure App Configuration.
Buat Rahasia Kubernetes di namespace
AzureAppConfigurationProvideryang sama dengan sumber daya dan tambahkan azure_client_id, azure_client_secret, dan azure_tenant_id perwakilan layanan ke Rahasia.Atur
spec.auth.servicePrincipalReferenceproperti ke nama Rahasia dalam sumber daya sampelAzureAppConfigurationProviderberikut 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
Aktifkan Identitas Beban Kerja pada kluster Azure Kubernetes Service (AKS).
Dapatkan URL penerbit OIDC dari kluster AKS.
Buat identitas terkelola yang ditetapkan pengguna dan catat ID klien, ID penyewa, nama, dan grup sumber dayanya.
Berikan peran Pembaca Data App Configuration identitas terkelola yang ditetapkan pengguna di Azure App Configuration.
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>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://AzureADTokenExchangePerhatikan bahwa subjek kredensial identitas federasi harus mengikuti format ini:
system:serviceaccount:<service-account-namespace>:<service-account-name>.Atur
spec.auth.workloadIdentity.serviceAccountNameproperti ke nama akun layanan di sumber daya sampelAzureAppConfigurationProviderberikut. Pastikan bahwaAzureAppConfigurationProvidersumber 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
Buat Rahasia Kubernetes di namespace
AzureAppConfigurationProvideryang sama dengan sumber daya dan tambahkan Azure App Configuration string koneksi dengan azure_app_configuration_connection_string kunci di Rahasia.Atur
spec.connectionStringReferenceproperti ke nama Rahasia dalam sumber daya sampelAzureAppConfigurationProviderberikut 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