مشاركة عبر


مرجع موفر Kubernetes لتكوين تطبيق Azure

يوضح المرجع التالي الخصائص التي يدعمها موفر 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. يمكنك معرفة المزيد حول جمع البيانات واستخدامها في وثائق التعليمات وبيان الخصوصية. يعمل استخدامك للبرنامج كموافقتك على هذه الممارسات.

الأمثلة

المصادقة

استخدام الهوية المدارة المعينة من قبل النظام لمجموعة مقياس الجهاز الظاهري

  1. تمكين الهوية المدارة المعينة من قبل النظام في مجموعة مقياس الجهاز الظاهري المستخدمة من قبل نظام مجموعة Azure Kubernetes Service (AKS).

  2. امنح دور قارئ بيانات تكوين التطبيق للهوية المدارة المعينة من قبل النظام في Azure App Configuration.

  3. انشر نموذج 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
    

استخدام الهوية المدارة المعينة من قبل المستخدم لمجموعة مقياس الجهاز الظاهري

  1. قم بإنشاء هوية مدارة معينة من قبل المستخدم ولاحظ معرف العميل الخاص بها بعد الإنشاء.

  2. تعيين الهوية المدارة المعينة من قبل المستخدم إلى مجموعة مقياس الجهاز الظاهري المستخدمة من قبل نظام مجموعة Azure Kubernetes Service (AKS).

  3. امنح الهوية المدارة المعينة من قبل المستخدم دور قارئ بيانات تكوين التطبيق في تكوين تطبيق Azure.

  4. تعيين الخاصية 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>
    

استخدام كيان الخدمة

  1. إنشاء كيان الخدمة

  2. امنح دور قارئ بيانات تكوين التطبيق الأساسي للخدمة في Azure App Configuration.

  3. إنشاء سر Kubernetes في نفس مساحة الاسم مثل AzureAppConfigurationProvider المورد وإضافة azure_client_id azure_client_secret azure_tenant_id كيان الخدمة إلى البيانات السرية.

  4. تعيين الخاصية 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>
    

استخدام هوية حمل العمل

  1. تمكين هوية حمل العمل على نظام مجموعة خدمة Azure Kubernetes (AKS).

  2. احصل على عنوان URL لمصدر OIDC لمجموعة AKS.

  3. قم بإنشاء هوية مدارة معينة من قبل المستخدم ولاحظ معرف العميل ومعرف المستأجر والاسم ومجموعة الموارد الخاصة به.

  4. امنح الهوية المدارة المعينة من قبل المستخدم دور قارئ بيانات تكوين التطبيق في تكوين تطبيق Azure.

  5. إنشاء حساب خدمة عن طريق إضافة ملف 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>
    
  6. إنشاء بيانات اعتماد هوية موحدة للهوية المدارة المعينة من قبل المستخدم باستخدام 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>.

  7. قم بتعيين الخاصية 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>
    

استخدام سلسلة الاتصال

  1. إنشاء سر Kubernetes في نفس مساحة الاسم مثل AzureAppConfigurationProvider المورد وإضافة تكوين تطبيق Azure سلسلة الاتصال مع مفتاح azure_app_configuration_connection_string في السر.

  2. تعيين الخاصية 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