التحكم في الوصول المستند إلى دور Kubernetes على جهاز Azure Stack Edge Pro GPU

ينطبق على: نعم ل Pro GPU SKUAzure Stack Edge Pro - GPUنعم ل Pro 2 SKUAzure Stack Edge Pro 2نعم ل Pro R SKUAzure Stack Edge Pro Rنعم ل Mini R SKUAzure Stack Edge Mini R

على جهاز Azure Stack Edge Pro، عند تكوين دور الحساب، يتم إنشاء مجموعة Kubernetes. يمكنك استخدام التحكم في الوصول المستند إلى دور Kubernetes (Kubernetes RBAC) للحد من الوصول إلى موارد نظام المجموعة على جهازك.

توفر هذه المقالات نظرة عامة على نظام Kubernetes RBAC الذي توفره Kubernetes، وكيف يتم تنفيذ Kubernetes RBAC على جهاز Azure Stack Edge Pro.

Kubernetes RBAC

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

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

أنواع مساحات الأسماء

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

مساحات الأسماء مخصصة للاستخدام في بيئات بها العديد من المستخدمين المنتشرين عبر فرق أو مشاريع متعددة. لمزيد من المعلومات، راجع مساحات أسماء Kubernetes.

يحتوي جهاز Azure Stack Edge Pro على مساحات الأسماء التالية:

  • مساحة اسم النظام - مساحة الاسم هذه هي المكان الذي توجد فيه الموارد الأساسية، مثل ميزات الشبكة مثل DNS والوكيل أو لوحة معلومات Kubernetes. عادة لا تقوم بتوزيع التطبيقات الخاصة بك في مساحة الاسم هذه. استخدم مساحة الاسم هذه لتصحيح أي مشكلات في نظام مجموعة Kubernetes.

    هناك مساحات أسماء نظام متعددة على جهازك والأسماء المقابلة لمساحات أسماء النظام هذه محجوزة. فيما يلي قائمة بمساحات أسماء النظام المحجوزة:

    • kube-system
    • نظام المعادن
    • مساحة اسم dbe
    • افتراضي
    • لوحة معلومات kubernetes
    • kube-node-lease
    • kube-public

    تأكد من عدم استخدام أي أسماء محجوزة لمساحات أسماء المستخدمين التي تقوم بإنشائها.

  • مساحة اسم المستخدم - هذه هي مساحات الأسماء التي يمكنك إنشاؤها عبر kubectl أو عبر واجهة PowerShell للجهاز لنشر التطبيقات محليا.

  • مساحة اسم IoT Edge - يمكنك الاتصال بمساحة الاسم هذه iotedge لإدارة التطبيقات المنشورة عبر IoT Edge.

  • مساحة اسم Azure Arc - يمكنك الاتصال بمساحة الاسم هذه azure-arc لإدارة التطبيقات المنشورة عبر Azure Arc. باستخدام Azure Arc، يمكنك أيضا نشر التطبيقات في مساحات أسماء المستخدمين الأخرى.

مساحات الأسماء والمستخدمين

في العالم الحقيقي، من المهم تقسيم المجموعة إلى مساحات أسماء متعددة.

  • عدة مستخدمين: إذا كان لديك عدة مستخدمين، فستسمح مساحات أسماء متعددة لهؤلاء المستخدمين بنشر تطبيقاتهم وخدماتهم في مساحات الأسماء الخاصة بهم بمعزل عن بعضهم البعض.
  • مستخدم واحد: حتى إذا كان هناك مستخدم واحد، فإن مساحات الأسماء المتعددة ستسمح لهذا المستخدم بتشغيل إصدارات متعددة من التطبيقات في نفس مجموعة Kubernetes.

Roles وRoleBindings

يحتوي Kubernetes على مفهوم ربط الدور والدور الذي يتيح لك منح أذونات للمستخدم أو الموارد على مستوى مساحة الاسم وعلى مستوى نظام المجموعة.

  • الأدوار: يمكنك تعريف الأذونات للمستخدمين كدور ثم استخدام الأدوار لمنح أذونات داخل مساحة اسم.
  • RoleBindings: بمجرد تحديد الأدوار، يمكنك استخدام RoleBindings لتعيين أدوار لمساحة اسم معينة.

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

Kubernetes RBAC على Azure Stack Edge Pro

في التنفيذ الحالي ل Kubernetes RBAC، يسمح لك Azure Stack Edge Pro باتخاذ الإجراءات التالية من مساحة تشغيل PowerShell مقيدة:

  • إنشاء مساحات الأسماء.
  • إنشاء مستخدمين إضافيين.
  • امنحك حق وصول المسؤول إلى مساحات الأسماء التي قمت بإنشائها. ضع في اعتبارك أنه لن يكون لديك حق الوصول إلى دور مسؤول نظام المجموعة أو عرض الموارد على مستوى المجموعة.
  • احصل على ملف يحتوي على kubeconfig معلومات للوصول إلى مجموعة Kubernetes.

يحتوي جهاز Azure Stack Edge Pro على مساحات أسماء نظام متعددة ويمكنك إنشاء مساحات أسماء المستخدم مع kubeconfig الملفات للوصول إلى مساحات الأسماء هذه. يتمتع المستخدمون بالتحكم الكامل في مساحات الأسماء هذه ويمكنهم إنشاء مستخدمين أو تعديلهم، أو منح المستخدمين حق الوصول. فقط مسؤول نظام المجموعة لديه حق الوصول الكامل إلى مساحات أسماء النظام والموارد على مستوى نظام المجموعة. aseuser لديه حق الوصول للقراءة فقط إلى مساحات أسماء النظام.

فيما يلي رسم تخطيطي يصور تنفيذ Kubernetes RBAC على جهاز Azure Stack Edge Pro.

Kubernetes RBAC على جهاز Azure Stack Edge Pro

في هذا الرسم التخطيطي، يمكن ل Alice وBob وSacce الوصول إلى مساحات أسماء المستخدمين المعينة فقط، والتي في هذه الحالة هي ns1و ns2و ns3 على التوالي. ضمن مساحات الأسماء هذه، لديهم حق وصول المسؤول. مسؤول نظام المجموعة من ناحية أخرى لديه حق وصول المسؤول إلى مساحات أسماء النظام والموارد على مستوى المجموعة.

كمستخدم، يمكنك إنشاء مساحات أسماء ومستخدمين، أو تعيين مستخدمين لمساحات الأسماء، أو تنزيل kubeconfig الملفات. للحصول على إرشادات مفصلة خطوة بخطوة، انتقل إلى نظام مجموعة Access Kubernetes عبر kuebctl على Azure Stack Edge Pro.

عند العمل مع مساحات الأسماء والمستخدمين على أجهزة Azure Stack Edge Pro، تنطبق التحذيرات التالية:

  • لا يسمح لك بإجراء أي عمليات مثل إنشاء مستخدمين أو منح أو إبطال الوصول إلى مساحة الاسم للمستخدم لأي من مساحات أسماء النظام. تتضمن kube-systemأمثلة مساحات أسماء النظام و metallb-systemو kubernetes-dashboardو defaultوkube-node-leasekube-public. تتضمن مساحات أسماء النظام أيضا مساحات الأسماء المحجوزة لأنواع التوزيع مثل iotedge (مساحة اسم IoT Edge) و azure-arc (مساحة اسم Azure Arc).
  • يمكنك إنشاء مساحات أسماء المستخدمين وداخل مساحات الأسماء هذه، يمكنك إنشاء مستخدمين إضافيين ومنح الوصول إلى مساحة الاسم لهؤلاء المستخدمين أو إبطاله.
  • لا يسمح لك بإنشاء أي مساحات أسماء بأسماء مطابقة لتلك الخاصة بأي مساحة اسم نظام. أسماء مساحات أسماء النظام محجوزة.
  • لا يسمح لك بإنشاء أي مساحات أسماء مستخدم بأسماء قيد الاستخدام بالفعل من قبل مساحات أسماء المستخدمين الأخرى. على سبيل المثال، إذا كان لديك test-ns الذي قمت بإنشائه، فلا يمكنك إنشاء مساحة اسم أخرى test-ns .
  • لا يسمح لك بإنشاء مستخدمين بأسماء محجوزة بالفعل. على سبيل المثال، aseuser هو مستخدم محجوز ولا يمكن استخدامه.

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

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