Use managed namespaces in خدمة Azure Kubernetes ‏(AKS)

ينطبق على: ✔️ AKS Automatic ✔️ AKS Standard

توفر مساحات الأسماء المدارة في خدمة Azure Kubernetes ‏(AKS) طريقة لعزل أحمال العمل والفرق منطقيا داخل نظام مجموعة. تمكن هذه الميزة المسؤولين من فرض حصص الموارد وتطبيق نهج الشبكة وإدارة التحكم في الوصول على مستوى مساحة الاسم. للحصول على نظرة عامة مفصلة على مساحات الأسماء المدارة، راجع نظرة عامة على مساحات الأسماء المدارة.

قبل البدء

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

المتطلب الأساسي ملاحظات
Azure CLI 2.80.0 أو تثبيته لاحقا. للعثور على نسخة CLI، شغل az --version. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
إصدار واجهة برمجة تطبيقات AKS 2025-09-01 أو في وقت لاحق.
الإذن (الأذونات) المطلوب Microsoft.ContainerService/managedClusters/managedNamespaces/* أو Azure Kubernetes Service Namespace Contributor الدور المدمج. Microsoft.Resources/deployments/* على مجموعة الموارد التي تحتوي على نظام المجموعة. لمزيد من المعلومات، راجع الأدوار المضمنة في مساحات الأسماء المدارة.

القيود

  • لا يسمح بمحاولة إلحاق مساحات أسماء النظام مثل kube-system، app-routing-system، istio-system، gatekeeper-system، وما إلى ذلك لتكون مساحات أسماء مدارة.
  • عندما تكون مساحة الاسم عبارة عن مساحة اسم مدارة، يتم حظر التغييرات التي يتم إجراؤها على مساحة الاسم عبر واجهة برمجة تطبيقات Kubernetes.
  • لا تعمل إدراج مساحات الأسماء الموجودة للتحويل في المدخل مع المجموعات الخاصة. يمكنك إضافة مساحات أسماء جديدة.

إنشاء مساحة اسم مدارة على نظام مجموعة وتعيين المستخدمين

ملاحظة

عند إنشاء مساحة أسماء مدارة، يتم تثبيت مكون على العنقود لمطابقة مساحة الاسم مع الحالة في Azure Resource Manager. يحظر هذا المكون التغييرات التي تطرأ على الحقول والموارد المدارة من واجهة برمجة تطبيقات Kubernetes، مما يضمن الاتساق مع التكوين المطلوب.

يوضح مثال Bicep التالي كيفية إنشاء مساحة اسم مدارة كمورد فرعي لنظام مجموعة مدار. تأكد من تحديد القيمة المناسبة ل defaultNetworkPolicy، adoptionPolicyو deletePolicy. لمزيد من المعلومات حول ما تعنيه هذه المعلمات، راجع نظرة عامة على مساحات الأسماء المدارة.

resource existingCluster 'Microsoft.ContainerService/managedClusters@2024-03-01' existing = {
  name: 'contoso-cluster'
}

resource managedNamespace 'Microsoft.ContainerService/managedClusters/managedNamespaces@2025-09-01' = {
  parent: existingCluster
  name: 'retail-team'
  location: location
  properties: {
    defaultResourceQuota: {
      cpuRequest: '1000m'
      cpuLimit: '2000m'
      memoryRequest: '512Mi'
      memoryLimit: '1Gi'
    }
    defaultNetworkPolicy: {
      ingress: 'AllowSameNamespace'
      egress: 'AllowAll'
    }
    adoptionPolicy: 'IfIdentical'
    deletePolicy: 'Keep'
    labels: {
      environment: 'dev'
    }
    annotations: {
      owner: 'retail'
    }
  }
}

احفظ ملف Bicep managedNamespace.bicep على الكمبيوتر المحلي.

انشر ملف Bicep باستخدام Azure CLI.

az deployment group create --resource-group <resource-group> --template-file managedNamespace.bicep

تحديد المتغيرات

حدد المتغيرات التالية لاستخدامها في الخطوات اللاحقة.

RG_NAME=cluster-rg
CLUSTER_NAME=contoso-cluster
NAMESPACE_NAME=retail-team
LABELS="environment=dev"
ANNOTATIONS="owner=retail"

إنشاء مساحة الاسم المدارة

لتخصيص تكوينه، تحتوي مساحات الأسماء المدارة على خيارات معلمات متنوعة للاختيار من بينها أثناء الإنشاء. تأكد من تحديد القيمة المناسبة ل ingress-network-policy، egress-network-policyو ، adoption-policyو delete-policy. لمزيد من المعلومات حول ما تعنيه هذه المعلمات، راجع نظرة عامة على مساحات الأسماء المدارة.

az aks namespace add \
    --name ${NAMESPACE_NAME} \
    --cluster-name ${CLUSTER_NAME} \
    --resource-group ${RG_NAME} \
    --cpu-request 1000m \
    --cpu-limit 2000m \
    --memory-request 512Mi \
    --memory-limit 1Gi \
    --ingress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --egress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --adoption-policy [Never|IfIdentical|Always] \
    --delete-policy [Keep|Delete] \
    --labels ${LABELS} \
    --annotations ${ANNOTATIONS}

تعيين دور

بعد إنشاء مساحة الاسم، يمكنك تعيين أحد الأدوار المضمنة لمستوى التحكم ومستوى البيانات.

ASSIGNEE="user@contoso.com"
NAMESPACE_ID=$(az aks namespace show --name ${NAMESPACE_NAME} --cluster-name ${CLUSTER_NAME} --resource-group ${RG_NAME} --query id -o tsv)

تعيين دور في مستوى التحكم ليتمكن من عرض مساحة الأسماء المدارة في البوابة، ومخرج Azure CLI، وAzure Resource Manager. يسمح هذا الدور أيضا للمستخدم باسترداد بيانات الاعتماد للاتصال بمساحة الاسم هذه.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service Namespace User" \
  --scope ${NAMESPACE_ID}

قم بتعيين دور مستوى البيانات لتتمكن من الوصول إلى إنشاء موارد داخل مساحة الاسم باستخدام واجهة برمجة تطبيقات Kubernetes.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service RBAC Writer" \
  --scope ${NAMESPACE_ID}
  1. سجل الدخول إلى مدخل Microsoft Azure.
  2. في الصفحة الرئيسية لمدخل Azure، حدد Create a resource.
  3. في قسم الفئات ، حدد مساحات أسماء Kubernetes المدارة.
  4. في علامة التبويب الأساسيات ، ضمن تفاصيل المشروع ، قم بتكوين الإعدادات التالية:
    1. حدد نظام المجموعة الهدف لإنشاء مساحة الاسم عليها.
    2. إذا كنت تقوم بإنشاء مساحة اسم جديدة، فاترك الإعداد الافتراضي إنشاء جديد، وإلا اختر التغيير الموجود إلى المدار لتحويل مساحة اسم موجودة.
  5. قم بتكوين نهج الشبكة ليتم تطبيقه على مساحة الاسم.
  6. قم بتكوين طلبات الموارد وحدودها لمساحة الاسم.
  7. حدد الأعضاء (المستخدمين أو المجموعات)ودورهم.
    1. تعيين دور مستخدم مساحة أسماء خدمة Azure Kubernetes لمنحه حق الوصول لعرض مساحة الأسماء المدارة في البوابة، ومخرج Azure CLI، وAzure Resource Manager. يسمح هذا الدور أيضا للمستخدم باسترداد بيانات الاعتماد للاتصال بمساحة الاسم هذه.
    2. قم بتعيين دور كاتب RBAC لخدمة Azure Kubernetes لمنحهم حق الوصول لإنشاء موارد داخل مساحة الاسم باستخدام واجهة برمجة تطبيقات Kubernetes.
  8. حدد مراجعة + إنشاء لتشغيل التحقق من الصحة على التكوين. وبعد اكتمال عملية التحقق، حدد Create.

سرد مساحات الأسماء المدارة

يمكنك سرد مساحات الأسماء المدارة في نطاقات مختلفة باستخدام Azure CLI.

مستوى الاشتراك

قم بتشغيل الأمر التالي لإدراج كافة مساحات الأسماء المدارة في اشتراك.

az aks namespace list --subscription <subscription-id>

مستوى مجموعة الموارد

قم بتشغيل الأمر التالي لإدراج كافة مساحات الأسماء المدارة في مجموعة موارد معينة.

az aks namespace list --resource-group <rg-name>

مستوى نظام المجموعة

قم بتشغيل الأمر التالي لإدراج جميع مساحات الأسماء المدارة في مجموعة معينة.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

سرد مساحات الأسماء المدارة

يمكنك سرد مساحات الأسماء المدارة في نطاقات مختلفة باستخدام Azure CLI.

مستوى الاشتراك

قم بتشغيل الأمر التالي لإدراج كافة مساحات الأسماء المدارة في اشتراك.

az aks namespace list --subscription <subscription-id>

مستوى مجموعة الموارد

قم بتشغيل الأمر التالي لإدراج كافة مساحات الأسماء المدارة في مجموعة موارد معينة.

az aks namespace list --resource-group <rg-name>

مستوى نظام المجموعة

قم بتشغيل الأمر التالي لإدراج جميع مساحات الأسماء المدارة في مجموعة معينة.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

الاتصال بنظام المجموعة

يمكنك استرداد بيانات الاعتماد للاتصال بمساحة اسم عبر الأمر التالي.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

الاتصال بنظام المجموعة

يمكنك استرداد بيانات الاعتماد للاتصال بمساحة اسم عبر الأمر التالي.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

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

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