قم بتوصيل عنقود Azure Kubernetes Service (AKS) الخاص بك بوكلاء AI باستخدام خادم بروتوكول السياق النموذجي (MCP)

يتيح خادم بروتوكول السياق النموذجي (MCP) لمساعدي الذكاء الاصطناعي التفاعل مع مجموعات Azure Kubernetes Service (AKS) بوضوح وأمان وتحكم. يعمل كجسر بين أدوات الذكاء الاصطناعي (مثل GitHub Copilot وClaude وغيرها من مساعدي الذكاء الاصطناعي المتوافقين مع MCP) وAKS، حيث يترجم طلبات اللغة الطبيعية إلى عمليات AKS ويعيد النتائج بصيغة يمكن لأدوات الذكاء الاصطناعي فهمها.

يتصل خادم AKS MCP ب Azure باستخدام Azure SDK ويوفر مجموعة من الأدوات التي يمكن لمساعدي الذكاء الاصطناعي استخدامها للتفاعل مع موارد AKS. تسمح هذه الأدوات لوكلاء الذكاء الاصطناعي بأداء مهام مثل:

  • استكشاف الأخطاء وإصلاحها والتشخيصات
  • حلل صحة مجموعتك
  • موارد التشغيل (CRUD) AKS
  • استرجاع التفاصيل المتعلقة بعناقيد AKS (شبكات VNets، الشبكات الفرعية، مجموعات أمن الشبكة (NSGs)، جداول الطريق، وغيرها)
  • تمكين أفضل الممارسات والميزات الموصى بها
  • إدارة عمليات Azure Fleet لسيناريوهات المجموعات المتعددة

خادم AKS MCP هو مشروع مفتوح المصدر بالكامل، مع نماذج قوالب وتكوينات Helm متاحة في مستودع GitHub.

متى تستخدم خادم AKS MCP

يمكن استخدام خادم AKS MCP مع أي مساعد ذكاء اصطناعي متوافق، بما في ذلك CLI الوكيل ل AKS وMicrosoft Copilot. تشمل حالات الاستخدام الشائعة ما يلي:

  • طرح أسئلة على مساعدي الذكاء الاصطناعي مثل:
    • "لماذا الكبسولات معلقة في هذه المجموعة؟"
    • "ما هو تكوين شبكة عنقود AKS الخاص بي؟"
    • "إنشاء مكان لنشر أعباء عمل nginx على مجموعات مع تسمية app=frontend."
  • السماح لأدوات الذكاء الاصطناعي ب:
    • حالة وتكوين مجموعة القراءة
    • افحص المقاييس والأحداث والسجلات
    • Crerelate الإشارات عبر Kubernetes وموارد Azure
    • تطبيق التغييرات وتمكين الميزات الجديدة مباشرة على عنقودك

جميع الإجراءات التي يتم تنفيذها عبر خادم AKS MCP مقيدة بواسطة Kubernetes Role-Based Access Control (RBAC) وAzure RBAC. افتراضيا، يرث خادم AKS MCP أمنونات المستخدم عند الوصول إلى موارد العنقود وAzure. لتخصيص الأدوار والصلاحيات لخادم AKS MCP، قم بنشر وضع خادم AKS MCP البعيد مع تحكم RBAC مدمج.

الأدوات المتوفرة

يوفر خادم AKS MCP مجموعة شاملة من الأدوات للتفاعل مع عناقيد AKS والموارد المرتبطة بها. افتراضيا، يستخدم الخادم أدوات موحدة (call_az لعمليات Azure وعمليات call_kubectl Kubernetes) التي توفر واجهة أكثر مرونة للتفاعل مع Kubernetes وموارد Azure.

هناك ثلاث مجموعات من الأذونات التي يمكنك تفعيلها لخادم AKS MCP: القراءة فقط (الافتراضي)، القراءة والكتابة، والمسؤول. بعض الأدوات تتطلب أذونات قراءة وكتابة أو إدارة لتنفيذ إجراءات مثل نشر وحدات التصحيح أو إجراءات CRUD على العنقود. لتمكين أذونات القراءة والكتابة أو المسؤول لخادم AKS-MCP، أضف معلمة مستوى الوصول إلى ملف تكوين MCP الخاص بك:

  1. انتقل إلى ملف mcp.json الخاص بك، أو اذهب إلى MCP: List Servers -> AKS-MCP -> عرض تفاصيل التكوين في لوحة الأوامر (لكود VS؛ Ctrl+Shift+P على ويندوز/لينكس أو Cmd+Shift+P على macOS).
  2. في قسم "args" في AKS-MCP، أضف المعلمات التالية: "--access-level"، "readwrite" أو "admin"

على سبيل المثال:

"args": [
  "--transport",
  "stdio",
  "--access-level",
  "readwrite"
]

تم تصميم هذه الأدوات لتوفير وظائف شاملة من خلال واجهات موحدة:

Azure CLI Operations (أداة موحدة)

الأداة:call_az

أداة موحدة لتنفيذ أوامر Azure CLI مباشرة. توفر هذه الأداة واجهة مرنة لتشغيل أي أمر CLI في Azure.

المعلمات:

  • cli_command: أمر Azure CLI الكامل لتنفيذه. على سبيل المثال: az aks list --resource-group myRG أو az vm list --subscription <sub-id>.
  • timeout: مهلة اختيارية في ثوان (الإعداد الافتراضي: 120)

مثال على الاستخدام:

{
  "cli_command": "az aks list --resource-group myResourceGroup --output json"
}

التحكم في الدخول:

  • للقراءة فقط: يسمح فقط بعمليات القراءة
  • readwrite/admin: كل من عمليات القراءة والكتابة مسموح بها

مهم

يجب أن تكون الأوامر استدعاءات Azure CLI بسيطة بدون ميزات shell مثل أنابيب (|)، إعادة توجيه (>، <)، استبدال الأوامر، أو فواصل منقوطة (;).

Kubernetes Operations (أداة موحدة)

أداة الكوبيكتل الموحدة

الأداة:call_kubectl

أداة موحدة لتنفيذ أوامر kubectl مباشرة. توفر هذه الأداة واجهة مرنة لتشغيل أي kubectl أمر مع دعم كامل للوسيط.

المعلمات:

  • args: حجج أوامر kubectl. على سبيل المثال، get pods، describe node mynodeأو أو apply -f deployment.yaml.

مثال على الاستخدام:

{
  "args": "get pods -n kube-system -o wide"
}

التحكم في الدخول: يتم تقييد العمليات بناء على مستوى الوصول المكون:

  • فقط للقراءة فقط: يسمح فقط بعمليات القراءة (الحصول عليها، وصفها، السجلات، إلخ)
  • readwrite/admin: جميع العمليات بما في ذلك الأوامر المتغيرة (إنشاء أو حذف أو تطبيق، إلخ)

دومان

الأداة:call_helm

مدير الحزم لصالح Kubernetes.

Cilium

الأداة:call_cilium

Cilium CLI للشبكات والأمن المعتمد على eBPF.

هابل

الأداة:call_hubble

قابلية رصد شبكة هابل للسيليوم.

إدارة موارد الشبكة

الأداة:aks_network_resources

أداة موحدة للحصول على معلومات موارد شبكة Azure المستخدمة من قبل عناقيد AKS.

أنواع الموارد المتاحة:

  • all: احصل على معلومات عن جميع موارد الشبكة
  • vnet: معلومات الشبكة الافتراضية
  • subnet: معلومات الشبكة الفرعية
  • nsg: معلومات مجموعة أمن الشبكات
  • route_table: معلومات جدول المسارات:
  • load_balancer: معلومات موزن التحميل
  • private_endpoint: معلومات عن نقطة النهاية الخاصة
المراقبة والتشخيص

الأداة:aks_monitoring

أداة موحدة لعمليات المراقبة والتشخيص في Azure لمجموعات AKS.

العمليات المتاحة:

  • metrics: قائمة بقيم المقاييس للموارد
  • resource_health: استرجاع أحداث صحة الموارد لمجموعات AKS
  • app_insights: تنفيذ استعلامات KQL مقابل بيانات التليمترية Application Insights
  • diagnostics: تحقق مما إذا كان cluster AKS قد تم ضبط إعدادات التشخيص:
  • control_plane_logs: استعلام سجلات مستوى التحكم في AKS مع قيود السلامة والتحقق من مدى الزمن
موارد الحوسبة

الأداة:get_aks_vmss_info

  • احصل على تكوين مفصل لمجموعات مقياس الآلة الافتراضية (مجموعات العقد) في عنقود AKS
إدارة الأسطول

الأداة:az_fleet

إدارة شاملة لأسطول Azure لسيناريوهات المجموعات المتعددة.

العمليات المتاحة:

  • عمليات الأسطول: القائمة، العرض، الإنشاء، التحديث، الحذف، الحصول على بيانات الاعتماد
  • عمليات الأعضاء: سرد، عرض، إنشائ، تحديث، حذف
  • تحديث تشغيل العمليات: قائمة، عرض، إنشاء، بدء، إيقاف، حذف
  • تحديث عمليات الاستراتيجية: إدراج، عرض، إنشائ، حذف
  • ClusterResourcePlacement Operations: إدراج، عرض، حصل، إنشاء، حذف

يدعم كل من إدارة Azure Fleet وعمليات Kubernetes ClusterResourcePlacement CRD.

كواشف التشخيص

الأداة:aks_detector

أداة موحدة لتنفيذ عمليات كاشف التشخيص في AKS.

العمليات المتاحة:

  • list: قم بجميع كواشف التجمعات المتاحة من AKS
  • runتشغيل كاشف تشخيصي محدد ل AKS :
  • run_by_categoryتشغيل جميع الكواشف في فئة محددة:

المعلمات:

  • operation (مطلوب): عملية لأداء (list, run, أو run_by_category)
  • aks_resource_id (مطلوب): معرف موارد عنقود AKS
  • detector_name (مطلوب للتشغيل run ): اسم الكاشف الذي سيتم تشغيله
  • category (مطلوب للتشغيل run_by_category ): فئة الكاشف
  • start_time (مطلوب للعمليات run والعمليات run_by_category ): وقت البدء بصيغة UTC ISO (خلال آخر 30 يوما)
  • end_time (مطلوب للعمليات run والعمليات run_by_category ): وقت الانتهاء بصيغة UTC ISO (خلال آخر 30 يوما، بحد أقصى 24 ساعة من البدء)

الفئات المتاحة:

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

مثال على الاستخدام:

الأداة:run_detectors_by_category

{
  "operation": "list",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx"
}
{
  "operation": "run",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx",
  "detector_name": "node-health-detector",
  "start_time": "2025-01-15T10:00:00Z",
  "end_time": "2025-01-15T12:00:00Z"
}
Azure Advisor

الأداة:aks_advisor_recommendation

استرجاع وإدارة توصيات Azure Advisor لعناقيد AKS.

العمليات المتاحة:

  • list: قائمة التوصيات مع خيارات التصفية
  • report: إنشاء تقارير التوصية
  • خيارات التصفية: resource_group، cluster_names، الفئة (التكلفة، التوفر العالي، الأداء، الأمان)، الشدة (عالية، متوسطة، منخفضة)
قابلية الرصد في الوقت الحقيقي

الأداة:inspektor_gadget_observability

أداة الملاحظة في الوقت الحقيقي لتجمعات Azure Kubernetes Service (AKS) باستخدام eBPF.

الإجراءات المتاحة:

  • deployنشر أداة إنسبيكتور إلى التجمع:
  • undeploy: إزالة أداة إنسبيكتور من الكلاستر
  • is_deployed: تحقق من حالة النشر
  • run: شغل أدوات ذات ضربة واحدة
  • start: ابدأ الأجهزة المتواصلة
  • stop: توقف عن تشغيل الأدوات
  • get_resultsاسترجاع نتائج الأدوات :
  • list_gadgets: قائمة الأجهزة المتاحة

الأدوات المتاحة:

  • observe_dnsمراقبة طلبات واستجابات DNS:
  • observe_tcpمراقبة اتصالات TCP :
  • observe_file_open: مراقبة عمليات نظام الملفات
  • observe_process_executionمراقبة تنفيذ العمليات:
  • observe_signalمراقبة توصيل الإشارة:
  • observe_system_calls: مراقبة استدعاءات النظام
  • top_file: الملفات العليا حسب عمليات الإدخال/الإخراج
  • top_tcp: أعلى اتصالات TCP حسب حركة المرور
  • tcpdump: التقاط حزم الشبكة

البدء مع خادم AKS MCP

خادم AKS MCP له وضعان: محلي وبعيد. في هذا القسم، نغطي حالات الاستخدام وعمليات التثبيت لكلا الوضعين.

خادم MCP المحلي

في الوضع المحلي، يعمل خادم MCP على جهاز المطور المحلي ويتصل ب AKS باستخدام صلاحيات المطور الحالية. هذا الوضع هو الأفضل لإعداد وكيل الذكاء الاصطناعي المحلي لديك بسرعة مع خبرة وأدوات AKS دون الحاجة إلى مكونات على جانب العنقود. يمكن للوضع المحلي استخدام سياق العنقود الحالي ويطبق صلاحيات المطور Kubernetes وAzure RBAC. افتراضيا، يدعم خادم AKS MCP المحلي وضعي النقل STDIO وSSE.

المتطلبات

قبل تثبيت خادم AKS MCP، قم بإعداد Azure CLI وقم بالتحقق من:

az login

أسهل طريقة للبدء مع AKS-MCP هي من خلال إضافة خدمة Azure Kubernetes لكود VS. تتعامل إضافة AKS مع التنزيلات الثنائية والتحديثات والتكوين تلقائيا، مما يضمن دائما حصولك على أحدث إصدار مع أفضل الإعدادات.

الخطوة 1: تثبيت امتداد AKS

  1. افتح كود VS واذهب إلى الإضافات (Ctrl+Shift+X على ويندوز/لينكس أو Cmd+Shift+X على macOS).
  2. Search for Azure Kubernetes Service.
  3. قم بتثبيت الإضافة الرسمية لمايكروسوفت AKS.

الخطوة 2: تشغيل خادم AKS-MCP

  1. افتح لوحة الأوامر (Ctrl+Shift+P على ويندوز/لينكس أو Cmd+Shift+P على macOS).
  2. ابحث وتشغيل: AKS: إعداد خادم AKS MCP.

عند التثبيت الناجح، يظهر الخادم في MCP: List Servers (عبر لوحة الأوامر). من هناك، يمكنك تشغيل خادم MCP أو عرض حالته.

الخطوة 3: ابدأ باستخدام AKS-MCP

بمجرد التشغيل، يظهر خادم MCP في قائمة الدردشة Copilot: Configure Tools المنسدلة تحت MCP Server: AKS MCP، جاهزة لتحسين التوجيهات السياقية بناء على بيئة AKS الخاصة بك. افتراضيا، جميع أدوات الخادم AKS-MCP مفعلة. يمكنك مراجعة قائمة الأدوات المتاحة وتعطيل أي أدوات غير مطلوبة في حالتك.

جرب تنبيه مثل "سرد جميع مجموعات AKS الخاصة بي" لتبدأ باستخدام أدوات من خادم AKS-MCP.

تلميح

تكوين WSL: إذا كنت تستخدم VS Code على ويندوز مع WSL، استخدمه "command": "wsl" لاستدعاء ملف WSL الثنائي. إذا كان VS Code يعمل داخل WSL (Remote-WSL)، فاتصل بالملف الثنائي مباشرة أو استخدم غلاف bash بدلا من ذلك.

خادم MCP البعيد

في الوضع البعيد، يعمل خادم MCP كعبء عمل داخل عنقود AKS أو أي حساب تختاره. هذا الوضع هو الأفضل لبيئات الإنتاج التي تحتوي على أدوات مشتركة، وأصار متسقة بين المستخدمين، وتحكم كامل في الوصول باستخدام Kubernetes ServiceAccount وWorkload Identity. يستخدم خادم AKS MCP البعيد بروتوكول HTTP لتسهيل التفاعل بين مساعد الذكاء الاصطناعي وعنقود AKS.

المتطلبات

  • عنقود AKS مع Kubernetes 1.19+
  • هيلم 3.8+
  • تم تثبيت والتحقق من Azure CLI (az login)

التثبيت باستخدام مخطط الخوذة

قم باستنساخ المستودع وثبت مخطط خوذة AKS-MCP:

git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart

helm install aks-mcp . --namespace aks-mcp --create-namespace

للحصول على القائمة الكاملة لمعلمات التكوين، راجع توثيق مخطط هيلم.

تكوين المصادقة

اختر طريقة مصادقة بناء على بيئتك ومتطلبات الأمان:

يوفر Workload Identity مصادقة بدون كلمة مرور عن طريق ربط حساب خدمة Kubernetes بهوية مدارة من Azure.

1. تمكين OIDC على عنقود AKS الخاص بك

az aks update \
  --resource-group <your-resource-group> \
  --name <your-aks-cluster> \
  --enable-oidc-issuer \
  --enable-workload-identity

2. إنشاء هوية مدارة وتعيين صلاحيات RBAC

# Create identity
az identity create --resource-group <your-resource-group> --name aks-mcp-identity --location <your-location>

# Get IDs
IDENTITY_CLIENT_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "clientId" -o tsv)
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "principalId" -o tsv)

# Assign Reader role (use Contributor for readwrite access)
az role assignment create --role "Reader" --assignee-object-id $IDENTITY_PRINCIPAL_ID --assignee-principal-type ServicePrincipal --scope "/subscriptions/<subscription-id>"

3. إنشاء بطاقة هوية اتحادية

AKS_OIDC_ISSUER=$(az aks show --resource-group <your-resource-group> --name <your-aks-cluster> --query "oidcIssuerProfile.issuerUrl" -o tsv)

az identity federated-credential create \
  --name "aks-mcp-federated-credential" \
  --identity-name aks-mcp-identity \
  --resource-group <your-resource-group> \
  --issuer $AKS_OIDC_ISSUER \
  --subject "system:serviceaccount:aks-mcp:aks-mcp" \
  --audience api://AzureADTokenExchange

مهم

أنشئ الاعتماد الفيدرالي قبل تثبيت مخطط الخوذة.

4. تثبيت مع تفعيل Workload Identity

helm install aks-mcp . \
  --namespace aks-mcp \
  --create-namespace \
  --set workloadIdentity.enabled=true \
  --set azure.clientId=$IDENTITY_CLIENT_ID \
  --set azure.subscriptionId=<your-subscription-id>

Enable Ingress with Azure App Routing

عرض خادم MCP خارجيا باستخدام Azure App Routing:

# Enable App Routing on your cluster
az aks approuting enable --resource-group <your-resource-group> --name <your-cluster-name>

# Install with Ingress enabled
helm install aks-mcp . \
  --namespace aks-mcp \
  --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=aks-mcp.example.com \
  --set ingress.hosts[0].paths[0].path=/ \
  --set ingress.hosts[0].paths[0].pathType=Prefix \
  --set azure.existingSecret=azure-credentials

اربط عميل MCP الخاص بك

بعد النشر، قم بتوصيل مساعد الذكاء الاصطناعي الخاص بك بخادم MCP البعيد:

# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp

قم بتكوين عميل MCP الخاص بك للاتصال:

{
  "mcpServers": {
    "aks-mcp": {
      "url": "http://localhost:8000",
      "transport": "streamable-http"
    }
  }
}

للوصول داخل العنقود، استخدم: http://aks-mcp.aks-mcp.svc.cluster.local:8000

مرجع تكوين الدفة

المعلمه وصف Default
workloadIdentity.enabled Enable Azure Workload Identity false
azure.clientId Azure Client ID ""
azure.tenantId معرف مستأجر Azure ""
azure.clientSecret Azure Client Secret ""
azure.subscriptionId معرف اشتراك Azure ""
azure.existingSecret استخدم سر كوبيرنتيز موجود ""
app.accessLevel مستوى الوصول: readonly, readwrite, admin readonly
app.transport النقل: stdio, , ssestreamable-http streamable-http
oauth.enabled تمكين مصادقة OAuth false
ingress.enabled تمكين الدخول false

قم بإلغاء تثبيت خادم AKS MCP

تعتمد عملية إلغاء تثبيت خادم AKS MCP على وضع النشر ومكان تشغيله الحالي.

كود VS مع امتداد AKS

  1. افتح لوحة الأوامر (Ctrl+Shift+P على ويندوز/لينكس أو Cmd+Shift+P على macOS).
  2. شغل MCP: خوادم القوائم.
  3. اختر AKS MCP من القائمة.
  4. اختر إيقاف الخادم لإيقاف الخادم التشغيلي.
  5. لإزالة التكوين، اختر حذف تكوين الخادم.

بدلا من ذلك، قم بإزالة إعدادات الخادم يدويا:

  1. افتح ملفك .vscode/mcp.json أو إعدادات المستخدم في كود VS.
  2. احذف الإدخال aks-mcp-server من servers كائن أو github.copilot.chat.mcp.servers .
  3. احذف الملف الثنائي AKS-MCP من نظامك (الموقع يختلف حسب طريقة التثبيت).

Docker

إذا كنت تستخدم مجموعة أدوات Docker MCP:

  1. افتح سطح مكتب Docker.
  2. اختر مجموعة أدوات MCP في الشريط الجانبي الأيسر.
  3. ابحث عن خادم AKS-MCP وعطله.

إذا كنت تستخدم تكوين محوى في الحاوية، أوقف الحاوية وأزلها:

docker stop <container-id>
docker rm <container-id>

عملاء MCP الآخرون

قم بإزالة الإدخال aks أو aks-mcp من ملف إعدادات عميل MCP الخاص بك (على سبيل المثال، ملف claude_desktop_config.jsonClaude Desktop ).

المشاكل الشائعة وتحري الخلل وإصلاحه

يوضح هذا القسم المشاكل الشائعة في الإعداد ووقت التشغيل، وأعراضها، وكيفية حلها.

خادم AKS MCP لا يمكنه الوصول إلى العنقود

الأعراض:

  • الأدوات تعيد أخطاء التفويض
  • لا توجد مصادر مرئية

الأسباب المحتملة:

  • هوية المستخدم أو MCP لا تملك أذونات كافية
  • ربط حساب الخدمة غير صحيح
  • سياق kubeconfig تم تكوينه بشكل خاطئ (الوضع المحلي)

Resolution:

  • الوضع المحلي: تحقق من أن لديك صلاحيات كافية للوصول إلى العنقود. تحقق من أنك في المجموعة الصحيحة وسياق الاشتراك.
  • الوضع البعيد: تحقق من روابط ClusterRole لحساب الخدمة المستخدم من قبل خادم MCP

استدعاءات Azure API تفشل

الأعراض:

  • call_az الأدوات تعيد أخطاء المصادقة أو التفويض

الأسباب المحتملة:

  • هوية عبء العمل غير مفعلة لمجموعة العمل الخاصة بك
  • ServiceAccount غير اتحادي
  • تعيينات RBAC المفقودة في Azure

Resolution:

  • تحقق من تفعيل Workload Identity على عنقودك
  • تحقق من تكوين الهوية الفيدرالي
  • تعيين أدوار Azure المناسبة للهوية المدارة

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

تعرف أكثر على الميزات الذكية التي تم بناؤها بشكل أصلي ل AKS:

  • حول مؤشر CLI الوكيل ل AKS
  • تثبيت واستخدام CLI الوكيل ل AKS