إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تسرد هذه المقالة معلمات تكوين العقدة المخصصة المدعومة لتجمعات العقد خدمة Azure Kubernetes (AKS). لمعرفة كيفية إنشاء ملفات التكوين وتطبيقها، راجع تخصيص تكوين العقدة لتجمعات عقد AKS.
معلمات التكوين المخصصة Kubelet
مهم
عند تفعيل أنظمة النظام غير الآمنة، تتحمل مسؤولية استقرار العقد وسلوك عبء العمل. يمكن أن تسبب أنظمة النظام غير الآمن عدم استقرار العقد أو ثغرات أمنية إذا تم تكوينها بشكل خاطئ. تأكد من فهمك لتداعيات تفعيل أنظمة غير آمنة محددة وراقب صحة المجموعة الخاصة بك عن كثب بعد إجراء التغييرات.
تكوين Linux kubelet المخصص
| المعلمه | القيم/الفاصل الزمني المسموح به | افتراضي | وصف |
|---|---|---|---|
cpuManagerPolicy |
بلا، ثابت | لا شيء | تسمح السياسة الثابتة للحاويات في كبسولات مضمونة مع طلب معالج صحيح الوصول إلى وحدات معالجة مركزية حصرية على العقدة. |
cpuCfsQuota |
صواب ، خطأ | صحيح | تفعيل/تعطيل تطبيق حصص CFS للمعالج للحاويات التي تحدد حدود وحدة المعالجة المركزية. |
cpuCfsQuotaPeriod |
الفاصل الزمني بالمللي ثانية (مللي ثانية) | 100ms |
تعيين قيمة فترة الحصة النسبية لـ CPU CFS. |
imageGcHighThreshold |
0-100 | 85 | النسبة المئوية لاستخدام القرص التي يتم بعدها تشغيل مجموعة الصور المهملة دائمًا. الحد الأدنى لاستخدام القرص الذي يؤدي إلى جمع القمامة. لتعطيل تجميع البيانات المهملة للصورة، قم بالتعيين إلى 100. |
imageGcLowThreshold |
من 0 إلى 100، وليس أعلى من imageGcHighThreshold |
80 | النسبة المئوية لاستخدام القرص التي لم يتم قبلها تشغيل مجموعة الصور المهملة أبدًا. الحد الأدنى لاستخدام القرص الذي يمكن أن يؤدي إلى تجميع البيانات المهملة. |
topologyManagerPolicy |
لا شيء ، أفضل جهد ، مقيد ، عقدة أحادية | لا شيء | تحسين محاذاة عقد NUMA. لمزيد من المعلومات، راجع سياسات إدارة طوبولوجيا التحكم على عقدة. |
allowedUnsafeSysctls |
kernel.shm*، kernel.msg*، kernel.sem، ، fs.mqueue.*net.* |
لا يوجد | قائمة مسموح بها لأنماط sysctls غير الآمنة أو أنماط sysctl غير الآمنة. |
containerLogMaxSizeMB |
الحجم بالميغابايت (MB) | 50 | الحد الأقصى للحجم (على سبيل المثال، 10 ميجابايت) لملف سجل الحاوية قبل أن يتم تدويره. |
containerLogMaxFiles |
2 أو أكثر | 5 | الحد الأقصى لعدد ملفات سجل الحاوية التي يجب الاحتفاظ بها للحاوية. |
podMaxPids |
-1 إلى حد Kernel PID | -1 (لا نهائي) | الحد الأقصى لعدد معرفات العملية التي يمكن تشغيلها في جراب. |
seccompDefault |
Unconfined، RuntimeDefault |
Unconfined |
تعيين ملف تعريف seccomp الافتراضي لجميع أحمال العمل.
RuntimeDefault يستخدم ملف تعريف seccomp الافتراضي لحاوية، ما يقيد استدعاءات نظام معينة لتحسين الأمان. استدعاءات النظام المقيدة تفشل.
Unconfined لا تفرض أي قيود على مكالمات النظام (syscalls)، مما يسمح بجميع مكالمات النظام ويقلل من الأمان. لمزيد من المعلومات، راجع ملف ملف ملف الحماية الافتراضي في الحاويات. هذه المعلمة قيد المعاينة.
سجل علامة ميزة "KubeletDefaultSeccompProfilePreview" باستخدام az feature register الأمر مع --namespace "Microsoft.ContainerService". |
kubeReserved.cpuMillicores |
1 إلى سعة وحدة المعالجة المركزية في مجموعة العقد بالميلكورات | لا يوجد | Reserves CPU for Kubernetes system daemons على تجمعات عقد لينكس. هذا المعامل في مرحلة المعاينة ويتطلب علم CustomNodeConfigPreview الميزة. |
kubeReserved.memoryMB |
1 إلى سعة ذاكرة تجمع العقد بوحدة MiB | لا يوجد | يحفظ الذاكرة لملفات Kubernetes System daemons على تجمعات عقد لينكس. هذا المعامل في مرحلة المعاينة ويتطلب علم CustomNodeConfigPreview الميزة. |
hardEvictionThreshold.memoryAvailable |
<number>Ki, <number>Mi, <number>Gi, أو <number>% حيث النسبة المئوية لا تزيد عن 100 |
لا يوجد | يحدد عتبة الإخلاء الصلب في Kubelet للذاكرة المتاحة في مجموعات عقد لينكس. هذا المعامل في مرحلة المعاينة ويتطلب علم CustomNodeConfigPreview الميزة. |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, <number>Mi, <number>Gi, أو <number>% حيث النسبة المئوية لا تزيد عن 100 |
لا يوجد | يحدد عتبة الإخلاء الصلب في Kubelet لمساحة نظام ملفات العقد المتاحة على مجموعات عقد لينكس. هذا المعامل في مرحلة المعاينة ويتطلب علم CustomNodeConfigPreview الميزة. |
hardEvictionThreshold.nodeFsInodesFree |
<number> أو <number>% حيث النسبة لا تزيد عن 100 |
لا يوجد | يحدد عتبة kubelet hard eexption for inodes free node filesystem on Linux node pools. هذا المعامل في مرحلة المعاينة ويتطلب علم CustomNodeConfigPreview الميزة. |
Windows تكوين kubelet المخصص
| المعلمه | القيم/الفاصل الزمني المسموح به | افتراضي | وصف |
|---|---|---|---|
imageGcHighThreshold |
0-100 | 85 | النسبة المئوية لاستخدام القرص التي يتم بعدها تشغيل مجموعة الصور المهملة دائمًا. الحد الأدنى لاستخدام القرص الذي يؤدي إلى جمع القمامة. لتعطيل تجميع البيانات المهملة للصورة، قم بالتعيين إلى 100. |
imageGcLowThreshold |
من 0 إلى 100، وليس أعلى من imageGcHighThreshold |
80 | النسبة المئوية لاستخدام القرص التي لم يتم قبلها تشغيل مجموعة الصور المهملة أبدًا. الحد الأدنى لاستخدام القرص الذي يمكن أن يؤدي إلى تجميع البيانات المهملة. |
containerLogMaxSizeMB |
الحجم بالميغابايت (MB) | 10 | الحد الأقصى للحجم (على سبيل المثال، 10 ميجابايت) لملف سجل الحاوية قبل أن يتم تدويره. |
containerLogMaxFiles |
2 أو أكثر | 5 | الحد الأقصى لعدد ملفات سجل الحاوية التي يجب الاحتفاظ بها للحاوية. |
معلمات تكوين نظام التشغيل المخصصة لنظام التشغيل Linux
مهم
لتبسيط البحث وسهولة القراءة، يتم عرض إعدادات نظام التشغيل في هذه المقالة باسمها، ولكن يجب إضافتها إلى ملف JSON الخاص بالتكوين أو واجهة برمجة تطبيقات AKS باستخدام اتفاقية camelCase في كتابة الحروف الحروفية.
على سبيل المثال، إذا قمت بتعديل vm.max_map_count الإعداد، يجب إعادة تنسيقه إلى vmMaxMapCount في ملف JSON للتكوين.
حدود متعامل ملفات لينكس
عند خدمة كميات كبيرة من الازدحام، عادة ما تأتي هذه الحركة من عدد كبير من الملفات المحلية. يمكنك تعديل إعدادات النواة التالية والحدود المدمجة لتتمكن من التعامل مع المزيد، على حساب بعض ذاكرة النظام.
الجدول التالي يسرد حدود مقبض الملفات التي يمكنك تخصيصها لكل مجموعة عقد:
| الإعداد | القيم/الفاصل الزمني المسموح به | الافتراضي لأوبونتو 22.04 | أوبونتو 24.04 الافتراضي | Azure Linux 3.0 الافتراضي | وصف |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | الحد الأقصى لعدد مقابض الملفات التي تخصصها نواة لينكس. يتم تعيين هذه القيمة على الحد الأقصى الممكن (2^63-1) لمنع استنفاد واصفات الملفات وضمان وجود عدد غير محدود من مقابض الملفات على مستوى النظام لأحمال العمل المحوية. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | الحد الأقصى لعدد مرات مشاهدة الملفات التي يسمح بها النظام. تبلغ مساحة كل مشاهدة 90 بايت تقريبًا على نواة 32 بت، وتقريبًا 160 بايت على نواة 64 بت. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | يعرض aio-nr العدد الحالي لطلبات الإدخال/الإخراج غير المتزامنة على مستوى النظام. يسمح لك aio-max-nr بتغيير القيمة القصوى التي يمكن أن تصل aio-nr إليها. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | الحد الأقصى لعدد مؤشرات الملفات التي يمكن للعملية تخصيصها. |
ملحوظة
يتم تعيين المعلمة fs.file-max إلى 9223372036854775807 (الحد الأقصى للقيمة لعدد صحيح 64 بت موقع) عبر Ubuntu وAzure Linux استنادا إلى الإعدادات الافتراضية للخادم. هذَا التَكوِين:
- يمنع هجمات رفض الخدمة بناء على استنفاد واصف الملفات على مستوى النظام.
- يضمن عدم وجود عبء زجاجي في أحمال عمل الحاويات بسبب حدود مقبض الملفات على مستوى النظام.
-
يحافظ على الأمان من خلال حدود كل عملية (
fs.nr_openوulimit) التي لا تزال تنطبق على العمليات الفردية. - تحسين الأنظمة الأساسية للحاويات حيث قد تعمل العديد من الحاويات في وقت واحد، ومن المحتمل أن تفتح كل منها العديد من الملفات واتصالات الشبكة.
ضبط مأخذ لينكس والشبكة
بالنسبة لعقد الوكلاء، التي من المتوقع أن تتعامل مع عدد كبير من الجلسات المتزامنة، يمكنك استخدام خيارات TCP والشبكة التالية وتعديلها حسب مجموعة العقد:
| الإعداد | القيم/الفاصل الزمني المسموح به | الافتراضي لأوبونتو 22.04 | أوبونتو 24.04 الافتراضي | Azure Linux 3.0 الافتراضي | وصف |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | الحد الأقصى لعدد طلبات الاتصال التي يمكن وضعها في قائمة الانتظار لأي مأخذ توصيل محدد مخصص للاستماع. تم تمرير الحد الأعلى لقيمة معلمة backlog إلى وظيفة listen(2). إذا كانت وسيطة backlog أكبر من somaxconn، فسيتم اقتطاعها دون تأثير إلى هذا الحد. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | الحد الأقصى لعدد الحزم، الموجودة في قائمة الانتظار على جانب INPUT، عندما تتلقى الواجهة حزمًا تفوق قدرة kernel على معالجتها. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | الحد الأقصى لحجم المخزن المؤقت لمآخذ التوصيل بالبايت. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | الحد الأقصى لحجم المخزن المؤقت للإرسال بالبايت. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | الحد الأقصى لحجم المخزن المؤقت الإضافي (المخزن المؤقت لذاكرة الخيار) المسموح به لكل مأخذ توصيل. يتم استخدام ذاكرة خيار مأخذ التوصيل في حالات قليلة لتخزين هياكل إضافية تتعلق باستخدام مأخذ التوصيل. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | الحد الأقصى لطلبات الاتصال التي تم انتظارها في قائمة الانتظار ولم تتلق تأكيدا من العميل المتصل. إذا تجاوز هذا الرقم، تبدأ النواة في إسقاط الطلبات. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | الحد الأقصى لعدد TIME-WAIT مآخذ التوصيل التي يحتفظ بها النظام في وقت واحد. في حالة تجاوز هذا الرقم، يتم إتلاف مأخذ الانتظار على الفور ويتم طباعة تحذير. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | مدة بقاء الاتصال اليتيمة (التي لم تعد تشير إليها أي تطبيق) في الحالة FIN_WAIT_2 قبل أن يتم إلغاؤه في الطرف المحلي. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | عدد المرات التي يرسل فيها TCP رسائل keepalive عند تمكين keepalive. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | كم عدد فحوصات keepalive التي يرسلها TCP، حتى يقرر أن الاتصال مقطوع. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | عدد مرات إرسال الفحوصات. مضروبًا في tcp_keepalive_probes حيث يساوي الوقت المستغرق لإنهاء الاتصال الذي لا يستجيب، بعد بدء الفحوصات. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | يسمح بإعادة TIME-WAIT استخدام مآخذ التوصيل للاتصالات الجديدة عندما تكون آمنة من وجهة نظر البروتوكول. |
|
net.ipv4.ip_local_port_range |
أولا: 1024 - 60999 والأخير: 32768 - 65535] | الأول: 32768 والأخير: 60999 | الأول: 32768 والأخير: 60999 | الأول: 32768 والأخير: 60999 | نطاق المنفذ المحلي الذي تستخدمه نسبة استخدام الشبكة TCP وUDP لاختيار المنفذ المحلي. يتكون النطاق من رقمين: المنفذ المحلي الأول المسموح به لحركة مرور TCP وUDP على عقدة العامل، وآخر رقم منفذ محلي. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | الحد الأدنى لعدد الإدخالات التي يمكن أن تكون في ذاكرة ARP المؤقتة. لا يتم تفعيل جمع القمامة إذا كان عدد الإدخالات أقل من هذا الإعداد. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | الحد الأقصى البرمجي لعدد الإدخالات التي يمكن أن تكون في ذاكرة ARP المؤقتة. هذا الإعداد ربما هو الأهم، حيث يتم تفعيل جمع قمامة ARP بعد حوالي 5 ثوان من الوصول إلى هذا الحد الأقصى. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | الحد الأقصى الثابت لعدد الإدخالات في ذاكرة التخزين المؤقت لدى ARP. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | محسوب ديناميكيا | محسوب ديناميكيا | محسوب ديناميكيا |
nf_conntrack هي وحدة تتعقب إدخالات الاتصال لـ NAT داخل Linux. تستخدم الوحدة nf_conntrack جدول تجزئة لتسجيل الاتصال الذي تم إنشاؤه لبروتوكول TCP.
nf_conntrack_maxهو الحد الأقصى لعدد العقد في جدول التجزئة، أي الحد الأقصى لعدد الاتصالات التي تدعمها الوحدة nf_conntrack أو حجم جدول تتبع الاتصال. يتم حساب القيمة الافتراضية ديناميكيا بناء على ذاكرة النظام باستخدام الصيغة: RAM_in_bytes / 16384 (أو RAM_in_MB * 64). على سبيل المثال، يحتوي الجهاز الظاهري الذي يحتوي على ذاكرة وصول عشوائي سعة 8 غيغابايت على افتراضي يبلغ حوالي 524288 اتصالا. تختلف القيم الفعلية استنادا إلى حجم الجهاز الظاهري والذاكرة المتوفرة. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | محسوب ديناميكيا | محسوب ديناميكيا | محسوب ديناميكيا |
nf_conntrack هي وحدة تتعقب إدخالات الاتصال لـ NAT داخل Linux. تستخدم الوحدة nf_conntrack جدول تجزئة لتسجيل الاتصال الذي تم إنشاؤه لبروتوكول TCP.
nf_conntrack_bucketsهو حجم جدول التجزئة. يتم حساب القيمة الافتراضية ديناميكيا بناء على ذاكرة النظام باستخدام الصيغة: RAM_in_bytes / 16384، مع حد أدنى 1,024 دلو وحد أقصى 262,144 دلو. عادة ما يتم تعيين الافتراضي nf_conntrack_max على nf_conntrack_buckets * 4. تختلف القيم الفعلية استنادا إلى حجم الجهاز الظاهري والذاكرة المتوفرة. |
حدود عامل لينكس
مثل حدود أداة وصف الملف، حيث إن عدد العاملين أو مؤشرات الترابط التي يمكن لعملية ما أن تنشئها مقيد بواسطة كل من إعداد kernel وحدود المستخدم. حد المستخدم في AKS غير محدود. الجدول التالي يسرد إعداد النواة الذي يمكنك تخصيصه لكل مجموعة عقد:
| الإعداد | الافتراضي لأوبونتو 22.04 | أوبونتو 24.04 الافتراضي | Azure Linux 3.0 الافتراضي | وصف |
|---|---|---|---|---|
kernel.threads-max |
محسوب ديناميكيا | محسوب ديناميكيا | محسوب ديناميكيا | يمكن للعمليات أن تبدل مؤشرات ترابط العامل. يتم تعيين الحد الأقصى لعدد كل مؤشرات الترابط التي يمكن إنشاؤها باستخدام إعداد kernel.threads-max في kernel.
يتم حساب القيمة الافتراضية ديناميكيا بناء على ذاكرة النظام باستخدام الصيغة: total_ram_pages / 4 (حيث يكون حجم كل صفحة عادة 4 كيلوبايت). تختلف القيم الفعلية استنادا إلى حجم الجهاز الظاهري والذاكرة المتوفرة. |
ذاكرة لينكس الافتراضية
الجدول التالي يسرد إعدادات النواة التي يمكنك تخصيصها لكل مجموعة عقد لضبط تشغيل نظام الذاكرة الافتراضية (VM) في نواة لينكس وبيانات writeout الأقراص الملوثة على القرص:
| الإعداد | القيم/الفاصل الزمني المسموح به | الافتراضي لأوبونتو 22.04 | أوبونتو 24.04 الافتراضي | Azure Linux 3.0 الافتراضي | وصف |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | يحتوي هذا الملف على الحد الأقصى لمناطق خريطة الذاكرة التي يمكن أن تمتلكها العملية. يتم استخدام مساحات مخطط الذاكرة كأثر جانبي لاستدعاء malloc، مباشرة من قبل mmapو mprotect وmadvise وأيضًا عند تحميل المكتبات المشتركة. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | تتحكم هذه النسبة المئوية في قابلية النواة لاستعادة الذاكرة، والتي تُستخدم للتخزين المؤقت لكائنات الدليل وكائنات inode. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | يستخدم هذا التحكم لتحديد مدى سرعة تبديل النواة لصفحات الذاكرة. القيم الأعلى تزيد من العدوانية، والقيم المنخفضة تقلل من مقدار المبادلة. القيمة 0 ترشد kernel إلى عدم بدء المبادلة حتى يصبح مقدار الصفحات المجانية والمدعومة بالملفات أقل من العلامة المائية العالية في المنطقة. |
swapFileSizeMB |
1 ميغابايت -- حجم القرص المؤقت (/dev/sdb) | لا يوجد | لا يوجد | لا يوجد | يحدد SwapFileSizeMB حجم ملف swap بالميغابايت ليتم إنشاؤه على عقد الوكلاء من هذا التجمع العقدي. |
transparentHugePageEnabled |
always، madvise، never |
always |
always |
madvise |
Transparent Hugepages هي ميزة Linux kernel تهدف إلى تحسين الأداء من خلال الاستفادة بشكل أكثر كفاءة من أجهزة تعيين ذاكرة المعالج الخاص بك. عند تفعيلها، تحاول النواة تخصيص hugepages الصفحات كلما أمكن، وتستقبل أي عملية لينكس صفحات بسعة 2 ميجابايت إذا mmap كانت المنطقة 2 ميجابايت محاذاة طبيعيا. في بعض الحالات، عند hugepages تفعيلها على مستوى النظام، قد تنتهي التطبيقات بتخصيص موارد ذاكرة أكبر. قد mmap يكون التطبيق منطقة كبيرة لكنه يلمس فقط بايت واحد، وفي هذه الحالة قد يتم تخصيص صفحة بحجم 2 ميجابايت بدلا من صفحة 4K بدون سبب وجيه. هذا السيناريو هو السبب في أنه من الممكن تعطيل hugepages على نطاق النظام أو الحصول عليها فقط في مناطق MADV_HUGEPAGE madvise. |
transparentHugePageDefrag |
always، defer، defer+madvise، ، madvisenever |
madvise |
madvise |
madvise |
تتحكم هذه القيمة في ما إذا كان يجب على النواة الاستفادة بشكل كامل من ضغط الذاكرة لتوفير المزيد من hugepages. |