إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ابدأ مع مضيف حاوية Azure Linux باستخدام قالب Azure Resource Manager (ARM) لنشر مجموعة مضيف حاوية Azure Linux. بعد تثبيت المتطلبات الأساسية، ستقوم بإنشاء زوج مفاتيح SSH، ومراجعة القالب، ونشر القالب والتحقق من صحته، ثم نشر تطبيق.
قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.
هام
اعتبارا من 30 نوفمبر 2025، لم تعد خدمة Azure Kubernetes Service (AKS) تدعم أو توفر تحديثات أمان ل Azure Linux 2.0. صورة عقدة Azure Linux 2.0 مجمدة عند إصدار 202512.06.0. ابتداء من 31 مارس 2026، سيتم إزالة صور العقد، ولن تتمكن من توسيع مجموعات العقد الخاصة بك. انتقل إلى نسخة Azure Linux المدعومة عن طريق ترقية مجموعات العقد إلى نسخة Kubernetes مدعومة أو الانتقال إلى osSku AzureLinux3. لمزيد من المعلومات، راجع التقاعد: تجمعات عقد Azure Linux 2.0 على AKS.
المتطلبات الأساسية
-
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع تشغيل سريع لـ Azure Cloud Shell - Bash.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
إذا لم يكن لديك kubectl مثبت بالفعل، فقم بتثبيته من خلال Azure CLI باستخدام
az aks install-cliأو اتبع الإرشادات الأولية.لإنشاء نظام مجموعة AKS باستخدام قالب Resource Manager، ستقدم مفتاح عمومي SSH. إذا كنت بحاجة إلى هذا المورد، راجع القسم التالي؛ وإلا فانتقل إلى قسم مراجعة القالب.
توفر الهوية التي تستخدمها لإنشاء نظام مجموعتك الحد الأدنى المناسب من الأذونات. لمزيد من المعلومات حول الوصول والهوية ل AKS، راجع خيارات الوصول والهوية لخدمة Azure Kubernetes (AKS).
لتوزيع ملف Bicep أو قالب ARM، يلزم الوصول إلى الكتابة على الموارد التي تستخدمها والوصول إلى جميع العمليات على نوع المورد Microsoft.Resources/deployments. على سبيل المثال، لاستخدام جهاز ظاهري، تحتاج إلى أذونات Microsoft.Compute/virtualMachines/write and Microsoft.Resources/deployments/*. للحصول على قائمة بالأدوار والأذونات، انظر أدوار Azure المضمنة.
أنشئ مفتاح مزدوج SSH
للدخول إلى عقد AKS، اتصل مستخدماً مفتاح إقران SSH (عام وخاص) الذي أنشأته مستخدماً ssh-keygenالأمر. سيتم إنشاء هذه الملفات افتراضياً في ~/.ssh directory. يؤدي تشغيل الأمر إلى ssh-keygen الكتابة فوق أي زوج مفاتيح SSH بنفس الاسم الموجود بالفعل في الموقع المحدد.
انتقل إلى https://shell.azure.comلفتح Cloud Shell في متصفحك.
تشغيل الأمر
ssh-keygen. ينشأ النموذج التالي مفتاح مزدوج لـ SSH يستخدم تشفير RSA وطول يساوي 4096 بت:ssh-keygen -t rsa -b 4096
للاطلاع على معلومات أكثر حول إنشاء مفتاح SSH، راجع إنشاء وإدارة مفاتيح SSH للمصادقة في Azure.
مراجعة القالب
يستخدم النشر التالي قالب ARM من قوالب Azure Quickstart.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.1",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "azurelinuxakscluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"minValue": 0,
"maxValue": 1023,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"minValue": 1,
"maxValue": 50,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "Standard_DS2_v2",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
}
},
"osType": {
"type": "string",
"defaultValue": "Linux",
"allowedValues": [
"Linux"
],
"metadata": {
"description": "The type of operating system."
}
},
"osSKU": {
"type": "string",
"defaultValue": "AzureLinux",
"allowedValues": [
"AzureLinux",
"AzureLinux3",
"Ubuntu",
"Ubuntu2204",
"Ubuntu2404"
],
"metadata": {
"description": "The Linux SKU to use."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2021-03-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"mode": "System",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "[parameters('osType')]",
"osSKU": "[parameters('osSKU')]",
"storageProfile": "ManagedDisks"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
},
"identity": {
"type": "SystemAssigned"
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(parameters('clusterName')).fqdn]"
}
}
}
لإضافة Azure Linux إلى قالب ARM موجود، تحتاج إلى إضافة "osSKU": "AzureLinux""mode": "System"agentPoolProfiles و وتعيين apiVersion إلى 2021-03-01 أو أحدث ()."apiVersion": "2021-03-01"
نشر القالب
حدد الزر التالي لتسجيل الدخول إلى Azure وفتح قالب.
حدد القيم التالية أو أدخلها.
خلال هذا التشغيل السريع، اترك القيم الافتراضية OS Disk Size GBوAgent Count وAgent VM Size وOS Type وKubernetes Version. أدخل القيم الخاصة بك لمعلمات القالب التالية:
- الاشتراك: تحديد اشتراك Azure.
- مجموعة الموارد: حدد Create new. أدخل اسما فريدا لمجموعة الموارد، مثل testAzureLinuxResourceGroup، ثم اختر OK.
- الموقع: حدد موقعاً مثل شرق الولايات المتحدة.
- اسم نظام المجموعة: أدخل اسما فريدا لمجموعة AKS، مثل testAzureLinuxCluster.
- بادئة DNS: أدخل بادئة DNS فريدة لنظام المجموعة، مثل myAzureLinuxCluster.
- اسم مستخدم مسؤول Linux: أدخل اسم مستخدم للاتصال باستخدام SSH، مثل azureUser.
- المفتاح العام لSSH RSA : انسخ والصق الجزءالعام من مفتاح إقرانك SSH (افتراضياً، محتويات~/.ssh/id_rsa.pub).
حدد "استعراض + إنشاء".
يستغرق الأمر بضع دقائق لإنشاء نظام مجموعة مضيف حاوية Azure Linux. انتظر حتى نجاح نشر نظام المجموعة قبل انتقالك إلى الخطوة التالية.
التحقُّق من صحة عملية النشر
الاتصال بنظام المجموعة
لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميلkubectl.
قم بتثبيت
kubectlمحلياً باستخدام أمرaz aks install-cli:az aks install-cliقم بتكوين
kubectlللاتصال بنظام مجموعة Kubernetes باستخدام أمرaz aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxClusterتحقق من الاتصال بالمجموعة باستخدام
kubectl getالأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.kubectl get nodesيظهر مثال المخرج التالي ثلاث عقد تم إنشاؤها في الخطوات السابقة. تأكد من أن حالة العقدة Ready:
NAME STATUS ROLES AGE VERSION aks-agentpool-41324942-0 Ready agent 6m44s v1.12.6 aks-agentpool-41324942-1 Ready agent 6m46s v1.12.6 aks-agentpool-41324942-2 Ready agent 6m45s v1.12.6
قم بنشر التطبيق
يحدد ملف بيانات Kubernetesالحالة المطلوبة لنظام المجموعة، مثل صور الحاوية المراد تشغيلها.
في هذا التشغيل السريع، يمكنك استخدام بيان لإنشاء جميع الكائنات اللازمة لتشغيل تطبيق Azure Vote. يشتمل ملف البيانات هذا على عمليتينشر Kubernetes:
- نموذج تطبيقات Azure Vote Python.
- مثيل Redis.
كما يتم إنشاء اثنين من خدمات Kubernetes:
- خدمة داخلية لمثيل Redis.
- خدمة خارجية للوصول إلى تطبيق Azure Vote من خلال الإنترنت.
إنشاء ملف باسم
azure-vote.yaml.- في حال كنت تستخدم Azure Cloud Shell، يمكنك إنشاء هذا الملف
code،viأوnanoكما لو كان العمل جارياً على نظام افتراضي أو فعلي
- في حال كنت تستخدم Azure Cloud Shell، يمكنك إنشاء هذا الملف
انسخ في تعريف YAML التالي:
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-back image: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - name: ALLOW_EMPTY_PASSWORD value: "yes" resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-front image: mcr.microsoft.com/azuredocs/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-frontللحصول على تصنيف تفصيلي لملفات بيان YAML، راجع عمليات التوزيع وبيانات YAML.
انشر التطبيق باستخدام الأمرkubectl apply وحدد اسم ملف بياناتك من YAML:
kubectl apply -f azure-vote.yamlيمثل المثال التالي المخرج الذي يظهر عمليات التوزيع والخدمات التي تم إنشاؤها بنجاح:
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" created
اختبر التطبيق
عند تشغيل التطبيق، تعرض خدمة Kubernetes واجهة التطبيق الأمامية للإنترنت. قد تستغرق هذه العملية بضع دقائق حتى تكتمل.
راقب سير العملية باستخدام أمر kubectl get serviceمع --watchوسيطة.
kubectl get service azure-vote-front --watch
في البداية، ستظهر مخرجات EXTERNAL-IP للخدمةazure-vote-front على أنها معلقة.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
بمجرد تغيير عنوان EXTERNAL-IP من معلق إلى عنوان IP عام فعلي، استخدم CTRL-C لتعطيل عملية kubectl المراقبة. يوضح المثال التالي إخراج لعنوان IP عام صالحاً تم تعيينه للخدمة:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
لرؤية تطبيق Azure Vote أثناء العمل، افتح مستعرض ويب على عنوان IP الخارجي لخدمتك.
قم بحذف نظام المجموعة
إذا كنت لن تستمر خلال البرامج التعليمية التالية، لتجنب رسوم Azure تنظيف أي موارد غير ضرورية.
az group delete استخدم الأمر لإزالة مجموعة الموارد وجميع الموارد ذات الصلة.
az group delete --name testAzureLinuxCluster --yes --no-wait
الخطوات التالية
في هذا التشغيل السريع، قمت بنشر مجموعة مضيف حاوية Azure Linux. لمعرفة المزيد حول مضيف حاوية Azure Linux، والتعرف على مثال كامل لنشر نظام المجموعة وإدارته، تابع البرنامج التعليمي لمضيف حاويات Azure Linux.