تثبيت الوظيفة الإضافية للتحجيم التلقائي (KEDA) المستندة إلى أحداث Kubernetes باستخدام قالب ARM
توضح هذه المقالة كيفية نشر الوظيفة الإضافية للتحجيم التلقائي (KEDA) المستندة إلى أحداث Kubernetes إلى خدمة Azure Kubernetes (AKS) باستخدام قالب ARM.
هام
يحدد إصدار نظام المجموعة Kubernetes إصدار KEDA الذي سيتم تثبيته على نظام مجموعة AKS. لمعرفة إصدار KEDA الذي يعين إلى كل إصدار AKS، راجع عمود الوظائف الإضافية المدارة AKS لجدول إصدار مكون Kubernetes.
بالنسبة لإصدارات GA Kubernetes، تقدم AKS دعما كاملا للإصدار الثانوي المقابل ل KEDA في الجدول. تتم تغطية إصدارات معاينة Kubernetes وأحدث تصحيح KEDA جزئيا من خلال دعم العملاء على أساس أفضل جهد. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:
إشعار
يقدم KEDA الإصدار 2.15 تغييرا فاصلا يزيل دعم هوية الجراب. نوصي بالانتقال إلى هوية حمل العمل للمصادقة الخاصة بك إذا كنت تستخدم هوية pod. في حين أن الوظيفة الإضافية المدارة KEDA لا تشغل حاليا الإصدار 2.15 من KEDA، فإنها ستبدأ في تشغيلها في إصدار معاينة AKS 1.31.
لمزيد من المعلومات حول كيفية توسيع نطاق تطبيقاتك بأمان باستخدام هوية حمل العمل، يرجى قراءة البرنامج التعليمي. لعرض سياسة التغيير/الإهمال التي تتبعها KEDA، يرجى قراءة وثائقها الرسمية.
قبل البدء
- تحتاج إلى شتراك Azure. إذا لم يكن لديك اشتراك Azure، يمكنك إنشاء حساب مجاني.
- تحتاج إلى تثبيت Azure CLI.
- تفترض هذه المقالة أن لديك مجموعة موارد Azure موجودة. إذا لم يكن لديك مجموعة موارد موجودة، يمكنك إنشاء مجموعة باستخدام
az group create
الأمر . - تأكد من تكوين قواعد جدار الحماية للسماح بالوصول إلى خادم Kubernetes API. لمزيد من المعلومات، راجع قواعد الشبكة الصادرة وFQDN لمجموعات خدمة Azure Kubernetes (AKS).
- إنشاء زوج مفاتيح SSH.
إشعار
إذا كنت تستخدم هوية حمل عمل Microsoft Entra وقمت بتمكين KEDA قبل هوية حمل العمل، فأنت بحاجة إلى إعادة تشغيل حجيرات عامل تشغيل KEDA حتى يمكن حقن متغيرات البيئة المناسبة:
أعد تشغيل pods عن طريق تشغيل
kubectl rollout restart deployment keda-operator -n kube-system
.الحصول على وحدات جراب عامل تشغيل KEDA باستخدام
kubectl get pod -n kube-system
والعثور على pods التي تبدأ بkeda-operator
.تحقق من الإدخال الناجح لمتغيرات البيئة عن طريق تشغيل
kubectl describe pod <keda-operator-pod> -n kube-system
. ضمنEnvironment
، يجب أن تشاهد قيم وAZURE_TENANT_ID
AZURE_FEDERATED_TOKEN_FILE
و.AZURE_AUTHORITY_HOST
أنشئ مفتاح مزدوج SSH
انتقل إلى Azure Cloud Shell.
إنشاء زوج مفاتيح SSH باستخدام
az sshkey create
الأمر .az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
تمكين وظيفة إضافية KEDA باستخدام قالب ARM
نشر قالب ARM لمجموعة AKS.
ثم حدد قالب تعديل.
قم بتمكين الوظيفة الإضافية KEDA عن طريق تحديد
workloadAutoScalerProfile
الحقل في قالب ARM، كما هو موضح في المثال التالي:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
حدد حفظ.
تحديث القيم المطلوبة لقالب ARM:
- الاشتراك: حدد اشتراك Azure لاستخدامه للنشر.
- مجموعة الموارد: حدد مجموعة الموارد لاستخدامها في النشر.
- المنطقة: حدد المنطقة التي تريد استخدامها للنشر.
- بادئة Dns: أدخل اسم DNS فريدا لاستخدامه في نظام المجموعة.
- Linux Admin Username: أدخل اسم مستخدم للمجموعة.
- مصدر المفتاح العام SSH: حدد استخدام المفتاح الموجود المخزن في Azure.
- مفاتيح المتجر: حدد زوج المفاتيح الذي أنشأته سابقا في المقالة.
اختر إنشاء>مراجعة + إنشاء.
قم بالاتصال بمجموعة AKS
للاتصال بمجموعة Kubernetes من جهازك المحلي، يمكنك استخدام kubectl، عميل سطر الأوامر Kubernetes.
في حال كنت تستخدم Azure Cloud Shell، يكون kubectl
مثبتاً بالفعل. يمكنك أيضا تثبيته محليا باستخدام az aks install-cli
الأمر .
- تكوين
kubectl
للاتصال بمجموعة Kubernetes الخاصة بك، استخدم الأمر az aks get-credentials . يحصل المثال التالي على بيانات اعتماد لمجموعة AKS المسماة myAKSCluster في myResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
مثال للتوزيع
القصاصة البرمجية التالي عبارة عن نموذج نشر يقوم بإنشاء مجموعة مع تمكين KEDA مع تجمع عقدة واحد يتكون من ثلاث عقدDS2_v5
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"apiVersion": "2023-03-01",
"dependsOn": [],
"type": "Microsoft.ContainerService/managedClusters",
"location": "westcentralus",
"name": "myAKSCluster",
"properties": {
"kubernetesVersion": "1.27",
"enableRBAC": true,
"dnsPrefix": "myAKSCluster",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": 200,
"count": 3,
"enableAutoScaling": false,
"vmSize": "Standard_D2S_v5",
"osType": "Linux",
"type": "VirtualMachineScaleSets",
"mode": "System",
"maxPods": 110,
"availabilityZones": [],
"nodeTaints": [],
"enableNodePublicIP": false
}
],
"networkProfile": {
"loadBalancerSku": "standard",
"networkPlugin": "kubenet"
},
"workloadAutoScalerProfile": {
"keda": {
"enabled": true
}
}
},
"identity": {
"type": "SystemAssigned"
}
}
]
}
أبدأ تحجيم التطبيقات باستخدام KEDA
يمكنك تغيير الحجم التلقائي لتطبيقاتك باستخدام KEDA باستخدام تعريفات الموارد المخصصة (CRDs). لمزيد من المعلومات، راجع وثائق KEDA.
إزالة الموارد
قم بإزالة مجموعة الموارد وجميع الموارد ذات الصلة باستخدام
az group delete
الأمر .az group delete --name <resource-group-name>
الخطوات التالية
توضح لك هذه المقالة كيفية تثبيت المكون الإضافي لـ KEDA على نظام مجموعة AKS، ثم التحقق من صحة تثبيته وتشغيله. بتثبيت المكون الإضافي KEDA على نظام المجموعة الخاص بك، يمكنك توزيع عينة تطبيق لبدء تحجيم التطبيقات.
للحصول على معلومات حول استكشاف أخطاء KEDA وإصلاحها، راجع استكشاف أخطاء الوظيفة الإضافية للتحجيم التلقائي (KEDA) المستندة إلى أحداث Kubernetes وإصلاحها.
لمعرفة المزيد، اعرض مستندات KEDA المصدر.
Azure Kubernetes Service