معلمات تكوين العقدة المخصصة خدمة Azure Kubernetes ‏(AKS)

تسرد هذه المقالة معلمات تكوين العقدة المخصصة المدعومة لتجمعات العقد خدمة 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.