إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح المرجع التالي الخصائص التي يدعمها موفر v2.3.0 Kubernetes لتكوين تطبيق Azure أو أحدث. راجع ملاحظات الإصدار للحصول على مزيد من المعلومات حول التغيير.
خصائص
يحتوي AzureAppConfigurationProvider المورد على الخصائص الفرعية التالية من المستوى الأعلى ضمن spec. إما endpoint أو connectionStringReference يجب تحديده.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| نقطة النهاية | نقطة نهاية Azure App Configuration، والتي ترغب في استرداد قيم المفاتيح منها. | بديل | سلسلة |
| connectionStringReference | اسم Kubernetes Secret الذي يحتوي على تكوين تطبيق Azure سلسلة الاتصال. | بديل | سلسلة |
| replicaDiscoveryEnabled | الإعداد الذي يحدد ما إذا كان يتم اكتشاف النسخ المتماثلة من Azure App Configuration واستخدامها تلقائيا لتجاوز الفشل. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية.true |
true | منطقي |
| loadBalancingEnabled | الإعداد الذي يمكن حمل العمل من توزيع الطلبات على App Configuration عبر جميع النسخ المتماثلة المتوفرة. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية.false |
true | منطقي |
| الهدف | وجهة قيم المفاتيح المستردة في Kubernetes. | صحيح | كائن |
| المصادقة | طريقة المصادقة للوصول إلى تكوين تطبيق Azure. | true | كائن |
| التكوين | إعدادات الاستعلام عن قيم المفاتيح ومعالجتها في Azure App Configuration. | true | كائن |
| سري | إعدادات مراجع Key Vault في Azure App Configuration. | شرطي | كائن |
| featureFlag | إعدادات علامات الميزات في Azure App Configuration. | true | كائن |
الخاصية spec.target لها الخاصية التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| configMapName | اسم ConfigMap المراد إنشاؤه. | صحيح | سلسلة |
| configMapData | الإعداد الذي يحدد كيفية ملء البيانات المستردة في ConfigMap الذي تم إنشاؤه. | true | كائن |
spec.target.configMapData إذا لم يتم تعيين الخاصية، يتم ملء ConfigMap الذي تم إنشاؤه بقائمة قيم المفاتيح التي تم استردادها من تكوين تطبيق Azure، والذي يسمح باستهلاك ConfigMap كمتغيرات البيئة. قم بتحديث هذه الخاصية إذا كنت ترغب في استهلاك ConfigMap كملف مثبت. تحتوي هذه الخاصية على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| النوع | الإعداد الذي يشير إلى كيفية إنشاء البيانات المستردة في ConfigMap الذي تم إنشاؤه. تتضمن defaultالقيم المسموح بها و jsonyaml و.properties |
اختياري | سلسلة |
| المفتاح | اسم المفتاح للبيانات التي تم استردادها عند type تعيين إلى json، yaml أو properties. قم بتعيينه إلى اسم الملف إذا تم إعداد ConfigMap ليتم استهلاكه كملف مثبت. |
شرطي | سلسلة |
| الفاصل | المحدد المستخدم لإخراج بيانات ConfigMap بتنسيق هرمي عند تعيين النوع إلى json أو yaml. يكون الفاصل فارغا بشكل افتراضي ويحتوي ConfigMap الذي تم إنشاؤه على قيم مفاتيح في شكلها الأصلي. قم بتكوين هذا الإعداد فقط إذا لم يتمكن محمل ملف التكوين المستخدم في التطبيق الخاص بك من تحميل قيم المفاتيح دون تحويلها إلى التنسيق الهرمي. |
اختياري | سلسلة |
spec.auth الخاصية غير مطلوبة إذا تم توفير سلسلة الاتصال لمتجر App Configuration عن طريق تعيين الخاصية spec.connectionStringReference . وإلا، يتم استخدام إحدى الهويات أو كيان الخدمة أو هوية حمل العمل أو الهوية المدارة للمصادقة. يحتوي spec.auth على الخصائص التابعة التالية. يجب تحديد واحد منها فقط. إذا لم يتم تعيين أي منها، يتم استخدام الهوية المدارة المعينة من قبل النظام لمجموعة مقياس الجهاز الظاهري.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| مرجع servicePrincipal | اسم Kubernetes Secret الذي يحتوي على بيانات اعتماد كيان الخدمة. يجب أن يكون السر في نفس مساحة الاسم مثل موفر Kubernetes. | true | سلسلة |
| معرف حمل العمل | إعدادات استخدام هوية حمل العمل. | true | كائن |
| managedIdentityClientId | معرف العميل للهوية المدارة المعينة من قبل المستخدم لمجموعة مقياس الجهاز الظاهري. | true | سلسلة |
الخاصية spec.auth.workloadIdentity لها الخاصية التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| اسم حساب الخدمة | اسم حساب الخدمة المقترن بهوية حمل العمل. | صحيح | سلسلة |
يحتوي spec.configuration على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| محددات | قائمة المحددات لتصفية قيمة المفتاح. | true | صفيف الكائن |
| trimKeyPrefixes | قائمة البادئات الرئيسية المراد اقتطاعها. | true | صفيف سلسلة |
| تحديث | إعدادات تحديث قيم المفاتيح من Azure App Configuration. إذا كانت الخاصية غير موجودة، فلن يتم تحديث قيم المفاتيح من Azure App Configuration. | true | كائن |
إذا لم يتم تعيين الخاصية spec.configuration.selectors ، يتم تنزيل جميع قيم المفاتيح بدون تسمية. يحتوي على صفيف من عناصر المحدد ، والتي لها الخصائص التابعة التالية. لاحظ أن قيم المفاتيح للمحدد الأخير لها الأسبقية وتتجاوز أي مفاتيح متداخلة من المحددات السابقة.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| keyFilter | عامل تصفية المفتاح للاستعلام عن قيم المفاتيح. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. |
بديل | سلسلة |
| labelFilter | عامل تصفية التسمية للاستعلام عن قيم المفاتيح. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. |
true | سلسلة |
| عوامل تصفية العلامات | تقوم الوسوم بتصفية الاستعلام عن قيم المفاتيح. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. يجب تنسيق مرشح الوسوم ك tag1=value1. |
true | صفيف سلسلة |
| اسم اللقطة | اسم لقطة يتم تحميل قيم المفاتيح منها. يجب عدم استخدام هذه الخاصية بالاقتران مع خصائص أخرى. | بديل | سلسلة |
تحتوي spec.configuration.refresh الخاصية على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| مُمكَّن | الإعداد الذي يحدد ما إذا كان يتم تحديث قيم المفاتيح من Azure App Configuration تلقائيا. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية.false |
true | منطقي |
| المراقبة | قيم المفاتيح التي تتم مراقبتها للكشف عن التغيير، المعروفة باسم مفاتيح sentinel. يتم تحديث قيم المفاتيح من Azure App Configuration فقط إذا تم تغيير واحدة على الأقل من قيم المفاتيح المراقبة. إذا كانت هذه الخاصية غير موجودة، فستتم مراقبة جميع قيم المفاتيح المحددة للتحديث. | true | كائن |
| الفاصل الزمني | الفاصل الزمني الذي يتم فيه تحديث قيم المفاتيح من Azure App Configuration. يجب أن يكون أكبر من أو يساوي 1 ثانية. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية تبلغ 30 ثانية. | true | سلسلة المدة |
spec.configuration.refresh.monitoring.keyValues هو صفيف من الكائنات، التي لها الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| المفتاح | مفتاح قيمة المفتاح. | صحيح | سلسلة |
| تسمية | تسمية قيمة المفتاح. | true | سلسلة |
تحتوي spec.secret الخاصية على الخصائص التابعة التالية. مطلوب إذا كان من المتوقع تنزيل أي مراجع Key Vault. لمعرفة المزيد حول دعم أنواع البيانات السرية المضمنة في Kubernetes، راجع أنواع البيانات السرية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| الهدف | وجهة الأسرار المستردة في Kubernetes. | صحيح | كائن |
| المصادقة | طريقة المصادقة للوصول إلى Key Vaults. | true | كائن |
| تحديث | إعدادات تحديث البيانات من Key Vaults. إذا كانت الخاصية غير موجودة، فلن يتم تحديث البيانات من Key Vaults ما لم تتم إعادة تحميل مراجع Key Vault المقابلة. | true | كائن |
الخاصية spec.secret.target لها الخاصية التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| اسم السر | اسم Kubernetes Secret الذي سيتم إنشاؤه. | صحيح | سلسلة |
| بيانات سرية | الإعداد الذي يحدد كيفية ملء البيانات التي تم استردادها في البيانات السرية التي تم إنشاؤها. | صحيح | سلسلة |
إذا لم يتم تعيين الخاصية spec.secret.target.secretData ، يتم ملء البيانات السرية التي تم إنشاؤها بقائمة قيم المفاتيح التي تم استردادها من Key Vaults، والتي تسمح باستهلاك البيانات السرية كمتغيرات البيئة. قم بتحديث هذه الخاصية إذا كنت ترغب في استهلاك البيانات السرية كملف مثبت. تحتوي هذه الخاصية على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| النوع | الإعداد الذي يشير إلى كيفية إنشاء البيانات المستردة في البيانات السرية التي تم إنشاؤها. تتضمن defaultالقيم المسموح بها و jsonyaml و.properties |
اختياري | سلسلة |
| المفتاح | اسم المفتاح للبيانات التي تم استردادها عند type تعيين إلى json، yaml أو properties. قم بتعيينه إلى اسم الملف إذا تم إعداد Secret ليتم استهلاكه كملف مثبت. |
شرطي | سلسلة |
| الفاصل | المحدد المستخدم لإخراج البيانات السرية بتنسيق هرمي عند تعيين النوع إلى json أو yaml. يكون الفاصل فارغا بشكل افتراضي ويحتوي Secret الذي تم إنشاؤه على قيم مفاتيح في شكلها الأصلي. قم بتكوين هذا الإعداد فقط إذا لم يتمكن محمل ملف التكوين المستخدم في التطبيق الخاص بك من تحميل قيم المفاتيح دون تحويلها إلى التنسيق الهرمي. |
اختياري | سلسلة |
إذا لم يتم تعيين الخاصية spec.secret.auth ، يتم استخدام الهوية المدارة المعينة من قبل النظام. يحتوي على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| مرجع servicePrincipal | اسم Kubernetes Secret الذي يحتوي على بيانات اعتماد كيان الخدمة المستخدمة للمصادقة مع Key Vaults التي لا تحتوي على أساليب مصادقة فردية محددة. | true | سلسلة |
| معرف حمل العمل | إعدادات هوية حمل العمل المستخدمة للمصادقة مع Key Vaults التي لا تحتوي على أساليب مصادقة فردية محددة. لها نفس الخاصية التابعة مثل spec.auth.workloadIdentity. |
true | كائن |
| managedIdentityClientId | معرف العميل للهوية المدارة المعينة من قبل المستخدم لمجموعة مقياس الجهاز الظاهري المستخدمة للمصادقة مع Key Vaults التي لا تحتوي على أساليب مصادقة فردية محددة. | true | سلسلة |
| خزائن المفاتيح | أساليب المصادقة ل Key Vaults الفردية. | true | صفيف الكائن |
يمكن تحديد أسلوب المصادقة لكل Key Vault بالخصائص التالية. يجب توفير واحد من managedIdentityClientId، servicePrincipalReference أو workloadIdentity .
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| URI | عنوان URI ل Key Vault. | صحيح | سلسلة |
| مرجع servicePrincipal | اسم Kubernetes Secret الذي يحتوي على بيانات اعتماد كيان الخدمة المستخدم للمصادقة مع Key Vault. | true | سلسلة |
| معرف حمل العمل | إعدادات هوية حمل العمل المستخدمة للمصادقة مع Key Vault. لها نفس الخاصية التابعة مثل spec.auth.workloadIdentity. |
true | كائن |
| managedIdentityClientId | معرف العميل للهوية المدارة المعينة من قبل المستخدم لمجموعة مقياس الجهاز الظاهري المستخدمة للمصادقة مع Key Vault. | true | سلسلة |
تحتوي spec.secret.refresh الخاصية على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| مُمكَّن | الإعداد الذي يحدد ما إذا كان يتم تحديث البيانات من Key Vaults تلقائيا. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية.false |
true | منطقي |
| الفاصل الزمني | الفاصل الزمني الذي يتم فيه تحديث البيانات من Key Vault. يجب أن تكون أكبر من أو تساوي دقيقة واحدة. تحديث Key Vault مستقل عن تحديث تكوين التطبيق الذي تم تكوينه عبر spec.configuration.refresh. |
صحيح | سلسلة المدة |
تحتوي spec.featureFlag الخاصية على الخصائص التابعة التالية. وهو مطلوب إذا كان من المتوقع تنزيل أي علامات ميزة.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| محددات | قائمة المحددات لتصفية علامة الميزة. | true | صفيف الكائن |
| تحديث | إعدادات تحديث علامات الميزات من Azure App Configuration. إذا كانت الخاصية غير موجودة، فلن يتم تحديث علامات الميزات من Azure App Configuration. | true | كائن |
إذا لم يتم تعيين الخاصية spec.featureFlag.selectors ، فلن يتم تنزيل علامات الميزات. يحتوي على صفيف من عناصر المحدد ، والتي لها الخصائص التابعة التالية. لاحظ أن علامات الميزة للمحدد الأخير لها الأسبقية وتتجاوز أي مفاتيح متداخلة من المحددات السابقة.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| keyFilter | عامل تصفية المفتاح للاستعلام عن علامات الميزات. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. |
بديل | سلسلة |
| labelFilter | عامل تصفية التسمية للاستعلام عن علامات الميزات. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. |
true | سلسلة |
| عوامل تصفية العلامات | تقوم الوسوم بتصفية علامات الاستعلام عن الميزات. يجب عدم تعيين هذه الخاصية والخاصية snapshotName في نفس الوقت. يجب تنسيق مرشح الوسوم ك tag1=value1. |
true | صفيف سلسلة |
| اسم اللقطة | اسم لقطة يتم تحميل علامات الميزة منها. يجب عدم استخدام هذه الخاصية بالاقتران مع خصائص أخرى. | بديل | سلسلة |
تحتوي spec.featureFlag.refresh الخاصية على الخصائص التابعة التالية.
| الاسم | الوصف | مطلوب | نوع |
|---|---|---|---|
| مُمكَّن | الإعداد الذي يحدد ما إذا كان يتم تحديث علامات الميزات من Azure App Configuration تلقائيا. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية.false |
true | منطقي |
| الفاصل الزمني | الفاصل الزمني الذي يتم فيه تحديث علامات الميزة من Azure App Configuration. يجب أن يكون أكبر من أو يساوي 1 ثانية. إذا كانت الخاصية غير موجودة، يتم استخدام قيمة افتراضية تبلغ 30 ثانية. | true | سلسلة المدة |
التثبيت
استخدم الأمر التالي helm install لتثبيت Azure App Configuration Kubernetes Provider. راجع helm-values.yaml للحصول على القائمة الكاملة للمعلمات وقيمها الافتراضية. يمكنك تجاوز القيم الافتراضية عن طريق تمرير العلامة --set إلى الأمر .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
التحجيم التلقائي
بشكل افتراضي، يتم تعطيل التحجيم التلقائي. ومع ذلك، إذا كان لديك موارد متعددة AzureAppConfigurationProvider لإنتاج ConfigMaps/Secrets متعددة، يمكنك تمكين التحجيم التلقائي للجراب الأفقي عن طريق تعيين autoscaling.enabled إلى true.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
تجميع البيانات
قد يجمع البرنامج معلومات عنك وعن استخدامك للبرنامج ويرسلها إلى Microsoft. يجوز لشركة Microsoft استخدام هذه المعلومات لتوفير الخدمات وتحسين منتجاتنا وخدماتنا. يمكنك إيقاف تشغيل القياس عن بعد عن طريق تعيين requestTracing.enabled=false أثناء تثبيت Azure App Configuration Kubernetes Provider. هناك أيضا بعض الميزات في البرنامج التي قد تمكنك أنت وMicrosoft من جمع البيانات من مستخدمي تطبيقاتك. إذا كنت تستخدم هذه الميزات، فيجب عليك الامتثال للقانون المعمول به، بما في ذلك توفير الإشعارات المناسبة لمستخدمي تطبيقاتك مع نسخة من بيان خصوصية Microsoft. يقع بيان الخصوصية لدينا في https://go.microsoft.com/fwlink/?LinkID=824704. يمكنك معرفة المزيد حول جمع البيانات واستخدامها في وثائق التعليمات وبيان الخصوصية. يعمل استخدامك للبرنامج كموافقتك على هذه الممارسات.
الأمثلة
المصادقة
استخدام الهوية المدارة المعينة من قبل النظام لمجموعة مقياس الجهاز الظاهري
تمكين الهوية المدارة المعينة من قبل النظام في مجموعة مقياس الجهاز الظاهري المستخدمة من قبل نظام مجموعة Azure Kubernetes Service (AKS).
امنح دور قارئ بيانات تكوين التطبيق للهوية المدارة المعينة من قبل النظام في Azure App Configuration.
انشر نموذج
AzureAppConfigurationProviderالمورد التالي إلى نظام مجموعة 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
استخدام الهوية المدارة المعينة من قبل المستخدم لمجموعة مقياس الجهاز الظاهري
قم بإنشاء هوية مدارة معينة من قبل المستخدم ولاحظ معرف العميل الخاص بها بعد الإنشاء.
تعيين الهوية المدارة المعينة من قبل المستخدم إلى مجموعة مقياس الجهاز الظاهري المستخدمة من قبل نظام مجموعة Azure Kubernetes Service (AKS).
امنح الهوية المدارة المعينة من قبل المستخدم دور قارئ بيانات تكوين التطبيق في تكوين تطبيق Azure.
تعيين الخاصية
spec.auth.managedIdentityClientIdإلى معرف العميل للهوية المدارة المعينة من قبل المستخدم في نموذجAzureAppConfigurationProviderالمورد التالي ونشره إلى نظام مجموعة 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>
استخدام كيان الخدمة
امنح دور قارئ بيانات تكوين التطبيق الأساسي للخدمة في Azure App Configuration.
إنشاء سر Kubernetes في نفس مساحة الاسم مثل
AzureAppConfigurationProviderالمورد وإضافة azure_client_id azure_client_secret azure_tenant_id كيان الخدمة إلى البيانات السرية.تعيين الخاصية
spec.auth.servicePrincipalReferenceإلى اسم Secret في نموذجAzureAppConfigurationProviderالمورد التالي ونشره إلى مجموعة 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>
استخدام هوية حمل العمل
تمكين هوية حمل العمل على نظام مجموعة خدمة Azure Kubernetes (AKS).
احصل على عنوان URL لمصدر OIDC لمجموعة AKS.
قم بإنشاء هوية مدارة معينة من قبل المستخدم ولاحظ معرف العميل ومعرف المستأجر والاسم ومجموعة الموارد الخاصة به.
امنح الهوية المدارة المعينة من قبل المستخدم دور قارئ بيانات تكوين التطبيق في تكوين تطبيق Azure.
إنشاء حساب خدمة عن طريق إضافة ملف YAML (على سبيل المثال، serviceAccount.yaml) مع المحتوى التالي إلى الدليل الذي يحتوي على ملفات نشر AKS. سيتم إنشاء حساب الخدمة عند تطبيق جميع تغييرات التوزيع على نظام مجموعة AKS (على سبيل المثال، باستخدام
kubectl apply). استبدل<your-managed-identity-client-id>بمعرف العميل ومعرف<your-managed-identity-tenant-id>المستأجر للهوية المدارة المعينة من قبل المستخدم التي تم إنشاؤها للتو. استبدل<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>إنشاء بيانات اعتماد هوية موحدة للهوية المدارة المعينة من قبل المستخدم باستخدام Azure CLI. استبدل
<user-assigned-identity-name>بالاسم و<resource-group>بمجموعة الموارد للهوية المدارة المعينة من قبل المستخدم التي تم إنشاؤها حديثا. استبدل<aks-oidc-issuer>بعنوان URL المصدر OIDC لمجموعة AKS. استبدل<your-service-account-name>باسم حساب الخدمة الذي تم إنشاؤه حديثا. استبدل<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لاحظ أن موضوع بيانات اعتماد الهوية الموحدة يجب أن يتبع هذا التنسيق:
system:serviceaccount:<service-account-namespace>:<service-account-name>.قم بتعيين الخاصية
spec.auth.workloadIdentity.serviceAccountNameإلى اسم حساب الخدمة في نموذجAzureAppConfigurationProviderالمورد التالي. تأكد من أنAzureAppConfigurationProviderالمورد وحساب الخدمة موجودان في نفس مساحة الاسم.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>
استخدام سلسلة الاتصال
إنشاء سر Kubernetes في نفس مساحة الاسم مثل
AzureAppConfigurationProviderالمورد وإضافة تكوين تطبيق Azure سلسلة الاتصال مع مفتاح azure_app_configuration_connection_string في السر.تعيين الخاصية
spec.connectionStringReferenceإلى اسم Secret في نموذجAzureAppConfigurationProviderالمورد التالي ونشره إلى مجموعة 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
تحديد قيمة المفتاح
استخدم الخاصية selectors لتصفية قيم المفاتيح التي سيتم تنزيلها من Azure App Configuration.
يقوم النموذج التالي بتنزيل كافة قيم المفاتيح بدون تسمية.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
في المثال التالي، يتم استخدام محددين لاسترداد مجموعتين من قيم المفاتيح، لكل منهما تسميات فريدة. من المهم ملاحظة أن قيم المحدد الأخير لها الأسبقية وتتجاوز أي مفاتيح متداخلة من المحددات السابقة.
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
يمكن أيضا استخدام مرشحات الوسوم لتصفية قيم المفاتيح. في العينة التالية، يتم تنزيل القيم الرئيسية فقط التي تحمل الوسم env=prod .
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
يمكن استخدام اللقطة وحدها أو مع محددات قيم المفاتيح الأخرى. في النموذج التالي، يمكنك تحميل قيم المفاتيح للتكوين الشائع من لقطة ثم تجاوز بعضها مع قيم المفاتيح للتطوير.
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
اقتطاع بادئة المفتاح
يستخدم النموذج التالي الخاصية trimKeyPrefixes لاقتطاع بادئين من أسماء المفاتيح قبل إضافتهما إلى ConfigMap الذي تم إنشاؤه.
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]
تحديث التكوين
عند إجراء تغييرات على بياناتك في Azure App Configuration، قد ترغب في تحديث هذه التغييرات تلقائيا في مجموعة Kubernetes. في النموذج التالي، يتحقق موفر Kubernetes من تكوين تطبيق Azure للحصول على تحديثات كل دقيقة. يتم إعادة إنشاء ConfigMap وSecret المقترنين فقط عند الكشف عن التغييرات. لمزيد من المعلومات حول مراقبة تغييرات التكوين، راجع أفضل الممارسات لتحديث التكوين.
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
المصادقة
في العينة التالية، تتم مصادقة Key Vault واحد مع كيان خدمة، بينما تتم مصادقة جميع Key Vaults الأخرى بهوية مدارة معينة من قبل المستخدم.
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>
أنواع البيانات السرية
يتم حاليا دعم نوعين مضمنين من البيانات السرية في Kubernetes، معتم وTLS. يتم حفظ الأسرار التي تم حلها من مراجع Key Vault كنوع سري مبهم بشكل افتراضي. إذا كان لديك مرجع Key Vault إلى شهادة وتريد حفظها كنوع سر TLS، يمكنك إضافة علامة بالاسم والقيمة التاليين إلى مرجع Key Vault في تكوين تطبيق Azure. من خلال القيام بذلك، سيتم إنشاء سر مع kubernetes.io/tls النوع وتسميتها بعد مفتاح مرجع Key Vault.
| الاسم | القيمة |
|---|---|
| .kubernetes.secret.type | kubernetes.io/tls |
توضح الأمثلة التالية كيفية ملء البيانات في البيانات السرية التي تم إنشاؤها مع أنواع مختلفة.
بافتراض أن متجر App Configuration يحتوي على مراجع Key Vault هذه:
| المفتاح | قيمة | العلامات |
|---|---|---|
| app1-secret1 | <مرجع Key Vault 1> | {} |
| app1-secret2 | <مرجع Key Vault 2> | {} |
| شهادة app1 | <مرجع Key Vault 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
ينشئ النموذج التالي أسرارا من كلا النوعين المبهم و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>
يتم ملء الأسرار التي تم إنشاؤها بالبيانات التالية:
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
عادة ما يتطلب تحديث الأسرار من Key Vaults إعادة تحميل مراجع Key Vault المقابلة من Azure App Configuration. ومع ذلك، باستخدام الخاصية spec.secret.refresh ، يمكنك تحديث الأسرار من Key Vault بشكل مستقل. هذا مفيد بشكل خاص لضمان أن حمل العمل الخاص بك يلتقط تلقائيا أي أسرار محدثة من Key Vault أثناء تدوير البيانات السرية. لاحظ أنه لتحميل أحدث إصدار من سر، يجب ألا يكون مرجع Key Vault سرا تم إصداره.
يقوم النموذج التالي بتحديث جميع الأسرار غير الإصدار من Key Vault كل ساعة.
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
علامات الميزة
في العينة التالية، يتم تنزيل علامات الميزات التي تحتوي على مفاتيح تبدأ ب app1 وتسميات مكافئة common لها وتحديثها كل 10 دقائق. لاحظ أنه لملء علامات الميزة في ConfigMap الذي تم إنشاؤه، يجب أن تكون configMapData.type الخاصية json أو 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
التحديث عند الطلب
بينما يمكنك إعداد تحديث تلقائي للبيانات، هناك أوقات قد ترغب فيها في تشغيل تحديث عند الطلب للحصول على أحدث البيانات من App Configuration وKey Vault. يمكن القيام بذلك عن طريق إضافة أو تحديث أي تعليقات توضيحية في metadata.annotations قسم من AzureAppConfigurationProvider. سيقوم موفر Kubernetes بعد ذلك بتسوية وتحديث ConfigMap وSecret مع أحدث البيانات من متجر App Configuration وKey Vault.
في المثال التالي، AzureAppConfigurationProvider يتم تحديث مع تعليق توضيحي جديد. بعد التعديل، قم بتطبيق التغييرات باستخدام kubectl apply لتشغيل تحديث عند الطلب.
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
عادة ما تستهلك التطبيقات التي تعمل في Kubernetes ConfigMap إما كمتغيرات بيئة أو كملفات تكوين. إذا كانت الخاصية configMapData.type غير موجودة أو تم تعيينها إلى الافتراضي، يتم ملء ConfigMap بقائمة العناصر من البيانات التي تم استردادها من تكوين تطبيق Azure، والتي يمكن استهلاكها بسهولة كمتغيرات البيئة. إذا تم تعيين الخاصية configMapData.type إلى json أو yaml أو الخصائص، يتم تجميع البيانات التي تم استردادها من Azure App Configuration في عنصر واحد باسم مفتاح محدد بواسطة configMapData.key الخاصية في ConfigMap الذي تم إنشاؤه، والذي يمكن استهلاكه كملف مثبت.
توضح الأمثلة التالية كيفية ملء البيانات في ConfigMap الذي تم إنشاؤه بإعدادات مختلفة للخاصية configMapData.type .
بافتراض أن متجر App Configuration يحتوي على هذه القيم الرئيسية:
| المفتاح | قيمة |
|---|---|
| key1 | value1 |
| key2 | value2 |
| key3 | value3 |
والخاصية configMapData.type غير موجودة أو معينة إلى 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 الذي تم إنشاؤه بالبيانات التالية:
data:
key1: value1
key2: value2
key3: value3