ترحيل تطبيق بسيط من Service Fabric إلى AKS
توفر هذه المقالة مثالا لترحيل حمل العمل لمساعدتك في تنفيذ بعض المعلومات المفاهيمية المتوفرة في ترحيل حمل العمل الخاص بك من Service Fabric إلى AKS. توفر هذه المقالة معلومات حول خدمة Azure Kubernetes (AKS) ومقارنة AKS مع Azure Service Fabric. كما يصف الاعتبارات التي يجب مراعاتها عند ترحيل أحمال العمل الخاصة بك.
يركز هذا المثال على تطبيقات Service Fabric المستندة إلى Windows التي تم بالفعل تعبئتها في حاويات. يدعم كل من Azure Service Fabric وAzure Kubernetes Service حاويات Windows وLinux. إذا لم يكن التطبيق الخاص بك في حاويات، ففكر في التحقق مما إذا كان يمكنك تعبئته في حاويات. يعد إنشاء صورة حاوية لتطبيقك شرطا أساسيا لنشر التطبيق في Azure Kubernetes Service. إذا كان التطبيق يعتمد على نماذج برمجة Service Fabric (خدمات موثوقة، والممثلون الموثوقون، ASP.NET Core، والملفات التنفيذية للضيف)، فستحتاج على الأرجح إلى إجراء بعض إعادة بناء التعليمات البرمجية.
للحصول على معلومات حول تعبئة التطبيق في حاويات، راجع إعداد تطبيق ل AKS. للحصول على معلومات حول تعبئة تطبيق ASP.NET في حاويات، راجع ASP.NET تعبئة التطبيقات في حاويات وترحيلها إلى AKS.
المتطلبات الأساسية
قبل بدء الترحيل، تحتاج إلى:
صورة حاوية تطبيق مخزنة في Azure Container Registry.
بيئة Bash التي يمكنك استخدامها لتكوين موارد Azure.
تمكنك Azure Cloud Shell من العمل من المتصفح. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
في المرة الأولى التي تستخدم فيها Azure CLI، تحتاج إلى تثبيت ملحق Azure CLI عند مطالبتك. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
أداة سطر الأوامر kubectl Kubernetes. إذا لم يكن متوفرا بالفعل في بيئتك، يمكنك تثبيته عن طريق تشغيل هذا الأمر:
az aks install-cli
خطوات الترحيل
الخطوة الأولى هي إعداد الموارد التي تحتاجها لإنشاء تجمع عقدة Windows في Kubernetes. للقيام بذلك، اتبع الإرشادات الواردة في إنشاء حاوية Windows Server على نظام مجموعة AKS، ولكن تأكد من التوقف عند الوصول إلى قسم "نشر التطبيق". عند هذه النقطة، اتبع الإرشادات الواردة في هذه المقالة.
تعد ترجمة بيان تكوين Service Fabric إلى بيان AKS خطوة مهمة. تظهر الأقسام التالية:
- XML لبيان الخدمة الذي قد تستخدمه لنشر Service Fabric أساسي.
- بيان AKS مكافئ وظيفيا يقوم بإنشاء عناصر Kubernetes Deployment and Service .
لا يقوم البيانان بتعيين واحد لواحد لأنهما يستندان إلى النماذج الوظيفية الخاصة بكل خدمة، ولكن أهدافهما هي نفسها. (في هذه العينات، تستخدم المتغيرات التنسيق <VARIABLE DESCRIPTION>
.)
في بيان AKS، يوفر الكائن Deployment
تحديثات تعريفية ل Pods و ReplicaSets. يعرض Service
الكائن تطبيقا يعمل على مجموعة من pods كخدمة شبكة.
نموذج بيان خدمة Service Fabric
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="<APP NAME>"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<StatelessServiceType ServiceTypeName="<SERVICE NAME>" UseImplicitHost="true" />
</ServiceTypes>
<!-- Code package is your service executable file. -->
<CodePackage Name="code" Version="1.0.0">
<EntryPoint>
<ContainerHost>
<ImageName><YOUR IMAGE></ImageName>
<Commands></Commands>
</ContainerHost>
</EntryPoint>
<!-- Pass environment variables to your container. -->
<EnvironmentVariables>
<EnvironmentVariable Name="HttpGatewayPort" Value=""/>
<EnvironmentVariable Name="BackendServiceName" Value=""/>
</EnvironmentVariables>
</CodePackage>
<ConfigPackage Name="Config" Version="1.0.0" />
<Resources>
<Endpoints>
<Endpoint Name="<HTTP ENDPOINT NAME>" UriScheme="http" Port="80" Protocol="http"/>
</Endpoints>
</Resources>
</ServiceManifest>
نموذج بيان AKS
apiVersion: apps/v1
kind: Deployment
metadata:
name: <APP NAME>
labels:
app: <APP NAME>
spec:
replicas: 1
template:
metadata:
name: <APP NAME>
labels:
app: <APP NAME>
spec:
nodeSelector:
"kubernetes.io/os": windows
containers:
- name: <SERVICE NAME>
image: <YOUR IMAGE>
resources:
limits:
cpu: 1
memory: 800M
ports:
- containerPort: 80
- env:
- name: HttpGatewayPort
value: ""
- name: BackendServiceName
value: ""
selector:
matchLabels:
app: <APP NAME>
---
apiVersion: v1
kind: Service
metadata:
name: <SERVICE NAME>
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
selector:
app: <SERVICE NAME>
يوفر Kubernetes مجموعة كبيرة من خيارات التكوين، وهو أمر مفيد للمطورين ذوي الخبرة. ولكن يمكن أن تصبح البيانات كبيرة ومعقدة عند استخدام الكثير منها. للتعرف على تنفيذ ترحيل بسيط، نوصي بمراجعة عمليات النشر وبيانات YAML.
بعد أن يكون لديك البيان الخاص بك، تحتاج فقط إلى تطبيقه، ويمكنك مشاهدة تطبيقك:
kubectl apply -f <YOUR MANIFEST>.yaml
kubectl get deploy <APP NAME>
kubectl get service <SERVICE NAME> --watch
إشعار
يستخدم هذا المثال مساحة اسم Kubernetes الافتراضية، والتي تستخدم بشكل عام فقط للسيناريوهات الأساسية. في Kubernetes، توفر مساحات الأسماء آلية لعزل مجموعات الموارد داخل مجموعة واحدة. مساحات الأسماء مهمة لفرض حدود الأمان والشبكات والموارد. لتحديد تكوين يعمل بشكل أفضل للتطبيق الخاص بك، راجع وثائق مساحات أسماء Kuberetes.
المساهمون
تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.
الكتاب الرئيسيون:
- Ally Ford | مدير المنتج الثاني
- باولو سالفاتوري | مهندس العملاء الرئيسي
- براندون سميث | مدير البرنامج الثاني
مساهمون آخرون:
- مايكل ألبرتس | كاتب تقني
- Ayobami Ayodeji | كبير مديري البرنامج
- Moumita Dey Verma | مهندس أول لحلول السحابة
لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.
الخطوات التالية
- حافظ على تحديث AKS مع ملاحظات إصدار AKS وخريطة طريق AKS وتحديثات Azure.
- استخدم أحدث صور خادم windows للمساعدة في الحفاظ على الأمان وتحسين الأداء وتقليل الحمل.
- استخدم متعقب إصدار AKS لمواكبة أحدث إصدار من Kubernetes.
- استخدم أحدث SDK لأحمال عمل .NET.
- ضع في اعتبارك إجراء اختبارات التحميل وضبط الأداء، وتقييم الحصص النسبية لوحدة المعالجة المركزية والذاكرة التي يتم تطبيقها على جرابات AKS بشكل دوري: مراقبة AKS باستخدام Azure Monitor.
- استخدم مسرع منطقة هبوط AKS لتنفيذ أحمال العمل على AKS وتطبيق أفضل الممارسات.