إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تشرح هذه المقالة كيفية تكوين موارد AKSNodeClass لتعريف إعدادات Azure خاصة بالتوفير التلقائي للعقد (NAP) في خدمة Azure Kubernetes (AKS) باستخدام Karpenter.
AKSNodeClass يسمح لك بتخصيص جوانب مختلفة من العقد التي يوفرها Karpenter، مثل صورة الجهاز الظاهري (VM) وحجم قرص نظام التشغيل (OS) والحد الأقصى للجراب لكل عقدة وتكوينات kubelet.
Important
ابتداء من 30 نوفمبر 2025، لم يعد خدمة Azure Kubernetes (AKS) يدعم أو يوفر تحديثات الأمان ل Azure Linux 2.0. صورة عقدة لينكس 2.0 Azure متجمدة عند إصدار 202512.06.0. ابتداء من 31 مارس 2026، سيتم إزالة صور العقد، ولن تتمكن من توسيع مجموعات العقد الخاصة بك. انتقل إلى نسخة مدعومة Azure لينكس عن طريق ترقية مجموعات العقد إلى نسخة Kubernetes مدعومة أو الانتقال إلى osSku AzureLinux3. لمزيد من المعلومات، راجع Retirement GitHub issue وتحديث Azure إعلان التقاعد. للبقاء على اطلاع بالإعلانات والتحديثات، تابع ملاحظات الإصدار AKS.
نظرة عامة على موارد AKSNodeClass
موارد AKSNodeClass تتيح لك تكوين إعدادات Azure الخاصة ب NAP. يجب أن يشير كل NodePool مورد إلى AKSNodeClass استخدام spec.template.spec.nodeClassRef. يمكنك أن يكون لديك عدة NodePools تشير إلى نفس AKSNodeClass، مما يسمح لك بمشاركة تكوينات Azure مشتركة عبر مجموعات عقد مختلفة.
تكوين عائلة الصور
يحدد imageFamily الحقل صورة الآلة الافتراضية ومنطق الإقلاع للعقد التي يتم تخصيصها عبر .AKSNodeClass إذا لم تحدد عائلة صور، يتم استخدام نسخة نظام التشغيل الافتراضية وفقا لإصدار Kubernetes الخاص بك. يتم دعم وحدات معالجة الرسومات مع كلتا عائلات الصور على أحجام الأجهزة الظاهرية المتوافقة. لمزيد من المعلومات حول النسخة الافتراضية لنظام التشغيل حسب إصدار Kubernetes، راجع وثائق إصدار نظام التشغيل AKS.
عائلات الصور المدعومة
-
Ubuntu: أوبونتو هو التوزيع الافتراضي للينكس لعقد AKS.- تتغير إعدادات إصدار OS بناء على نسخة Kubernetes الخاصة بك. أوبونتو 22.04 هو الافتراضي لإصدارات كوبيرنتيز من 1.25 إلى 1.33. أوبونتو 24.04 هو الافتراضي لإصدارات كوبرنيتس 1.34 وما بعدها.
-
AzureLinux: Azure Linux هو التوزيع البديل للينكس Microsoft لأحمال عمل AKS. لمزيد من المعلومات، راجع وثائق Azure Linux.
مثال على تكوين عائلة الصور
يقوم المثال التالي بتكوين مجموعة AKSNodeClass الصور لاستخدامها AzureLinux :
spec:
imageFamily: AzureLinux
تكوين صورة العقدة المتوافق مع FIPS
يمكنك أيضا تفعيل صور العقد المتوافقة مع معايير معالجة المعلومات الفيدرالية (FIPS). لمزيد من المعلومات حول FIPS في AKS، راجع توثيق FIPS.
يتم تعيين الحقل fipsMode افتراضيا على "معطل"، ويمكن تعيينه على الخيارات التالية:
- FIPS - اختيار صور العقد المتوافقة مع FIPS
- معطلة - لا تستخدم صور العقد المتوافقة مع FIPS
المثال التالي يضبط 'AKSNodeClass' لاختيار صور العقد المتوافقة مع FIPS عن طريق التعيين fipsMode إلى FIPS:
spec:
fipsMode: FIPS
تدفق القطع الأثرية
يسمح لك Artifact Streaming ببث صور الحاوية من Azure Container Registry (ACR) إلى خدمة Azure Kubernetes (AKS). تسحب AKS الطبقات الضرورية فقط لبدء تشغيل pod الأولي، ما يقلل من الوقت المستغرق لتوزيع أحمال العمل الخاصة بك.
المتطلبات المسبقه
- يتطلب تدفق البيانات الاصطناعية أن يكون لديك ACR الطبقة المتميزة المتكاملة مع مجموعة AKS الخاصة بك.
- يجب تمكين تدفق البيانات الاصطناعية في ACR.
راجع وثائق Artifact Streaming للحصول على إرشادات حول تمكين Artifact Streaming في ACR.
تمكين تدفق البيانات الاصطناعية في مجموعات NAP
يمكن للمجموعات التي تم تمكين التزويد التلقائي للعقدة (NAP) تمكين تدفق البيانات الاصطناعية باستخدام spec.artifactStreaming.enabled حقل AKSNodeClass CRD. قم بتعيين هذا الحقل إلى true لتمكين تدفق البيانات الاصطناعية لأي عقد جديدة أو موجودة مدارة بواسطة NAP مقترنة ب AKSNodeClass CRD هذا.
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: my-node-class
spec:
# Enables artifact streaming; To use this feature container images must also enable artifact streaming on ACR
# Valid values: true, false; defaults to false if not specified
artifactStreaming:
enabled:
true
ملحوظة
لاستخدام تدفق البيانات الاصطناعية على العقد المدارة AKS NAP، يجب عليك أيضا تمكين تدفق البيانات الاصطناعية في Azure Container Registry (ACR). إذا لم تقم بتعيين هذا الخيار في ACR، فسيتم تعيين الحقل افتراضيا إلى خطأ.
تكوين الشبكة الفرعية للشبكة الظاهرية (VNet)
يحدد حقل vnetSubnetID أي شبكة فرعية Azure VNet يجب استخدامها لتوفير واجهات شبكة العقد. هذا الحقل اختياري. إذا لم تحدد شبكة فرعية، تستخدم NAP الشبكة الفرعية الافتراضية التي تم تكوينها أثناء تثبيت Karpenter. لمزيد من المعلومات، راجع تكوينات الشبكة الفرعية ل NAP.
مثال على تكوين الشبكة الفرعية
يجب أن يكون معرف الشبكة الفرعية بصيغة Azure Resource Manager (ARM) الكاملة، كما هو موضح في المثال التالي:
spec:
vnetSubnetID: "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Network/virtualNetworks/{vnet-name}/subnets/{subnet-name}"
تكوين حجم قرص نظام التشغيل
يحدد الحقل osDiskSizeGB حجم قرص نظام التشغيل بالجيجابايت. القيمة الافتراضية هي 128 جيجابايت، والحد الأدنى للقيمة هو 30 غيغابايت.
ضع في اعتبارك أحجام أقراص نظام التشغيل الأكبر لأحمال العمل التي:
- تخزين البيانات المهمة محليا.
- تتطلب مساحة إضافية لصور الحاوية.
- لديك متطلبات إدخال / إخراج عالية للقرص.
مثال على تكوين حجم قرص نظام التشغيل
spec:
osDiskSizeGB: 256 # 256 GB OS disk
تكوين قرص نظام التشغيل سريع الزوال
تستخدم NAP تلقائيا أقراص نظام التشغيل سريعة الزوال عندما تكون متوفرة ومناسبة لحجم القرص المطلوب. توفر أقراص نظام التشغيل سريعة الزوال أداء أفضل وتكلفة أقل مقارنة بالأقراص المدارة.
معايير اختيار القرص سريع الزوال
يختار النظام تلقائيا الأقراص سريعة الزوال في السيناريوهات التالية:
- يدعم نوع مثيل الجهاز الظاهري أقراص نظام التشغيل سريع الزوال.
- سعة القرص سريع الزوال أكبر من أو تساوي المطلوب
osDiskSizeGB. - يتمتع الجهاز الظاهري بسعة تخزين سريعة الزوال كافية.
إذا لم يتم استيفاء هذه الشروط، فسيعود النظام إلى استخدام الأقراص المدارة.
أنواع الأقراص سريعة الزوال وتحديد الأولويات
يمكن أن تحتوي أجهزة Azure الافتراضية على أنواع مختلفة من التخزين المؤقت. يستخدم النظام ترتيب الأولوية التالي:
- أقراص NVMe (أعلى أداء)
- أقراص ذاكرة التخزين المؤقت (أداء متوازن)
- أقراص الموارد (الأداء الأساسي)
مثال على تكوين القرص سريع الزوال
يمكنك استخدام متطلبات تجمع العقد للتأكد من أن العقد لديها سعة قرص سريعة الزوال كافية، كما هو موضح في المثال التالي:
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: ephemeral-disk-pool
spec:
template:
spec:
requirements:
- key: karpenter.azure.com/sku-storage-ephemeralos-maxsize
operator: Gt
values: ["128"] # Require ephemeral disk larger than 128 GB
nodeClassRef:
group: karpenter.azure.com
kind: AKSNodeClass
name: my-node-class
---
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: my-node-class
spec:
osDiskSizeGB: 128 # This will use ephemeral disk if available and large enough
يضمن هذا التكوين تحديد أنواع مثيلات الجهاز الظاهري فقط ذات الأقراص سريعة الزوال التي يزيد حجمها عن 128 غيغابايت، مما يضمن استخدام القرص سريع الزوال لحجم قرص نظام التشغيل المحدد.
الحد الأقصى لتكوين الجرابونات
يحدد الحقل maxPods الحد الأقصى لعدد الجرابات التي يمكن جدولتها على عقدة. يؤثر هذا الإعداد على كل من كثافة نظام المجموعة وتكوين الشبكة.
الحد الأدنى لقيمة ل maxPods هو 10، والحد الأقصى للقيمة هو 250.
السلوك الافتراضي ل maxPods
يعتمد السلوك الافتراضي ل maxPods على تكوين المكون الإضافي للشبكة. يلخص الجدول التالي الإعدادات الافتراضية:
| تكوين المكون الإضافي للشبكة | الافتراضي maxPods لكل عقدة |
|---|---|
| Azure CNI مع الشبكات القياسية (v1 أو NodeSubnet) | 30 |
| Azure CNI مع شبكات التراكيب | 250 |
| لا شيء (لا يوجد مكون إضافي للشبكة) | 250 |
| تكوينات أخرى | 110 (الإعداد الافتراضي القياسي ل Kubernetes) |
مثال على تكوين الحد الأقصى للجراب
spec:
maxPods: 50 # Allow up to 50 pods per node
تكوين LocalDNS
يقوم LocalDNS بنشر وكيل DNS على مستوى العقدة الذي يحل استعلامات DNS بالقرب من أعباء العمل، مما يقلل من زمن استجابة الاستعلام ويحسن المرونة أثناء الاضطرابات المؤقتة في DNS. لمزيد من المعلومات، راجع وثائق LocalDNS. افتراضيا، يتم تعيين LocalDNS على معطل ويمكن تكوينه على الخيارات التالية:
-
Disabled(الافتراضي) - يعطل ميزة LocalDNS. استفسارات DNS لا تحل محليا على العقدة. -
Preferred- تدير AKS تمكين LocalDNS بناء على نسخة Kubernetes من تجمع العقد. يتم التحقق من صحة التكوين وتضمينه دائما، ولكن لا يتم تمكين LocalDNS ما لم يتم استخدام إصدار Kubernetes الصحيح. -
Required- يتم تطبيق LocalDNS على تجمع العقد إذا تم استيفاء جميع المتطلبات المسبقة. إذا لم يتم استيفاء المتطلبات، يفشل النشر.
مثال على تكوين LocalDNS
يمكنك تخصيص تكوينات LocalDNS مثل vnetDNSOverrides و kubeDNSOverrides. لمزيد من التفاصيل حول الإضافات المدعومة، راجع تخصيص LocalDNS.
spec:
LocalDNS:
mode: Required
vnetDNSOverrides:
- zone: "."
cacheDuration: "3600s"
forwardDestination: VnetDNS
forwardPolicy: Sequential
maxConcurrent: 1000
protocol: PreferUDP
queryLogging: Error
serveStale: Immediate
serveStaleDuration: "3600s"
- zone: "cluster.local"
cacheDuration: "3600s"
forwardDestination: ClusterCoreDNS
forwardPolicy: Sequential
maxConcurrent: 1000
protocol: ForceTCP
queryLogging: Error
serveStale: Immediate
serveStaleDuration: "3600s"
kubeDNSOverrides:
- zone: "."
cacheDuration: "3600s"
forwardDestination: ClusterCoreDNS
forwardPolicy: Sequential
maxConcurrent: 1000
protocol: PreferUDP
queryLogging: Error
serveStale: Immediate
serveStaleDuration: "3600s"
- zone: "cluster.local"
cacheDuration: "3600s"
forwardDestination: ClusterCoreDNS
forwardPolicy: Sequential
maxConcurrent: 1000
protocol: ForceTCP
queryLogging: Error
serveStale: Immediate
serveStaleDuration: "3600s"
تكوين Kubelet
يسمح لك القسم kubelet بتكوين معلمات kubelet المختلفة التي تؤثر على سلوك العقدة. هذه المعاملات هي حجج kubelet نموذجية، لذا يقوم مزود Azure ببساطة بتمريرها إلى kubelet على العقدة.
Important
قم بتكوين إعدادات kubelet بعناية، واختبر أي تغييرات في البيئات غير الإنتاجية أولا.
إدارة وحدة المعالجة المركزية
تتحكم الإعدادات التالية في سلوك إدارة وحدة المعالجة المركزية ل kubelet:
spec:
kubelet:
cpuManagerPolicy: "static" # or "none"
cpuCFSQuota: true
cpuCFSQuotaPeriod: "100ms"
-
cpuManagerPolicyيتحكم في كيفية تخصيص kubelet لموارد وحدة المعالجة المركزية.: قم بالتعيين إلى"static"تثبيت وحدة المعالجة المركزية في أحمال العمل الحساسة لزمن الانتقال. -
cpuCFSQuotaتمكين فرض الحصة النسبية للجدولة العادلة تماما لوحدة المعالجة المركزية (CFS) للحاويات التي تحدد حدود وحدة المعالجة المركزية.: -
cpuCFSQuotaPeriodلتعيين فترة الحصة النسبية لوحدة المعالجة المركزية CFS.:
مجموعة البيانات المهملة للصور
تتحكم الإعدادات التالية في سلوك جمع البيانات المهملة للصور ل kubelet:
spec:
kubelet:
imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80
تتحكم هذه الإعدادات عندما يقوم kubelet بتجميع البيانات المهملة لصور الحاوية:
-
imageGCHighThresholdPercentالنسبة المئوية لاستخدام القرص التي تؤدي إلى تجميع البيانات المهملة للصور.: -
imageGCLowThresholdPercentالنسبة المئوية المستهدفة لاستخدام القرص بعد جمع البيانات المهملة.:
إدارة المخطط
يتحكم الإعداد التالي في نهج مدير المخطط ل kubelet:
spec:
kubelet:
topologyManagerPolicy: "best-effort" # none, restricted, best-effort, single-numa-node
يساعد مدير المخطط في تنسيق تخصيص الموارد لأحمال العمل الحساسة لزمن الانتقال عبر موارد وحدة المعالجة المركزية والجهاز (مثل وحدة معالجة الرسومات).
تكوين النظام
تسمح لك الإعدادات التالية بتكوين معلمات نظام إضافية ل kubelet:
spec:
kubelet:
allowedUnsafeSysctls:
- "kernel.msg*"
- "net.ipv4.route.min_pmtu"
containerLogMaxSize: "50Mi"
containerLogMaxFiles: 5
podPidsLimit: 4096
-
allowedUnsafeSysctlsقائمة بأجهزة sysctls غير الآمنة المسموح بها التي يمكن أن تستخدمها الكبسولات .: -
containerLogMaxSizeالحد الأقصى لحجم ملفات سجل الحاوية قبل التدوير.: -
containerLogMaxFilesالحد الأقصى لعدد ملفات سجل الحاوية المطلوب الاحتفاظ بها.: -
podPidsLimitالحد الأقصى لعدد العمليات المسموح بها في أي جراب.:
إعدادات تكوين نظام التشغيل المخصص لنظام التشغيل Linux
يسمح لك القسم LinuxOSConfig بتكوين معلمات kubelet المختلفة التي تؤثر على سلوك العقدة. هذه المعاملات هي وسيط نظام تشغيل مخصصة نموذجية، لذا يقوم NAP ببساطة بتمريرها إلى الكوبليت على العقدة.
لمزيد من المعلومات حول إعدادات تكوين نظام التشغيل Linux المخصصة والقيم الافتراضية والاعتبارات، راجع مرجع معلمات تكوين العقدة المخصصة.
Important
قم بضبط إعدادات نظام تشغيل لينكس بعناية، واختبر أي تغييرات في بيئات غير إنتاجية أولا.
مقبض ملفات لينكس يحد من الإعدادات
استخدم الإعدادات التالية لضبط إعدادات نظام الملفات.
spec:
linuxOSConfig:
# Sysctl Settings
sysctls:
# File System Settings
fsFileMax: 2000000 # Range: 8192-12000500 Default: Max of available range
fsInotifyMaxUserWatches: 1000000 # Range: 781250-2097152 Default: 1048576
fsAioMaxNr: 1000000 # Range: 65536-6553500 Default: 65536
fsNrOpen: 1000000 # Range: 8192-20000500 Default: 1048576
إعدادات منفذ لينكس وضبط الشبكة
استخدم الإعدادات التالية لضبط TCP وإعداد الشبكة.
spec:
linuxOSConfig:
# Network Settings
netCoreSomaxconn: 65535 # Range: 4096-3240000 Default: 16384
netCoreNetdevMaxBacklog: 5000 # Range: 1000-3240000 Default: 1000
netCoreRmemMax: 134217728 # Range: 212992-134217728 Default: 1048576
netCoreOptmemMax: 102400 # Range: 20480-4194304 Default: 131072
netCoreWmemMax: 134217728 # Range: 212992-134217728 Default: 212992
netCoreRmemDefault: 212992 # Range: 212992-134217728
netCoreWmemDefault: 212992 # Range: 212992-134217728
netIPv4IPLocalPortRange: "1024 65535" # Format: "first last", first: 1024-60999, last: 32768-65535
# Neighbor Table GC Thresholds
netIPv4NeighDefaultGcThresh1: 1024 # Range: 128-80000 Default: 4096
netIPv4NeighDefaultGcThresh2: 2048 # Range: 512-80000 Default: 8192
netIPv4NeighDefaultGcThresh3: 4096 # Range: 1024-80000 Default: 16384
# Note: thresh1 <= thresh2 <= thresh3
# Connection Tracking
netNetfilterNfConntrackBuckets: 131072 # Range: 65536-524288 Default: dynamically calculated
netNetfilterNfConntrackMax: 262144 # Range: 131072-2097152 Default: dynamically calculated
إعدادات حد موظفي لينكس
استخدم الإعدادات التالية لضبط إعداد النواة.
spec:
linuxOSConfig:
# Kernel Settings
kernelThreadsMax: 100000 # Range: 20-513785 Default: Dynamically calculated
إعدادات الذاكرة الافتراضية للينكس
استخدم الخيارات التالية لضبط تشغيل نظام الذاكرة الافتراضية في لينكس لنواة لينكس وكتابة البيانات الملوثة على القرص.
spec:
linuxOSConfig:
# Memory Management
vmMaxMapCount: 262144 # Range: 65530-262144 Default: Max of available range
vmVfsCachePressure: 100 # Range: 0-100 Default: 100
vmSwappiness: 60 # Range: 0-100 Default: 60
# Swap File Configuration
swapFileSize: "2Gi" # Default: (not set) | Pattern: quantity with units Note: Requires kubelet.failSwapOn: false
# Transparent Huge Pages
transparentHugePageEnabled: "madvise" # Values: [always, madvise, never] Default: always
transparentHugePageDefrag: "defer+madvise" # Values: [always, defer, defer+madvise, madvise, never] Default: madvise
إعدادات وحدة معالجة الرسوميات
استخدم الحقل التالي لتمكين تثبيت برنامج تشغيل GPU المخصص، مثل مع عامل تشغيل NVIDIA GPU.
spec:
gpu:
mode:
# acceptable values: [driver, none] default(or if not specified): driver
# none skips gpu driver installation, driver has NAP manage the GPU driver installation
none
إعدادات الأمان
التشفير على المضيف
يحدد الحقل التالي ما إذا كان يتم تمكين التشفير على مستوى المضيف للعقد المتوفرة. عند تعيين هذا الحقل إلى true، يتضمن NAP خيارات المثيل التي تدعم التشفير في المضيف فقط.
spec:
security:
encryptionatHost:
# acceptable values: [true, false] default(or if not specified): false
false
لمزيد من المعلومات حول التشفير المستند إلى المضيف، راجع التشفير في وثائق المضيف.
المفاتيح المدارة المخصصة ومجموعات تشفير القرص
يدعم NAP المجموعات التي تستخدم المفاتيح المدارة من قبل العميل ومجموعات تشفير القرص. تمكين هذه الخيارات على مستوى نظام المجموعة. ليس لديهم AKSNodeClass حقول تحتاج إلى تعيينها. تأكد من أن هوية نظام المجموعة الخاصة بك لديها التحكم المناسب في الوصول استنادا إلى الدور (RBAC):
- لدى
Readerهوية نظام المجموعة حق الوصول إلى مجموعة تشفير القرص. - يمكن
Key Vault Crypto Service Encryption Userلمورد مجموعة تشفير القرص الوصول إلى Azure Key Vault.
للحصول على معلومات حول المفاتيح المدارة بواسطة العميل ومجموعات تشفير القرص التي تم تمكينها أثناء إنشاء نظام المجموعة، راجع Customer-Managed وثائق المفاتيح.
تكوين علامات الموارد Azure
يمكنك تحديد Azure علامات الموارد التي تنطبق على جميع حالات الآلات الافتراضية التي تم إنشاؤها باستخدام مورد معين AKSNodeClass. العلامات مفيدة لتتبع التكلفة وتنظيم الموارد ومتطلبات الامتثال.
قيود العلامات
- علامات الموارد في Azure لها حد أقصى يبلغ 50 علامة لكل مورد.
- أسماء العلامات غير حساسة لحالة الأحرف ولكن قيم العلامات حساسة لحالة الأحرف.
- Azure يحتفظ ببعض أسماء الوسوم التي لا يمكن استخدامها. لمزيد من المعلومات، راجع إرشادات العلامة والحدود.
مثال على تكوين العلامات
spec:
tags:
Environment: "production"
Team: "platform"
Application: "web-service"
CostCenter: "engineering"
مثال التكوين الشامل AKSNodeClass
يوضح المثال التالي تكوينا شاملا AKSNodeClass يتضمن جميع الإعدادات التي تمت مناقشتها في هذه المقالة:
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
template:
spec:
nodeClassRef:
group: karpenter.azure.com
kind: AKSNodeClass
name: comprehensive-example
---
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
name: comprehensive-example
spec:
# Image family configuration
# Default: Ubuntu
# Valid values: Ubuntu, AzureLinux, AzureContainerLinux
imageFamily: Ubuntu
# FIPS compliant mode - allows support for FIPS-compliant node images
# Default: Disabled
# Valid values: FIPS, Disabled
fipsMode: Disabled
# Artifact Streaming- allows use of artifact streaming feature; To use this feature container images must also enable artifact streaming on ACR
# Valid values: true, false; defaults to false if not specified
artifactStreaming:
enabled: true
# LocalDNS mode - allows use of LocalDNS feature
# Default: Disabled
# Valid values: Preferred, Required, Disabled
LocalDNS:
mode: Disabled
# additional details on vnetDNSOverrides and kubeDNSOverrides can be added here
# Virtual network subnet configuration (optional)
# If not specified, uses the default --vnet-subnet-id from Karpenter installation
vnetSubnetID: "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet"
# OS disk size configuration
# Default: 128 GB
# Minimum: 30 GB
osDiskSizeGB: 128
# Maximum pods per node configuration
# Default behavior depends on network plugin:
# - Azure CNI with standard networking: 30 pods
# - Azure CNI with overlay networking: 250 pods
# - Other configurations: 110 pods
# Range: 10-250
maxPods: 30
# GPU driver installation (optional)
# Default: driver - NAP manages gpu driver installation
# none skips gpu driver installation
# Valid values: driver, none
gpu:
mode:
driver
# Azure resource tags (optional)
# Applied to all VM instances created with this AKSNodeClass
tags:
Environment: "production"
Team: "platform-team"
Application: "web-service"
CostCenter: "engineering"
# Kubelet configuration (optional)
# All fields are optional with sensible defaults
kubelet:
# CPU management policy
# Default: "none"
# Valid values: none, static
cpuManagerPolicy: "static"
# CPU CFS quota enforcement
# Default: true
cpuCFSQuota: true
# CPU CFS quota period
# Default: "100ms"
cpuCFSQuotaPeriod: "100ms"
# Image garbage collection thresholds
# imageGCHighThresholdPercent must be greater than imageGCLowThresholdPercent
# Range: 0-100
imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80
# Topology manager policy
# Default: "none"
# Valid values: none, restricted, best-effort, single-numa-node
topologyManagerPolicy: "best-effort"
# Allowed unsafe sysctls (optional)
# Comma-separated list of unsafe sysctls or patterns
allowedUnsafeSysctls:
- "kernel.msg*"
- "net.ipv4.route.min_pmtu"
# Container log configuration
# containerLogMaxSize default: "50Mi"
containerLogMaxSize: "50Mi"
# containerLogMaxFiles default: 5, minimum: 2
containerLogMaxFiles: 5
# Pod process limits
# Default: -1 (unlimited)
podPidsLimit: 4096
الخطوات التالية
لمزيد من المعلومات حول التوفير التلقائي للعقدة في AKS، راجع المقالات التالية: