وظائف Azure على Kubernetes مع KEDA
يوفر وقت تشغيل وظائف Azure مرونة في الاستضافة أينما وكيفما تريد. KEDA (التحجيم التلقائي المستند إلى حدث Kubernetes) يقترن بسلاسة مع وقت تشغيل وظائف Azure والأدوات لتوفير تحجيم مستند إلى الحدث في Kubernetes.
هام
يعد تشغيل تطبيقات الوظائف المعبأة في حاويات على Kubernetes، إما باستخدام KEDA أو عن طريق النشر المباشر، جهدا مفتوح المصدر يمكنك استخدامه مجانا. يتم توفير أفضل دعم من قبل المساهمين ومن المجتمع باستخدام مشكلات GitHub في مستودع Azure Functions. يرجى استخدام هذه المشكلات للإبلاغ عن الأخطاء ورفع طلبات الميزات.
بالنسبة إلى عمليات نشر Kubernetes المدعومة بالكامل، ضع في اعتبارك بدلا من ذلك استضافة Azure Container Apps ل Azure Functions.
آلية عمل الوظائف المستندة إلى Kubernetes
تتكون خدمة وظائف Azure من مكونين رئيسيين: وقت التشغيل ووحدة التحكم في المقياس. إن وقت تشغيل الوظائف يشغّل التعليمة البرمجية الخاصة بك وينفذها. يتضمن وقت التشغيل منطقًا حول كيفية تشغيل إجراءات تنفيذ الوظائف، وتسجيلها، وإدارتها. يمكن تشغيل وقت تشغيل وظائف Azure في أي مكان. المكون الآخر هو وحدة التحكم في المقياس. تراقب وحدة التحكم في المقياس معدل الأحداث التي تستهدف وظيفتك، وتُحجِّم عدد المثيلات التي تُشغِّل تطبيقك بشكل استباقي. لمعرفة المزيد، راجع تغيير السعة واستضافة وظائف Azure.
توفر Functions المستندة إلى Kubernetes وقت تشغيل Functions في حاوية Docker مع التحجيم المستند إلى الحدث من خلال KEDA. يمكن أن يتدرج KEDA إلى صفر مثيلات (عندما لا تحدث أحداث) ويخرج إلى n مثيلات. وهذا يتم عن طريق توضيح المقاييس المخصصّة لمقياس التحجيم التلقائي Kubernetes (Horizontal Pod Autoscaler). يتيح استخدام حاويات الوظائف مع KEDA إمكانية تكرار إمكانات الوظائف بلا خادم في أي من مجموعات Kubernetes. يمكن أيضًا نشر هذه الوظائف باستخدام ميزة العُقَد الظاهرية لخدمات Azure Kubernetes (AKS)للبنية الأساسية بلا خادم.
إدارة KEDA والوظائف في Kubernetes
لتشغيل الوظائف على مجموعة Kubernetes، يجب عليك تثبيت مكون KEDA. يمكنك تثبيت هذا المكون بإحدى الطرق التالية:
الأدوات الأساسية لوظائف Azure: باستخدام أمر
func kubernetes install
.Helm: هناك طرق مختلفة لتثبيت KEDA في أي من مجموعات Kubernetes، بما في ذلك Helm. توثق خيارات التوزيع على موقع KEDA.
توزيع تطبيق الوظائف إلى Kubernetes
يمكنك نشر أي تطبيق وظائف إلى إحدى مجموعات Kubernetes التي تُشغِّل KEDA. منذ تشغيل الوظائف الخاصة بك في حاوية Docker، يحتاج مشروعك إلى Dockerfile. يمكنك إنشاء Dockerfile باستخدام --docker
الخيار عند الاتصال بـ func init
لإنشاء المشروع. إذا نسيت إنشاء Dockerfile الخاص بك، يمكنك دائما الاتصال func init
مرة أخرى من جذر مشروع التعليمات البرمجية.
(اختياري) إذا كنت بحاجة إلى إنشاء Dockerfile الخاص بك، فاستخدم
func init
الأمر مع--docker-only
الخيار :func init --docker-only
لمعرفة المزيد حول إنشاء Dockerfile، راجع المرجع
func init
.func kubernetes deploy
استخدم الأمر لإنشاء صورتك ونشر تطبيق الوظائف المعبأة في حاويات إلى Kubernetes:func kubernetes deploy --name <name-of-function-deployment> --registry <container-registry-username>
في هذا المثال، استبدل
<name-of-function-deployment>
باسم تطبيق الوظائف الخاص بك. ينفذ أمر التوزيع هذه المهام:- يتم استخدام Dockerfile الذي تم إنشاؤه مسبقا لإنشاء صورة محلية لتطبيق الوظائف المعبأة في حاويات.
- يتم تمييز الصورة المحلية بعلامة ودفعها إلى سجل الحاوية حيث يتم تسجيل دخول المستخدم.
- يتم إنشاء بيان وتطبيقه على نظام المجموعة الذي يُعرِّف مورد
Deployment
Kubernetes، وموردScaledObject
، وSecrets
، والذي يتضمن متغيّرات البيئة المستوردة من ملفlocal.settings.json
الخاص بك.
توزيع تطبيق الوظائف من سجل خاص
تعمل خطوات التوزيع السابقة للسجلات الخاصة أيضا. إذا كنت تسحب صورة الحاوية من سجل خاص، فضمن العلامة --pull-secret
التي تشير إلى سر Kubernetes الذي يحتفظ ببيانات اعتماد السجل الخاصة عند تشغيل func kubernetes deploy
.
إزالة تطبيق الوظائف من Kubernetes
بعد التوزيع، يمكنك إزالة وظيفة عن طريق إزالة Deployment
، وScaledObject
، وSecrets
المرتبطين الذين تم إنشاؤهم.
kubectl delete deploy <name-of-function-deployment>
kubectl delete ScaledObject <name-of-function-deployment>
kubectl delete secret <name-of-function-deployment>
إلغاء تثبيت KEDA من Kubernetes
يمكنك إزالة KEDA من نظام المجموعة الخاص بك عن طريق إحدى الطرق التالية:
الأدوات الأساسية لوظائف Azure: باستخدام أمر
func kubernetes remove
.Helm: راجع خطوات إلغاء التثبيت على موقع KEDA.
مشغّلات معتمدة في KEDA
لدى KEDA دعم لمشغّلات وظائف Azure التالية:
دعم مشغّل HTTP
يمكنك استخدام وظائف Azure التي تعرض مشغّلات HTTP، ولكن KEDA لا تديرها مباشرةً. يمكنك استخدام مشغل KEDA prometheus لتوسيع نطاق وظائف HTTP Azure من واحد إلى n
مثيلات.
الخطوات التالية
لمزيد من المعلومات، راجع الموارد التالية: