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

من خلال تخصيص تكوين العقدة، يمكنك ضبط إعدادات نظام التشغيل (OS) أو معلمات kubelet لتتناسب مع احتياجات أحمال العمل الخاصة بك. عند إنشاء مجموعة AKS أو إضافة تجمع عقدة إلى المجموعة لديك، يمكنك تخصيص مجموعة فرعية من إعدادات نظام التشغيل kubelet شائعة الاستخدام. لتكوين الإعدادات خارج هذه المجموعة الفرعية، استخدم مجموعة خفي لتخصيص التكوينات المطلوبة دون فقدان دعم AKS للعقد الخاصة بك.

المتطلبات المسبقه

نظرا لأن الخدمة تضيف دعما للإعدادات الجديدة ومعلمات kubelet، فقد تتطلب معاينة تسجيل علامة الميزة. إذا كانت علامة المعاينة مطلوبة، فإن مرجع معلمات تكوين العقدة المخصصة يستدعيها.

الإعدادات و kubelet evictionMaxPodGracePeriodInSeconds قيد المعاينة وتتطلب علامة الميزةCustomNodeConfigPreview.kubeReservedhardEvictionThresholdsoftEvictionThresholdsoftEvictionGracePeriod تتيح لك هذه الإعدادات تخصيص حجوزات الموارد وحد الإخلاء، والتي تم تكوينها أيضا بواسطة تصلب عقدة AKS. للحصول على خطوات التسجيل والقيم الافتراضية والأمثلة، راجع تصلب العقدة (معاينة) في AKS.

إنشاء ملفات تكوين عقدة مخصصة لتجمع عقد AKS

لتغيير نظام التشغيل وتكوين kubelet، قم بإنشاء ملف تكوين جديد باستخدام المعلمات والإعدادات التي تريدها. إذا لم تحدد قيمة لمعلمة، يتم استخدام القيمة الافتراضية.

إشعار

الأمثلة التالية تظهر إعدادات التكوين الشائعة. قم بتعديل الإعدادات لتلبية متطلبات حمل العمل. للحصول على القائمة الكاملة لمعلمات التكوين المخصصة المدعومة، راجع معلمات تكوين العقدة المخصصة ل AKS.

تكوين Kubelet

أنشئ linuxkubeletconfig.jsonملف بالمحتويات التالية:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

لتخصيص الموارد المحجوزة في kube وحد الإخلاء على تجمعات عقد Linux، راجع تخصيص إعدادات تصلب العقدة.

تكوين نظام التشغيل

أنشئ linuxosconfig.jsonملف بالمحتويات التالية:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

أنشئ عنقود AKS باستخدام ملفات تكوين مخصصة

إشعار

ضع المعلومات التالية في اعتبارك عند استخدام ملفات التكوين المخصصة عند إنشاء عنقود AKS جديد:

  • إذا حددت إعدادا عند إنشاء عنقود، فإن التكوين ينطبق فقط على العقد في مجموعة العقد الأولية. يحتفظ نظام المجموعة بالقيم الافتراضية لأي إعدادات لم يتم تكوينها في ملف JSON.
  • CustomLinuxOsConfig غير مدعوم لنوع نظام ويندوز.
  • يتم دعم إعدادات kubelet حد المعاينة kubeReserved والإخلاء فقط لتجمعات عقد Linux وتتطلب علامة الميزة CustomNodeConfigPreview . للحصول على خطوات التسجيل، راجع تصلب العقدة (معاينة) في AKS.

إنشاء نظام مجموعة جديد باستخدام ملفات التكوين المخصصة عن طريق تشغيل az aks create الأمر وتحديد ملفات التكوين الخاصة بك للمعلمات --kubelet-config و --linux-os-config . ينشئ الأمر المثال التالي مجموعة جديدة مع الملفات المخصصة ./linuxkubeletconfig.json والملفات ./linuxosconfig.json :

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

إضافة تجمع عقدة باستخدام ملفات التكوين المخصصة

إشعار

ضع المعلومات التالية في الاعتبار عند استخدام ملفات التكوين المخصصة لإضافة تجمع عقدة جديد إلى مجموعة AKS موجودة:

  • عند إضافة تجمع عقدة Linux إلى مجموعة موجودة، يمكنك تحديد تكوين kubelet أو تكوين نظام التشغيل أو كليهما. عند إضافة تجمع عقدة Windows إلى مجموعة موجودة، يمكنك فقط تحديد تكوين kubelet. إذا حددت تكوينا عند إضافة مجموعة عقد، فإن التكوين ينطبق فقط على العقد في مجموعة العقد الجديدة. يحتفظ تجمع العقدة بالقيم الافتراضية لأي إعدادات لم يتم تكوينها في ملف JSON.
  • CustomKubeletConfig مدعوم لتجمعات عقد Linux وWindows.
  • يتم دعم إعدادات kubelet حد المعاينة kubeReserved والإخلاء فقط لتجمعات عقد Linux وتتطلب علامة الميزة CustomNodeConfigPreview . للحصول على خطوات التسجيل، راجع تصلب العقدة (معاينة) في AKS.

إنشاء تجمع عقدة Linux جديد باستخدام az aks nodepool add الأمر وتحديد ملفات التكوين الخاصة بك للمعلمات --kubelet-config و --linux-os-config . الأمر المثال التالي ينشئ مجموعة عقد لينكس جديدة باستخدام ملف مخصص ./linuxkubeletconfig.json :

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

تأكد من تطبيق الإعدادات

بعد تطبيق تكوين العقد المخصص، يمكنك التأكد من تطبيق الإعدادات على العقد عن طريق الاتصال بالمضيف والتحقق sysctl من إجراء تغييرات في التكوين على نظام الملفات.

مراجعة معلمات التكوين المخصصة المدعومة

للحصول على القائمة الكاملة لمعلمات تكوين kubelet وLinux OS المدعومة والقيم المسموح بها والإعدادات الافتراضية والأوصاف، راجع معلمات تكوين العقدة المخصصة ل AKS.

اعتبارات لتكوينات العقد المخصصة

ضع الاعتبارات التالية في اعتبارك عند تخصيص تكوين العقدة:

  • تقوم ترقيات صورة العقدة بإعادة تطبيق تكوينات العقدة المخصصة.
  • تحافظ عمليات التوسيع على تكوينات العقدة المخصصة.
  • AKS لا يقوم بالتحقق قبل الطيران لكل معاملة أو قيمة تكوين عقدة مخصصة. تأكد من أن معلمات وقيم تكوين العقد المخصصة التي تحددها مدعومة وصالحة لتجنب المشاكل المحتملة مع عقد العنقود.
  • تتوفر إعدادات kubelet حد المعاينة kubeReserved والإخلاء فقط على تجمعات عقد Linux. إذا قمت بتكوينها، فاستخدم النطاقات والوحدات وقواعد الاقتران المدعومة في مرجع معلمات تكوين العقدة المخصصة.
  • غالبا ما تتغير القيم الافتراضية لمعلمات تكوين العقد المخصصة مع إصدارات نظام التشغيل الجديدة. عند تطبيق إعدادات العقد المخصصة، راجع القيم الافتراضية للمعلمات التي تقوم بتكوينها للتأكد من أن إعداداتك المخصصة مناسبة لإصدار نظام التشغيل من عقد العنقود.
  • حدد عدد الأشخاص الذين لديهم أذونات لتعديل تكوين العقدة المخصصة لمنع العواقب غير المقصودة على استقرار المجموعة وأدائها. فكر في استخدام تفويض Microsoft Entra ID لواجهة برمجة تطبيقات Kubernetes لتقييد الوصول إلى إعدادات تكوين العنقود.
  • افصل تجمعات العقد مع تكوينات مخصصة عن تلك التي لا تحتوي على تكوينات مخصصة لمنع العواقب غير المقصودة على أحمال العمل التي قد تكون حساسة لبعض تغييرات التكوين. على سبيل المثال، إذا كان لديك عبء عمل حرج يتطلب إعدادات kubelet محددة، فكر في عزل هذا العبء إلى مجموعة عقد مخصصة مع تكوين Kubelet المخصص اللازم.