نشر وإدارة ملحقات الكتلة Kubernetes التي تم تمكينها بواسطة Azure Arc

تتيح ميزة ملحقات Kubernetes ما يلي على مجموعات Kubernetes التي تدعم Azure Arc:

  • Azure Resource Manager-based deployment of cluster extension.
  • إدارة دورة حياة مخططات Helm الملحقة.

في هذه المقالة، سوف تتعرف على:

  • تتوفر حاليا Azure Arc-enabled Kubernetes cluster extensions.
  • كيفية إنشاء مثيلات الملحقات.
  • المعلمات المطلوبة والاختيارية.
  • كيفية عرض، سرد، تحديث، وحذف حالات التمديد.

نظرة عامة تصورية لهذه الميزة متوفرة في ملحقات مجموعة أجهزة كمبيوتر- Kubernetes الممكّن بواسطة Arc المقال.

هام

تتوفر ميزات معاينة Kubernetes التي تدعم Azure Arc على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات Kubernetes التي تدعم Azure Arc جزئيا من قبل دعم العملاء على أساس أفضل جهد.

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

  • قم بتثبيت Azure CLI أو ترقيته إلى الإصدار >= 2.16.0.

  • connectedk8s (الإصدار >= 1.2.0) و k8s-extension (الإصدار >= 1.0.0) ملحقات Azure CLI. قم بتثبيت ملحقات 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.

ملحقات البرنامج المتوفرة حاليًا

الملحق الوصف
Azure Monitor for containers يوفر رؤية واضحة لأداء أعباء العمل المنشورة على مجموعة Kubernetes. يجمع مقاييس استخدام الذاكرة ووحدة المعالجة المركزية من وحدات التحكم والعقد والحاويات.
نهج Azure Azure Policy يوسع Gatekeeper ، وهو خطاف ويب لوحدة التحكم في القبول لوكيل السياسة المفتوحة (OPA) ، لتطبيق عمليات التنفيذ والضمانات على نطاق واسع على مجموعاتك بطريقة مركزية ومتسقة.
Azure 密钥保管库 Secrets Provider يسمح مزود Azure Key Vault For Secrets Store CSI Driver بدمج Azure Key Vault كمخزن أسرار مع مجموعة Kubernetes عبر وحدة تخزين CSI.
Microsoft Defender للسحابة يجمع المعلومات المتعلقة بالأمان مثل بيانات سجل التدقيق من مجموعة Kubernetes. يوفر توصيات وتنبيهات تهديد استنادا إلى البيانات التي تم جمعها.
Azure Arc-enabled Open Service Mesh ينشر Open Service Mesh على المجموعة ويتيح إمكانات مثل أمان mTLS والتحكم الدقيق في الوصول المحبب وتحويل حركة المرور والمراقبة باستخدام Azure Monitor أو مع الوظائف الإضافية Open Source من Prometheus وGrafana والتتبع مع Jaeger والتكامل مع حل إدارة الشهادات الخارجي.
Azure Arc-enabled Data Services يتيح لك تشغيل خدمات بيانات Azure بشكل مسبق وعلى الحافة وفي السحب العامة باستخدام Kubernetes والبنية الأساسية التي تختارها.
Служба приложений Azure على Azure Arc يسمح لك بتوفير بيئة Kubernetes Serviço de Aplicativo أعلى مجموعات Kubernetes التي تدعم Azure Arc.
Event Grid على Kubernetes قم بإنشاء موارد شبكة الأحداث وإدارتها مثل الموضوعات واشتراكات الأحداث أعلى مجموعات Kubernetes التي تدعم Azure Arc.
Azure Gestione API on Azure Arc نشر بوابة Gestione API وإدارتها على مجموعات Kubernetes التي تدعم Azure Arc.
التعلم الآلي الذي يدعم Azure Arc نشر وتشغيل Машинное обучение Azure على مجموعات Kubernetes التي تدعم Azure Arc.
التدفق (GitOps) استخدم GitOps مع Flux لإدارة تكوين الكتلة ونشر التطبيقات.

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

إنشاء ملحق مثيل لاسم الملف

إنشاء ملحق مثيل جديد مع k8s-extension create، تمرير قيم المعلمات الإلزامية. ينشئ الأمر أدناه مثيل ملحق Azure Monitor for containers على مجموعة 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 الحالة. بمجرد دخولك إلى الحالة ، ستحتاج إلى Failed التشغيل k8s-extension create مرة أخرى لإنشاء مورد Azure جديد للامتداد.
  • Azure Monitor للحاويات هو امتداد مفرد (مطلوب واحد فقط لكل مجموعة). ستحتاج إلى تنظيف أي عمليات تثبيت سابقة لمخطط Helm من Azure Monitor للحاويات (بدون ملحقات) قبل تثبيتها عبر الملحقات. اتبع الإرشادات الخاصة بحذف مخطط Helm قبل التشغيل 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. إذا تم تعيين هذه المعلمة إلى مجموعة true، لا يمكنك تعيين معلمة version، كما سيتم تحديث الإصدار بشكل حيوي. إذا تم تعيينها إلى false، لن يتم ترقية الملحق تلقائيًا حتى بالنسبة لإصدارات التصحيح.
--version إصدار ملحق البرنامج الذي سيتم تثبيته (إصدار محدد لتثبيت مثيل الملحق). لا يجب الدعم إذا تم تعيين التحديث التلقائي-الإصدار الثانوي إلى true.
--configuration-settings الإعدادات التي يمكن تمريرها إلى ملحق المستعرض عنصر التحكم ووظائفه. يجب أن يتم تمريرها كأزواج key=value مفصولة بمسافات بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings-file في نفس الأمر.
--configuration-settings-file المسار إلى ملف JavaScript Object Notation الذي له أزواج قيم رئيسية ليتم استخدامها لتمرير إعدادات التكوين إلى ملحق البرنامج. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-settings في نفس الأمر.
--configuration-protected-settings هذه الإعدادات غير قابلة للاسترداد باستخدام استدعاءات API GET أو الأوامر az k8s-extension show، وبالتالي يتم استخدامها لتمرير في إعدادات حساسة. يجب أن يتم تمريرها كأزواج key=value مفصولة بمسافات بعد اسم المعلمة. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings-file في نفس الأمر.
--configuration-protected-settings-file المسار إلى ملف JavaScript Object Notation الذي له أزواج قيم رئيسية ليتم استخدامها لتمرير الإعدادات الحساسة إلى ملحق البرنامج. إذا تم استخدام هذه المعلمة في الأمر، فلا يمكن استخدام --configuration-protected-settings في نفس الأمر.
--release-namespace تشير هذه المعلمة إلى مساحة الاسم التي يتم إنشاء الإصدار داخلها. تكون هذه المعلمة ذات صلة فقط إذا scope تم تعيين المعلمة إلى cluster.
--release-train يمكن لمؤلفي الإضافات نشر الإصدارات في قطارات إصدار مختلفة مثل Stable، Previewإلخ. إذا لم يتم تعيين هذه المعلمة بشكل صريح، Stable استخدامها كافتراضي. لا تستخدم هذه المعلمة عند autoUpgradeMinorVersion تعيين المعلمة إلى false.
--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"
  }
]

حذف نسخة التمديد

حذف كافة الملحقات المثبتة على مجموعة أجهزة كمبيوتر مع k8s-extension delete تمرير قيم المعلمات الإلزامية.

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

ملاحظة

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

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

Mer informasjon حول ملحقات المجموعات المتوفرة حاليا ل Kubernetes التي تدعم Azure Arc: