إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
عندما تصل إلى عنقود Azure Kubernetes Service الخاص (AKS)، تحتاج إلى الاتصال بالمجموعة من الشبكة الافتراضية للعنقود (VNet)، أو شبكة مترابطة، أو نقطة نهاية خاصة مهيأة. تتطلب هذه الطرق إعدادات إضافية، مثل إعداد VPN أو Express Route.
باستخدام Azure CLI، يمكنك استخدام command invoke للوصول إلى أنظمة المجموعات الخاصة دون الحاجة إلى تكوين VPN أو Express Route.
command invoke يسمح لك باستدعاء الأوامر عن بعد، مثل kubectl و helm، على نظام المجموعة الخاص بك من خلال واجهة برمجة تطبيقات Azure دون الاتصال مباشرة بالمجموعة. يقوم RBAC بالإجراءات Microsoft.ContainerService/managedClusters/runcommand/action والتحكم Microsoft.ContainerService/managedClusters/commandResults/read في الأذونات لاستخدام command invoke.
باستخدام مدخل Microsoft Azure، يمكنك استخدام الميزة Run command لتشغيل الأوامر على نظام المجموعة الخاص بك. تستخدم الميزة Run command نفس command invoke الوظيفة لتشغيل الأوامر على نظام المجموعة. الوحدة التي تم إنشاؤها من قبل Run command توفر kubectl وتعمل helm على عنقودك.
jq
xargsتتوفر grepو و awk لدعم Bash.
نصيحة
يمكنك استخدام Azure Copilot لتشغيل kubectl الأوامر في بوابة Azure. لمزيد من المعلومات، راجع العمل مع عناقيد AKS بكفاءة باستخدام Azure Copilot.
المتطلبات الأساسية
متطلبات النظام والإذن
| نوع المتطلب | مواصفات | كيفية التحقق |
|---|---|---|
| Azure CLI version | 2.24.0 أو ما أحدثه | يمكنك استخدام أمر az --version للتحقق من الإصدار الخاص بك. |
| عنقود AKS الخاص | لابد أن هناك بالفعل | إذا لم يكن لديك مجموعة خاصة موجودة، اتبع الخطوات في إنشاء عنقود AKS خاص. |
| إجراءات RBAC |
Microsoft.ContainerService/managedClusters/runcommand/action
Microsoft.ContainerService/managedClusters/commandResults/read
|
تحقق باستخدام صفحة التحكم في الوصول (IAM) في بوابة Azure أو az role assignment list أمر Azure CLI. |
تشغيل مواصفات موارد وحدة الأوامر
| نوع المورد | قيمة | تأثير |
|---|---|---|
| طلبات وحدة المعالجة المركزية | 200 متر | الحد الأدنى للمعالج المحجوز لوحدة التحكم |
| طلبات الذاكرة | 500 ميل | الحد الأدنى للذاكرة المحجوزة لوحدة القيادة |
| حدود وحدة المعالجة المركزية | 500 م | أقصى وحدة معالجة مركزية متاحة لوحدة التحكم |
| حدود الذاكرة | 1 غيغيت | أقصى ذاكرة متاحة لوحدة القيادة |
| مهلت انتهاء واجهة برمجة التطبيقات Azure Resource Manager (ARM) | 60 ثانية | الحد الأقصى للوقت لجدولة الكبسولات |
| حد حجم الإخراج | 512 كيلوبايت | أقصى حجم لإخراج أوامر |
تحديد الخدمة واعتباراتها
نطاق التصميم
- ليس للوصول البرمجي: استخدم Bastion أو VPN أو ExpressRoute لاستدعاءات API الآلياء.
- اعتماد جدولة البود: يتطلب موارد عنقودية كافية (انظر مواصفات الموارد).
- قيود الإخراج: exitCodeوالنص فقط، بدون تفاصيل على مستوى API.
- تنطبق قيود الشبكة: مع مراعاة القيود الأمنية على شبكات العنقود.
نقاط الفشل المحتملة
- فشل جدولة البودات إذا كانت العقد تعاني من قيود الموارد.
- مهلة API ARM (60 ثانية) إذا لم يكن بالإمكان جدولة الوحدة بسرعة.
- يتم اقتطاع الناتج إذا تجاوز الرد حد 512 كيلوبايت.
الاستخدام command invoke على عنقود AKS خاص باستخدام Azure CLI
حدد متغيرات البيئة لمجموعة الموارد واسم العنقود لاستخدامها في الأوامر التالية.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"تسمح لك هذه المتغيرات البيئية بتشغيل أوامر AKS دون الحاجة لإعادة كتابة أسمائها.
استخدام command invoke لتشغيل أمر واحد
شغل أمرا واحدا على العنقود باستخدام
az aks command invokeالأمر والمعلمة--commandلتحديد الأمر الذي سيتم تشغيله. المثال التالي يحصلkube-systemعلى الكبسولات في فضاء الأسماء.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
استخدام command invoke لتشغيل أوامر متعددة
شغل عدة أوامر على العنقود باستخدام
az aks command invokeالأمر والمعلمة--commandلتحديد الأوامر التي ستعمل. المثال التالي يضيف مستودع مخطط Bitnami Helm، ويحدث المستودع، ويثبت المخططnginx.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
استخدم command invoke لتشغيل الأوامر مع ملف مرفق
إذا أردت تشغيل أمر بملف مرفق، يجب أن يكون الملف موجودا ومتاحا في مجلد العمل الحالي الخاص بك. في المثال التالي، ننشئ ملف نشر بسيط للعرض.
إنشاء ملف بيان Kubernetes باسم
deployment.yaml. ملف النشر المثال التالي ينشر بودnginx.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOFقم بتطبيق ملف النشر على العنقود باستخدام
az aks command invokeالأمر الذي يحتوي على--fileالمعلمة لإرفاق الملف. المثال التالي يطبق الملفdeployment.yamlعلى مساحة الاسمdefault.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
يستخدم command invoke لتشغيل الأوامر مع جميع الملفات في المجلد الحالي
إشعار
استخدم الملفات الصغيرة والضرورية فقط لتجنب تجاوز حدود حجم النظام.
في المثال التالي، ننشئ ملفي نشر الحد الأدنى للعرض.
أنشئ ملفي بيانات Kubernetes باسم
deployment.yamlوconfigmap.yaml. الملفات النموذجية التالية تقوم بنشرnginxوحدة وإنشاء خريطة إعداد مع رسالة ترحيب.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOF cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: nginx-config data: welcome-message: "Hello from configmap" EOFقم بتطبيق ملفات النشر على العنقود باستخدام
az aks command invokeالأمر الذي يحتوي على--fileالمعلمة لإرفاق الملف. المثال التالي يطبق ملفاتdeployment.yamlوconfigmap.yamlعلىdefaultمساحة الاسم.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -f configmap.yaml -n default" \ --file deployment.yaml \ --file configmap.yaml
الاستخدام Run command على مجموعة AKS الخاصة في بوابة Azure
يمكنك استخدام الأوامر التالية kubectl مع هذه Run command الميزة:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
استخدام Run command لتشغيل أمر واحد
- في مدخل Microsoft Azure، انتقل إلى نظام المجموعة الخاص بك.
- من قائمة الخدمة، تحت موارد Kubernetes، اختر أمر Run.
- أدخل الأمر الذي تريد تشغيله وحدد تشغيل.
يستخدم Run command لتشغيل الأوامر مع الملفات المرفقة
في مدخل Microsoft Azure، انتقل إلى نظام المجموعة الخاص بك.
من قائمة الخدمة، تحت موارد Kubernetes، اختر أمر Run.
حدد إرفاق الملفات>استعرض بحثا عن الملفات.
اختر الملف أو الملفات التي تريد إرفاقها، ثم اختر Atserve.
أدخل الأمر الذي تريد تشغيله وحدد تشغيل.
تعطيل Run command
يمكنك تعطيل الميزة Run command عن طريق تعيين .properties.apiServerAccessProfile.disableRunCommand إلى true.
مشاكل استكشاف command invoke الأخطاء
للحصول على معلومات حول المشكلات الأكثر شيوعا وكيفية az aks command invoke إصلاحها، راجع حل az aks command invoke حالات الفشل.
المحتوى ذو الصلة
في هذه المقالة، تعلمت كيفية الوصول إلى مجموعة خاصة وتشغيل الأوامر على نظام المجموعة هذا. لمزيد من المعلومات حول مجموعات AKS، راجع المقالات التالية: