توزيع وإدارة ملحقات نظام مجموعة Kubernetes الممكّنة في Azure Arc

يمكنك إنشاء مثيلات ملحق في مجموعة Kubernetes الممكنة بواسطة Arc، وإعداد المعلمات المطلوبة والاختيارية بما في ذلك الخيارات المتعلقة بالتحديثات والتكوينات. يمكنك أيضا عرض مثيلات الملحق وسردها وتحديثها وحذفها.

قبل البدء، اقرأ النظرة العامة المفاهيمية لملحقات مجموعة Kubernetes الممكنة في Arc وراجع قائمة الملحقات المتوفرة حاليا.

المتطلبات الأساسية

  • أحدث إصدار من Azure CLI.

  • أحدث إصدارات وملحقات connectedk8sk8s-extension Azure CLI. قم بتثبيت هذه الملحقات عن طريق تشغيل الأوامر التالية:

    az extension add --name connectedk8s
    az extension add --name k8s-extension
    

    إذا تم تثبيت الملحقين connectedk8s و k8s-extension بالفعل، فتأكد من تحديثهما إلى أحدث إصدار باستخدام الأوامر التالية:

    az extension update --name connectedk8s
    az extension update --name k8s-extension
    
  • نظام مجموعة Kubernetes متصل موجود يدعم Azure Arc، مع عقدة واحدة على الأقل من نظام التشغيل ونوع linux/amd64البنية . في حالة نشر Flux (GitOps)، يمكنك استخدام نظام مجموعة مستند إلى ARM64 بدون عقدة linux/amd64 .

تحديث مثيل ملحق البرنامج

لإنشاء مثيل ملحق جديد، استخدم k8s-extension create، تمرير القيم للمعلمات المطلوبة.

ينشئ هذا المثال مثيل ملحق Azure Monitor Container Insights على مجموعة Kubernetes الممكنة في Azure Arc:

az k8s-extension create --name azuremonitor-containers  --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

إخراج:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": null,
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

إشعار

الخدمة غير قادرة على الاحتفاظ بالمعلومات الحساسة لأكثر من 48 ساعة. إذا لم يكن لدى عوامل Kubernetes الممكنة في Azure Arc اتصال بالشبكة لأكثر من 48 ساعة ولا يمكنهم تحديد ما إذا كان سيتم إنشاء ملحق على نظام المجموعة، ينتقل الملحق إلى Failed الحالة. بمجرد حدوث ذلك، ستحتاج إلى التشغيل k8s-extension create مرة أخرى لإنشاء مورد Azure ملحق جديد.

Azure Monitor Container Insights هو ملحق أحادي (مطلوب واحد فقط لكل مجموعة). ستحتاج إلى تنظيف أي تثبيتات سابقة لمخطط Helm ل Azure Monitor Container Insights (بدون ملحقات) قبل تثبيت نفس التثبيت عبر الملحقات. اتبع الإرشادات لحذف مخطط Helm قبل تشغيل az k8s-extension create.

تتمثل المعلمات المطلوبة في الآتي

المعلمات التالية مطلوبة عند استخدام az k8s-extension create لإنشاء مثيل ملحق.

اسم المعلمة ‏‏الوصف
--name اسم مثيل ملحق اسم الملف
--extension-type نوع الملحق الذي تريد تثبيته على نظام المجموعة. على سبيل المثال: Microsoft.AzureMonitor.Containers، microsoft.azuredefender.kubernetes
--scope نطاق التثبيت للملحق: cluster أو namespace
--cluster-name اسم مورد Kubernetes الممكّن لـAzure Arc والذي يجب إنشاء مثيل الملحق عليه
--resource-group مجموعة الموارد التي تحتوي على مورد Kubernetes الممكّن لـAzure Arc
--cluster-type نوع نظام مجموعة أجهزة كمبيوتر الذي يجب إنشاء مثيل الملحق عليه. بالنسبة لمعظم السيناريوهات، استخدم connectedClusters، والذي يتوافق مع مجموعات Kubernetes الممكنة في Azure Arc.

تتمثل المعلمات الاختيارية في الآتي

استخدم معلمة واحدة أو أكثر من هذه المعلمات الاختيارية حسب الحاجة للسيناريوهات الخاصة بك، جنبا إلى جنب مع المعلمات المطلوبة.

إشعار

يمكنك اختيار ترقية مثيل الملحق تلقائيا إلى أحدث الإصدارات الثانوية والتصحيحية عن طريق الإعداد auto-upgrade-minor-version إلى true، أو يمكنك بدلا من ذلك تعيين إصدار مثيل الملحق يدويا باستخدام المعلمة --version . نوصي بتمكين الترقيات التلقائية للإصدارات الثانوية والتصحيحية بحيث يكون لديك دائما أحدث التصحيحات والقدرات الأمنية.

نظرا لأن ترقيات الإصدار الرئيسية قد تتضمن تغييرات فاصلة، فإن الترقيات التلقائية للإصدارات الرئيسية الجديدة لمثيل ملحق غير مدعومة. يمكنك اختيار وقت ترقية مثيلات الملحق يدويا إلى إصدار رئيسي جديد.

اسم المعلمة ‏‏الوصف
--auto-upgrade-minor-version خاصية منطقية تحدد ما إذا كان يتم ترقية الإصدار الثانوي للملحق تلقائيا. الإعداد الافتراضي هو true. إذا تم تعيين هذه المعلمة إلى true، فلا يمكنك تعيين المعلمة version ، حيث سيتم تحديث الإصدار ديناميكيا. إذا تم تعيينه إلى false، فلن تتم ترقية الملحق تلقائيا، حتى بالنسبة لإصدارات التصحيح.
--version إصدار ملحق البرنامج الذي سيتم تثبيته (إصدار محدد لتثبيت مثيل الملحق). يجب عدم توفير إذا auto-upgrade-minor-version تم تعيين إلى true.
--configuration-settings الإعدادات التي يمكن تمريرها إلى ملحق المستعرض عنصر التحكم ووظائفه. يتم تمريرها كأزواج مفصولة بمسافة key=value بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings-file في نفس الأمر.
--configuration-settings-file المسار إلى ملف JSON مع key=value أزواج لاستخدامها لتمرير إعدادات التكوين إلى الملحق. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings في نفس الأمر.
--configuration-protected-settings الإعدادات التي لا يمكن استردادها باستخدام GET استدعاءات أو az k8s-extension show أوامر واجهة برمجة التطبيقات. يستخدم عادة لتمرير الإعدادات الحساسة. يتم تمريرها كأزواج مفصولة بمسافة key=value بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings-file في نفس الأمر.
--configuration-protected-settings-file المسار إلى ملف JSON مع key=value أزواج لاستخدامها لتمرير الإعدادات الحساسة إلى الملحق. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings في نفس الأمر.
--release-namespace تشير المعلمة إلى مساحة الاسم التي سيتم إنشاء الإصدار ضمنها. ذات صلة فقط إذا scope تم تعيين إلى cluster.
--release-train يمكن لمؤلفي الملحقات نشر إصدارات في قطارات إصدار مختلفة مثل Stable، Preview، وما إلى ذلك. إذا لم يتم تعيين هذه المعلمة بشكل صريح، Stable يتم استخدامها كافتراضية.
--target-namespace يشير إلى مساحة الاسم التي سيتم إنشاء الإصدار داخلها. يتم تقييد إذن حساب النظام الذي تم إنشاؤه لمثيل ملحق البرنامج هذا إلى مساحة الاسم. ذات صلة فقط إذا scope تم تعيين إلى namespace.

إظهار تفاصيل الملحق

لعرض تفاصيل مثيل ملحق مثبت حاليا، استخدم k8s-extension show، تمرير قيم المعلمات الإلزامية.

az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

إخراج:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": "2021-04-02T12:13:49.636+00:00",
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

سرد كافة الملحقات المثبتة على مجموعة أجهزة كمبيوتر

لعرض قائمة بجميع الملحقات المثبتة على نظام مجموعة، استخدم k8s-extension list، مرر قيم المعلمات الإلزامية.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

إخراج:

[
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-15T02:26:03.5519523+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "Microsoft.AzureMonitor.Containers",
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
    "lastStatusTime": null,
    "name": "myExtInstanceName",
    "releaseTrain": "Stable",
    "resourceGroup": "myRG",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName1"
      }
    },
    "statuses": [],
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  },
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-02T00:41:16.8005159+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "microsoft.azuredefender.kubernetes",
    "id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
    "lastStatusTime": null,
    "name": "microsoft.azuredefender.kubernetes",
    "releaseTrain": "Stable",
    "resourceGroup": "myRg",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName2"
      }
    },
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  }
]

تحديث مثيل ملحق البرنامج

إشعار

راجع الوثائق الخاصة بنوع الملحق المحدد لفهم الإعدادات المحددة في --configuration-settings والتي --configuration-protected-settings يمكن تحديثها. بالنسبة --configuration-protected-settingsإلى ، من المتوقع توفير جميع الإعدادات، حتى إذا تم تحديث إعداد واحد فقط. إذا تم حذف أي من هذه الإعدادات، فسيتم اعتبار هذه الإعدادات قديمة وحذفها.

لتحديث مثيل ملحق موجود، استخدم k8s-extension update، تمرير قيم المعلمات الإلزامية والاختيارية. المعلمات الإلزامية والاختيارية مختلفة قليلا عن تلك المستخدمة لإنشاء مثيل ملحق.

يحدث auto-upgrade-minor-version هذا المثال الإعداد لمثيل ملحق Azure التعلم الآلي إلى true:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters

المعلمات المطلوبة للتحديث

اسم المعلمة ‏‏الوصف
--name اسم مثيل ملحق اسم الملف
--cluster-name اسم نظام المجموعة الذي يجب إنشاء مثيل الملحق عليه
--resource-group مجموعة الموارد التي تحتوي على نظام المجموعة
--cluster-type نوع نظام مجموعة أجهزة كمبيوتر الذي يجب إنشاء مثيل الملحق عليه. بالنسبة لمجموعات Kubernetes الممكنة في Azure Arc، استخدم connectedClusters. بالنسبة لمجموعات AKS، استخدم managedClusters.

معلمات اختيارية للتحديث

اسم المعلمة ‏‏الوصف
--auto-upgrade-minor-version خاصية منطقية تحدد ما إذا كان يتم ترقية الإصدار الثانوي للملحق تلقائيا. الإعداد الافتراضي هو true. إذا تم تعيين هذه المعلمة إلى true، فلا يمكنك تعيين المعلمة version ، حيث سيتم تحديث الإصدار ديناميكيا. إذا تم تعيينه إلى false، فلن تتم ترقية الملحق تلقائيا، حتى بالنسبة لإصدارات التصحيح.
--version إصدار ملحق البرنامج الذي سيتم تثبيته (إصدار محدد لتثبيت مثيل الملحق). لا يجب الدعم إذا تم تعيين التحديث التلقائي-الإصدار الثانوي إلى true.
--configuration-settings الإعدادات التي يمكن تمريرها إلى ملحق المستعرض عنصر التحكم ووظائفه. يتم تمريرها كأزواج مفصولة بمسافة key=value بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings-file في نفس الأمر. توفير الإعدادات التي تتطلب تحديثا فقط. سيتم استبدال الإعدادات المتوفرة بالقيم المحددة.
--configuration-settings-file المسار إلى ملف JSON مع key=value أزواج لاستخدامها لتمرير إعدادات التكوين إلى الملحق. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings في نفس الأمر.
--configuration-protected-settings الإعدادات التي لا يمكن استردادها باستخدام GET استدعاءات أو az k8s-extension show أوامر واجهة برمجة التطبيقات. يستخدم عادة لتمرير الإعدادات الحساسة. يتم تمريرها كأزواج مفصولة بمسافة key=value بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings-file في نفس الأمر. عند تحديث إعداد محمي، من المتوقع تحديد كافة الإعدادات المحمية. إذا تم حذف أي من هذه الإعدادات، فسيتم اعتبار هذه الإعدادات قديمة وحذفها.
--configuration-protected-settings-file المسار إلى ملف JSON مع key=value أزواج لاستخدامها لتمرير الإعدادات الحساسة إلى الملحق. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings في نفس الأمر.
--scope نطاق التثبيت للملحق - cluster أو namespace.
--release-train يمكن لمؤلفي الملحقات نشر إصدارات في قطارات إصدار مختلفة مثل Stable، Preview، وما إلى ذلك. إذا لم يتم تعيين هذه المعلمة بشكل صريح، Stable يتم استخدامها كافتراضية.

ترقية مثيل الملحق

كما هو ملاحظ سابقا، إذا قمت بتعيين auto-upgrade-minor-version إلى صحيح، ستتم ترقية الملحق تلقائيا عند إصدار إصدار ثانوي جديد. بالنسبة لمعظم السيناريوهات، نوصي بتمكين الترقيات التلقائية. إذا قمت بتعيين auto-upgrade-minor-version إلى خطأ، يتعين عليك ترقية الملحق يدويا إذا كنت تريد إصدارا أحدث.

الترقيات اليدوية مطلوبة أيضا للحصول على مثيل رئيسي جديد لملحق. يمكنك اختيار وقت الترقية لتجنب أي تغييرات مفاجئة غير متوقعة مع ترقيات الإصدار الرئيسي.

لترقية مثيل ملحق يدويا، استخدم k8s-extension update المعلمة version وقم بتعيينها لتحديد إصدار.

يحدث هذا المثال مثيل ملحق Azure التعلم الآلي إلى الإصدار x.y.z:

az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z

حذف مثيل ملحق البرنامج

لحذف مثيل ملحق على نظام مجموعة، استخدم k8s-extension delete، مرر قيم المعلمات الإلزامية:

az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

إشعار

حذف مورد Azure الذي يمثل هذا الملحق على الفور. حذف إصدار هيلم على مجموعة أجهزة كمبيوتر المقترنة بهذا الملحق فقط عند العوامل التي تعمل على مجموعة أجهزة كمبيوتر Kubernetes اتصال شبكة الاتصال ويمكن الوصول إلى خدمات Azure مرة أخرى لجلب الحالة المطلوبة.

الخطوات التالية