تم الآن التخلي عن هذا الريبو
إذا كنت مهتمًا باستخدام شوكة تمت صيانتها من هذا الريبو، فيرجى استخدام pelotech-nidhogg، الشوكة التي وافق الفريق الهندسي في Pelotech على صيانتها.
راجع هذه المشكلة لمزيد من التفاصيل
نحن مجرد فريق صغير وليس لدينا القدرة على صيانة أداة لم نعد نستخدمها، لذا من الآن فصاعدًا سنقوم بنقل هذا الريبو إلى Abandoned ولكننا سعداء لأن فريقًا مثل الفريق في Pelotech هو الاستثمار في هذا الحل ورد الجميل لمجتمع المصادر المفتوحة من خلال الحفاظ على شوكة نشطة.
Nidhogg عبارة عن وحدة تحكم تشوه العقد بناءً على ما إذا كان Pod من Daemonset معين يعمل عليها.
في بعض الأحيان يكون لديك Daemonset مهم جدًا لدرجة أنك لا تريد تشغيل القرون الأخرى على العقدة الخاصة بك حتى يتم تشغيل Daemonset على العقدة. يحل Nidhogg هذه المشكلة عن طريق تلويث العقدة حتى تصبح حاوية Daemonset الخاصة بك جاهزة، مما يمنع القرون التي لا تتحمل التلوث من الجدولة هناك.
قام Nidhogg بتعليق العقدة عند إزالة كافة العيوب المطلوبة: nidhogg.uswitch.com/first-time-ready: 2006-01-02T15:04:05Z
تم بناء Nidhogg باستخدام Kubebuilder
يتطلب Nidhogg ملف تكوين yaml/json لإخباره بمجموعات Daemons التي يجب مراقبتها والعقد التي يجب التصرف عليها. nodeSelector
عبارة عن خريطة للمفاتيح/القيم المقابلة لتسميات العقد. daemonsets
عبارة عن مصفوفة من Daemonsets التي يجب مشاهدتها، تحتوي كل منها على حقلين name
و namespace
. العقد ملوثة بالعيب الذي يتبع تنسيق nidhogg.uswitch.com/namespace.name:NoSchedule
.
مثال:
يامل:
nodeSelector :
node-role.kubernetes.io/node
daemonsets :
- name : kiam
namespace : kube-system
جسون:
{
"nodeSelector" : [
" node-role.kubernetes.io/node " ,
" !node-role.kubernetes.io/master " ,
" aws.amazon.com/ec2.asg.name in (standard, special) "
],
"daemonsets" : [
{
"name" : " kiam " ,
"namespace" : " kube-system "
}
]
}
سيحدد هذا المثال أي عقد في AWS ASGs تسمى "قياسية" أو "خاصة" والتي تحمل التسمية node-role.kubernetes.io/node
، ولا توجد عقد تحمل التسمية node-role.kubernetes.io/master
. إذا كانت العقد المطابقة لا تحتوي على حجرة قيد التشغيل وجاهزة من مجموعة kiam
daemonset في مساحة اسم kube-system
. سيضيف تلوث nidhogg.uswitch.com/kube-system.kiam:NoSchedule
حتى يكون هناك جراب kiam جاهز على العقدة.
إذا كنت تريد أن تكون القرون قادرة على العمل على العقد الملوثة nidhogg، فيمكنك إضافة التسامح:
spec :
tolerations :
- key : nidhogg.uswitch.com/kube-system.kiam
operator : " Exists "
effect : NoSchedule
يمكن العثور على صور Docker على https://quay.io/uswitch/nidhogg
يمكن العثور على مثال لبيانات Kustomize هنا لنشر هذا بسرعة إلى المجموعة.
-config-file string
Path to config file (default "config.json")
-kubeconfig string
Paths to a kubeconfig. Only required if out-of-cluster.
-leader-configmap string
Name of configmap to use for leader election
-leader-election
enable leader election
-leader-namespace string
Namespace where leader configmap located
-master string
The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.
-metrics-addr string
The address the metric endpoint binds to. (default ":8080")