Score:1

การตั้งค่าขีดจำกัดของทรัพยากรบน kube-apiserver

ธง vn
rvs

การจัดการทรัพยากรสำหรับพ็อดและคอนเทนเนอร์ อธิบายวิธีตั้งค่าคำขอทรัพยากรและขีดจำกัดสำหรับพ็อด "ปกติ" ใน Kubernetes มีวิธีที่รองรับ/แนะนำในการตั้งค่าขีดจำกัดเหล่านี้สำหรับส่วนประกอบของ Control Plane เช่น kube-apiserver หรือไม่

สิ่งที่ฉันพิจารณา:

  • แก้ไขรายการคงที่เช่น ใน /etc/kubernetes/manifests/kube-apiserver.yaml. สิ่งนี้อาจใช้งานได้ แต่จะถูกเขียนทับโดย คูบีด ระหว่างการอัปเกรดครั้งต่อไป
  • การตั้งค่า สงวน kube หรือ ระบบสงวนไว้ ธง. สิ่งนี้อาจได้ผลเช่นกัน - ถูกกำหนดไว้ใน ConfigMap เพียงอันเดียว (เช่น kubelet-config-1.21) และจะถูกเขียนทับโดย คูบีด ระหว่างการอัพเกรดโหนด ขีดจำกัดเดียวกันนี้จะนำไปใช้กับโหนดระนาบควบคุมและโหนดผู้ปฏิบัติงาน และฉันไม่ต้องการสิ่งนั้น

ฉันสามารถเอาชนะสิ่งนี้ได้ด้วยสิ่งที่ต้องการ ansible แต่จากนั้น ansible จะ "figting" กับ kubeadm และฉันต้องการหลีกเลี่ยงสิ่งนั้น

ฉันกำลังพยายามแก้ปัญหาอะไร

ฉันมีการติดตั้ง homelab kubernetes ขนาดเล็ก ฉันต้องการอนุญาตให้เรียกใช้พ็อดปกติบนโหนดระนาบควบคุม แต่ฉันต้องการที่จะสามารถสงวนทรัพยากรบางอย่าง (หน่วยความจำหลัก) สำหรับส่วนประกอบของระนาบควบคุม เช่น. ฉันต้องการที่จะสามารถตั้งค่า คำขอ ในสิ่งต่าง ๆ เช่น kube-apiserver เพื่อให้ตัวกำหนดตารางเวลารู้ว่าจะไม่ใส่พ็อดอื่น ๆ (พวกเขาจะมี คำขอ) แทนที่

Mikołaj Głodziak avatar
id flag
คุณตั้งค่าคลัสเตอร์ของคุณอย่างไร "ฉันมีการติดตั้ง homelab kubernetes ขนาดเล็ก" หมายความว่าอย่างไร คุณใช้ Minikube หรือไม่?
rvs avatar
vn flag
rvs
@MikoÅajGÅodziak no คลัสเตอร์ "ปกติ" บน 3 โหนดที่สร้างโดย kubeadm
Score:1
ธง id

มีวิธีที่รองรับ/แนะนำในการตั้งค่าขีดจำกัดเหล่านี้สำหรับส่วนประกอบของ Control Plane เช่น kube-apiserver หรือไม่

ใช่ คุณสามารถใช้ kubeadm เริ่มต้น กับ แผ่นแปะ แฟล็กบรรทัดคำสั่ง ดูที่ หน้า GitHub นี้. เดอะ เอกสาร ของสิ่งนี้ก็สามารถสนใจได้เช่นกัน ดูเอกสารอย่างเป็นทางการ: การปรับแต่งระนาบการควบคุมด้วยแพตช์:

Kubeadm ช่วยให้คุณส่งไดเร็กทอรีพร้อมไฟล์แก้ไขไปยัง เริ่มต้นการกำหนดค่า และ เข้าร่วมการกำหนดค่า ในแต่ละโหนด แพตช์เหล่านี้สามารถใช้เป็นขั้นตอนการปรับแต่งสุดท้ายก่อนที่รายการคอมโพเนนต์ระนาบควบคุมจะถูกเขียนลงดิสก์

คุณสามารถส่งไฟล์นี้ไปที่ kubeadm เริ่มต้น กับ --config <การกำหนดค่าของคุณ YAML>:

apiVersion: kubeadm.k8s.io/v1beta3
ประเภท: InitConfiguration
แพทช์:
  ไดเร็กทอรี: /home/user/somedir

ต่อไปนี้คือตัวอย่างวิธีตั้งค่าทรัพยากรบนเซิร์ฟเวอร์ kube-apiserver:

สร้าง kube-apiserver.yaml ไฟล์ในบางไดเร็กทอรี (เช่น /home/user/แพทช์) โดยมีเนื้อหาดังนี้

ข้อมูลจำเพาะ:
  ตู้คอนเทนเนอร์:
    - ชื่อ: kube-apiserver
      ทรัพยากร:
        คำขอ:
          หน่วยความจำ: 512Mi
        ขีด จำกัด :
          หน่วยความจำ: 1024Mi

จากนั้นใช้ --patches ตั้งค่าสถานะทุกครั้งระหว่างการอัปเกรดโหนด: ใช้ โหนดอัพเกรด kubeadm --patches /home/user/patches/ หรือ การอัปเกรด kubeadm ใช้ v1.22.4 --patches /home/user/patches/


อีกทางเลือกหนึ่งคือการจัดหาแฟล็กพิเศษให้กับส่วนประกอบของระนาบควบคุม ตรวจสอบคู่มือนี้: การปรับแต่งระนาบควบคุมด้วยแฟล็กใน ClusterConfiguration:

คูบีด การกำหนดค่าคลัสเตอร์ ออบเจกต์แสดงวิธีสำหรับผู้ใช้ในการแทนที่แฟล็กเริ่มต้นที่ส่งผ่านไปยังส่วนประกอบของระนาบควบคุม เช่น APIServer, ControllerManager, Scheduler และ Etcd ส่วนประกอบถูกกำหนดโดยใช้โครงสร้างต่อไปนี้:

  • apiเซิร์ฟเวอร์
  • ผู้จัดการคอนโทรลเลอร์
  • กำหนดการ
  • ฯลฯ
rvs avatar
vn flag
rvs
ขอบคุณ เส้นทางแพตช์ใช้งานได้ ฉันได้อัปเดตคำตอบของคุณด้วยตัวอย่างที่เจาะจงมากขึ้นว่าฉันทำอย่างนั้นได้อย่างไร ตอนนี้ฉันสามารถใช้ ansible เพื่อรักษาไฟล์ต่าง ๆ ในไดเร็กทอรี patches (ถ้าจำเป็น) และอย่าลืมใช้แฟล็ก --patches เมื่อทำการเริ่มต้นหรืออัปเกรด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา