قم بإنشاء وتكوين مجموعة Azure Kubernetes Services (AKS) لاستخدام العُقد الافتراضية في مدخل Microsoft Azure
تمكن العقد الظاهرية اتصال الشبكة بين القرون التي تعمل في مجموعات Azure Container Instances (ACI) وAzure Kubernetes Service (AKS). لتوفير هذا الاتصال، يتم إنشاء شبكة فرعية افتراضية وتعيين الأذونات المفوضة. تعمل العُقد الظاهرية فقط مع مجموعات AKS التي تم إنشاؤها باستخدام شبكة متقدمة (Azure CNI). يتم إنشاء مجموعات AKS مع الشبكات الأساسية (kubenet) بشكل افتراضي.
توضح هذه المقالة كيفية إنشاء شبكة ظاهرية وشبكات فرعية، ثم نشر مجموعة AKS التي تستخدم شبكة متقدمة باستخدام مدخل Microsoft Azure.
إشعار
للحصول على نظرة عامة حول توفر منطقة العقدة الظاهرية وقيودها، راجع استخدام العقد الظاهرية في AKS.
قبل البدء
تحتاج إلى موفر خدمة ACI مسجل في اشتراكك.
تحقق من حالة تسجيل موفر ACI باستخدام
az provider list
الأمر .az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
يظهر إخراج المثال التالي موفر Microsoft.ContainerInstance مسجل:
Namespace RegistrationState RegistrationPolicy --------------------------- ------------------- -------------------- Microsoft.ContainerInstance Registered RegistrationRequired
إذا كان الموفر غير مسجل، فقم بتسجيله باستخدام
az provider register
الأمر .az provider register --namespace Microsoft.ContainerInstance
إنشاء نظام مجموعة AKS
- انتقل إلى الصفحة الرئيسية لمدخل Microsoft Azure.
- حدد Create a resource>Containers.
- في مورد Azure Kubernetes Service (AKS)، حدد Create.
- في صفحة Basics ، قم بتكوين الخيارات التالية:
- تفاصيل المشروع: حدد اشتراك Azure، ثم حدد أو أنشئ مجموعة موارد Azure، مثل myResourceGroup.
- تفاصيل نظام المجموعة: أدخل اسم مجموعة Kubernetes، مثل myAKSCluster. حدد منطقة وإصدار Kubernetes لمجموعة AKS.
- حدد Next: Node pools وتحقق من *Enable virtual nodes.
- حدد "Review + create".
- بعد اكتمال التحقق من الصحة، حدد Create.
بشكل افتراضي، تنشئ هذه العملية هوية نظام مجموعة مدارة، والتي تستخدم لاتصال نظام المجموعة والتكامل مع خدمات Azure الأخرى. لمزيد من المعلومات، راجع استخدام الهويات المدارة. يمكنك أيضًا استخدام مدير الخدمة باعتباره هوية المجموعة الخاصة بك.
تقوم هذه العملية بتكوين نظام المجموعة للشبكات المتقدمة والعقد الظاهرية لاستخدام الشبكة الفرعية لشبكة Azure الظاهرية الخاصة بها. لقد فوضت الشبكة الفرعية أذونات لتوصيل موارد Azure بين نظام مجموعة AKS. إذا لم يكن لديك بالفعل شبكة فرعية مفوضة، يقوم مدخل Azure بإنشاء وتكوين شبكة Azure الظاهرية والشبكة الفرعية مع العقد الظاهرية.
الاتصال بنظام المجموعة
Azure Cloud Shell هو shell تفاعلي مجاني يمكنك استخدامه لتشغيل الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة المثبتة مسبقًا والمهيئة للاستخدام مع حسابك. لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميل Kubernetes، kubectl. تم تثبيت العميل kubectl
مسبقًا في Azure Cloud Shell.
قم بتكوين
kubectl
للاتصال بنظام مجموعة Kubernetes باستخدام أمرaz aks get-credentials
. يعرض المثال التالي بيانات اعتماد اسم الكتلة myAKSCluster في مجموعة الموارد المسماة myResourceGroup:az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
تحقق من الاتصال بالمجموعة باستخدام
kubectl get nodes
.kubectl get nodes
يظهر إخراج المثال التالي عقدة الجهاز الظاهري الفردية التي تم إنشاؤها وعقدة Linux الظاهرية المسماة virtual-node-aci-linux:
NAME STATUS ROLES AGE VERSION virtual-node-aci-linux Ready agent 28m v1.11.2 aks-agentpool-14693408-0 Ready agent 32m v1.11.2
نشر تطبيق نموذج
في Azure Cloud Shell، أنشئ ملفا باسم
virtual-node.yaml
وانسخه في YAML التالي:apiVersion: apps/v1 kind: Deployment metadata: name: aci-helloworld spec: replicas: 1 selector: matchLabels: app: aci-helloworld template: metadata: labels: app: aci-helloworld spec: containers: - name: aci-helloworld image: mcr.microsoft.com/azuredocs/aci-helloworld ports: - containerPort: 80 nodeSelector: kubernetes.io/role: agent beta.kubernetes.io/os: linux type: virtual-kubelet tolerations: - key: virtual-kubelet.io/provider operator: Exists
يحدد YAML nodeSelector والتفاوت، والذي يسمح بجدولة الجراب على العقدة الظاهرية. يتم تعيين عنوان IP داخلي للحجرة من الشبكة الفرعية لشبكة Azure الظاهرية المفوضة للاستخدام مع العُقد الظاهرية.
قم بتشغيل التطبيق باستخدام
kubectl apply
الأمر .kubectl apply -f virtual-node.yaml
عرض الحجيرات المجدولة على العقدة
kubectl get pods
باستخدام الأمر مع الوسيطة-o wide
.kubectl get pods -o wide
يظهر
virtual-node-helloworld
إخراج المثال التالي الجراب المجدول على العقدةvirtual-node-linux
.NAME READY STATUS RESTARTS AGE IP NODE virtual-node-helloworld-9b55975f-bnmfl 1/1 Running 0 4m 10.241.0.4 virtual-node-aci-linux
إشعار
إذا كنت تستخدم صورًا مخزنة في Azure Container Registry، فقم بتكوين سر Kubernetes واستخدمه. أحد قيود العقد الظاهرية هو أنه لا يمكنك استخدام المصادقة الأساسية لخدمة Microsoft Entra المتكاملة. إذا كنت لا تستخدم سرّاً، فإن pods المجدولة على العُقد الظاهرية تفشل في البدء والإبلاغ عن الخطأ HTTP response status code 400 error code "InaccessibleImage"
.
اختبار pod العُقدة الظاهرية
لاختبار pod التي تعمل على العُقدة الظاهرية، استعرض للوصول إلى التطبيق التجريبي باستخدام عميل ويب. يتم تعيين عنوان IP داخلي للجراب، بحيث يمكنك بسهولة اختبار الاتصال من جراب آخر على نظام مجموعة AKS.
إنشاء حاوية اختبار وإرفاق جلسة طرفية بها باستخدام الأمر التالي
kubectl run
.kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
تثبيت
curl
في pod باستخدام الأمر التاليapt-get
.apt-get update && apt-get install -y curl
الوصول إلى عنوان الجراب الخاص بك باستخدام الأمر التالي
curl
وتوفير عنوان IP الداخلي الخاص بك.curl -L http://10.241.0.4
يظهر إخراج المثال المكثف التالي التطبيق التجريبي.
<html> <head> <title>Welcome to Azure Container Instances!</title> </head> [...]
أغلق جلسة المحطة الطرفية إلى جراب الاختبار الخاص بك باستخدام
exit
، والذي يحذف أيضا الجراب.exit
الخطوات التالية
في هذه المقالة، قمت بجدولة جراب على العقدة الظاهرية وتعيين عنوان IP داخلي خاص. إذا أردت، يمكنك بدلا من ذلك إنشاء توزيع خدمة وتوجيه نسبة استخدام الشبكة إلى الجراب الخاص بك من خلال موازن التحميل أو وحدة تحكم الدخول. لمزيد من المعلومات، راجع إنشاء وحدة تحكم أساسية في الدخول في AKS.
تكون العقد الظاهرية عبارة عن مكوّن واحد من حل التحجيم في AKS. لمزيد من المعلومات حول حلول التحجيم، راجع المقالات التالية:
Azure Kubernetes Service