REPO นี้กำลังถูกละทิ้งแล้ว
หากคุณสนใจที่จะใช้ maintened fork ของ repo นี้ โปรดใช้ pelotech-nidhogg ซึ่งเป็น fork ที่ทีมวิศวกรของ Pelotech ได้กรุณาตกลงที่จะดูแลรักษา
ดูปัญหานี้สำหรับรายละเอียดเพิ่มเติม
เราเป็นเพียงทีมเล็กๆ และเราไม่มีความสามารถในการรักษาเครื่องมือที่เราไม่ได้ใช้อีกต่อไป ดังนั้นจากนี้ไปเราจะย้าย repo นี้ไปที่ 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 เพื่อบอกว่า Daemonsets ใดที่จะรับชมและโหนดใดที่จะดำเนินการ nodeSelector
คือแผนผังของคีย์/ค่าที่สอดคล้องกับเลเบลโหนด daemonsets
คืออาร์เรย์ของ Daemonsets ที่น่าจับตามอง โดยแต่ละฟิลด์ประกอบด้วย name
และ namespace
สองฟิลด์ โหนดมีการปนเปื้อนซึ่งเป็นไปตามรูปแบบของ nidhogg.uswitch.com/namespace.name:NoSchedule
ตัวอย่าง:
YAML:
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 ASG ที่ชื่อว่า "มาตรฐาน" หรือ "พิเศษ" ซึ่งมีป้ายกำกับ node-role.kubernetes.io/node
และไม่มีโหนดที่มีป้ายกำกับ node-role.kubernetes.io/master
หากโหนดที่ตรงกันไม่มีพ็อดที่ทำงานอยู่และพร้อมใช้งานจาก kiam
daemonset ในเนมสเปซ kube-system
มันจะเพิ่มความสกปรกของ nidhogg.uswitch.com/kube-system.kiam:NoSchedule
จนกว่าจะมี kiam pod ที่พร้อมใช้งานบนโหนด
หากคุณต้องการให้พ็อดสามารถทำงานบนโหนดที่ไม่บริสุทธิ์ของ 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")