ตั้งค่าขีดจำกัดทรัพยากร Kubernetes

Tang Kha Khid Cakad Thraphyakr Kubernetes



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

ตั้งค่าขีดจำกัดทรัพยากรคอนเทนเนอร์ใน Kubernetes

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







เริ่มต้นด้วยการกำหนดทรัพยากรที่คอนเทนเนอร์ของคุณต้องการ วิเคราะห์การใช้งานระบบของคุณและพิจารณาว่าคอนเทนเนอร์ใดควรปรับหน่วยความจำและขีดจำกัดของ CPU สิ่งสำคัญคือต้องพิจารณาโหนดพื้นฐานเมื่อตั้งค่าขีดจำกัดของทรัพยากร หากคุณตั้งค่าขีดจำกัดสูงหรือต่ำเกินไป โหนดอาจไม่สามารถเรียกใช้แอปพลิเคชันอื่นๆ ได้โดยไม่เกิดปัญหา จากนั้น ให้ตัดสินใจว่าคุณต้องการใช้ขีดจำกัดประเภทใด – ระเบิดได้หรือระเบิดไม่ได้ ตอนนี้ มาดูขั้นตอนที่จำเป็นที่คุณสามารถทำตามเพื่อตั้งค่าขีดจำกัดทรัพยากรคอนเทนเนอร์ Kubernetes ก่อนไปยังขั้นตอนต่างๆ มีข้อกำหนดเบื้องต้นที่จำเป็นบางประการ:



ข้อกำหนดเบื้องต้น

ก่อนที่เราจะไปยังขั้นตอนต่างๆ ให้เราตรวจสอบให้แน่ใจว่าระบบของเราตรงตามความต้องการทั้งหมดของข้อกำหนดเบื้องต้น ตรวจสอบให้แน่ใจว่าคุณมี Ubuntu 20.04 หรือเวอร์ชันล่าสุดอื่นๆ เพื่อให้มีสภาพแวดล้อม Linux/Unix ในการทำงาน, คลัสเตอร์ Kubernetes, Kubectl CLI เพื่อใช้คำสั่ง kubectl, การสื่อสารแบบคลัสเตอร์, จัดการสภาพแวดล้อมการพัฒนา และ minikube หรือ Playground อื่นๆ ของ Kubernetes เพื่อสร้าง กระจุก ติดตั้งเครื่องมือเหล่านี้หากคุณยังไม่ได้ติดตั้งก่อนที่จะดำเนินการต่อในส่วนถัดไป ตอนนี้ เราจะไปยังคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการตั้งค่าขีดจำกัดทรัพยากรคอนเทนเนอร์ Kubernetes



วิธีตั้งค่าขีดจำกัดทรัพยากร Kubernetes

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





ขั้นตอนที่ 1: เริ่ม Minikube

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



> เริ่ม minikube

ขั้นตอนที่ 2: เปิดใช้งานเซิร์ฟเวอร์เมตริก

ในขั้นตอนนี้ เราแบ่งปันคำสั่งที่ให้คุณเปิดใช้งานเซิร์ฟเวอร์เมตริก คำสั่งจะได้รับดังต่อไปนี้:

> ส่วนเสริมของ minikube เปิดใช้งาน เมตริกเซิร์ฟเวอร์

ขั้นตอนที่ 3: ตรวจสอบว่าเซิร์ฟเวอร์ Metrics ทำงานอยู่หรือไม่

พิมพ์คำสั่งต่อไปนี้เพื่อตรวจสอบว่าเซิร์ฟเวอร์เมตริกทำงานอยู่หรือไม่:

> kubectl รับ apiservices

ดังที่เห็นในภาพก่อนหน้านี้ มีการอ้างอิงถึง metrics.k8s.io ในกรณีที่สามารถเข้าถึง API ตัวชี้วัดทรัพยากรได้

ขั้นตอนที่ 4: สร้างเนมสเปซ

หากต้องการเก็บทรัพยากรไว้ คุณต้องสร้างเนมสเปซสำหรับแบบฝึกหัดนี้ซึ่งแยกจากส่วนที่เหลือของคลัสเตอร์ ตอนนี้เราสาธิตวิธีการสร้างเนมสเปซ คำสั่งที่ดำเนินการได้รับดังนี้:

> kubectl สร้างเนมสเปซ ABC

ขั้นตอนที่ 5: สร้างไฟล์กำหนดค่า

ไฟล์การกำหนดค่า YAML ที่เราใช้สร้างพ็อดในคอนเทนเนอร์จะถูกสร้างขึ้นในขั้นตอนนี้ นี่คือคำสั่งที่ใช้ในการทำสิ่งนี้ให้สำเร็จ:

> นาโน reqlimit.yaml

ที่นี่ คุณต้องรวมคำขอ CPU พร้อมกับขีดจำกัดของ CPU รวมทรัพยากร: ขีด จำกัด เพื่อกำหนดขีด จำกัด ของ CPU ในกรณีนี้ Pod ที่มีคอนเทนเนอร์เดียวจะถูกสร้างขึ้น คอนเทนเนอร์มีขีดจำกัดคำขอ CPU 0.5 และสูงสุด 1 CPU ไฟล์กำหนดค่าของ Pod มีอยู่ที่นี่ อย่างที่คุณเห็น ส่วน args ของไฟล์คอนฟิกูเรชันมีอาร์กิวเมนต์ที่คอนเทนเนอร์ใช้เมื่อเริ่มทำงาน คอนเทนเนอร์ได้รับคำสั่งให้ลองใช้ CPU 2 ตัวผ่านพารามิเตอร์ -cpus “2”

เมื่อสร้างทรัพยากรใน Kubernetes เช่น การปรับใช้และพ็อด สิ่งสำคัญคือต้องระบุจำนวนทรัพยากรขั้นต่ำที่จำเป็น (คำขอ) และจำนวนทรัพยากรสูงสุดที่อนุญาต (จำกัด) สำหรับพ็อดหรือการปรับใช้แต่ละรายการ วิธีนี้จะป้องกันพ็อดใดพ็อดหนึ่งไม่ให้ใช้ทรัพยากรมากเกินไป ซึ่งอาจทำให้พ็อดที่ใช้งานอยู่อื่นๆ ประสบปัญหาประสิทธิภาพลดลงหรือแม้แต่ล่มเนื่องจากไม่มีทรัพยากรที่พร้อมใช้งานในคลัสเตอร์

ขั้นตอนที่ 6: สร้างพ็อด

ตอนนี้ เราจะแสดงวิธีสร้างพ็อดด้วยคำสั่งต่อไปนี้:

> kubectl สร้าง -ฉ reqlimit.yaml

จากเอาต์พุตที่กำหนดก่อนหน้านี้ คุณจะสังเกตเห็นว่าพ็อดชื่อ 'cpu-demo' ถูกสร้างขึ้น

ขั้นตอนที่ 7: ตรวจสอบ Pod

ในขั้นตอนนี้ เราจะตรวจสอบว่าพ็อดที่สร้างขึ้นนั้นเปิดใช้งานอยู่หรือไม่ด้วยคำสั่งต่อไปนี้:

> kubectl รับ pod cpu-demo --เนมสเปซ = เอบีซี

ขั้นตอนที่ 8: ดูรายละเอียดพ็อด

ตอนนี้ หากคุณต้องการดูข้อมูลโดยละเอียดเกี่ยวกับ Pod นี่คือคำสั่งที่ควรดำเนินการ:

> kubectl รับ pod cpu-demo --เอาท์พุท =ยามล --เนมสเปซ = เอบีซี

ขั้นตอนที่ 9: ลบพ็อด

ที่นี่เราจะแสดงวิธีการลบพ็อดเพื่อล้างทรัพยากร คำสั่งที่ใช้สำหรับจุดประสงค์นี้มีดังนี้:

> kubectl ลบ pod cpu-demo --เนมสเปซ = เอบีซี

ขั้นตอนที่ 10: สร้างไฟล์กำหนดค่า

ในขั้นตอนนี้ เราสร้างไฟล์การกำหนดค่า ไฟล์นี้ระบุคำขอ CPU ที่ค่อนข้างใหญ่สำหรับโหนดของคุณ

> นาโน reqlimit2

ไฟล์การกำหนดค่าที่มีคอนเทนเนอร์เดียวสามารถพบได้ที่นี่ คอนเทนเนอร์ขอ 100 CPU ซึ่งมากกว่าโหนดใดๆ ที่คลัสเตอร์ของคุณสามารถจัดหาได้อย่างสมเหตุสมผล

ขั้นตอนที่ 11: การสร้าง เต้เดอะพ็อด

ในขั้นตอนนี้ เราสร้างพ็อดด้วยคำสั่งต่อไปนี้:

> kubectl สร้าง -ฉ reqlimit2.yaml

ขั้นตอนที่ 12: ดูสถานะพ็อด

ตอนนี้คุณสามารถเห็นเซนต์ tus of the pod ด้วยคำสั่งที่แนบมานี้:

ผลลัพธ์แสดงว่าสถานะ Pod อยู่ระหว่างดำเนินการ

ขั้นตอนที่ 13: ดูข้อมูลพ็อด

ตอนนี้เราจะดูข้อมูลโดยละเอียดเกี่ยวกับ Pod รวมถึงเหตุการณ์ด้วยคำสั่งที่กำหนดที่นี่:

ไปที่ส่วนเหตุการณ์และดูว่าคอนเทนเนอร์ถูกกำหนดเวลาไว้หรือไม่

หากไม่สามารถกำหนดเวลาได้และเหตุผลคือทรัพยากร CPU ไม่เพียงพอ คุณสามารถลบโหนดได้ วิธีการลบโหนดจะอธิบายในขั้นตอนถัดไป

ขั้นตอน 14: ลบโหนด

คุณสามารถลบโหนดได้ด้วยคำสั่งต่อไปนี้:

> kubectl ลบ pod cpu-demo- 2 --เนมสเปซ = เอบีซี

ข้อจำกัดของทรัพยากรคอนเทนเนอร์มีผลกระทบอย่างไรต่อประสิทธิภาพการทำงาน

ด้วยความนิยมที่เพิ่มขึ้นของเทคโนโลยีคอนเทนเนอร์ Kubernetes สิ่งสำคัญคือต้องเข้าใจว่าขีดจำกัดของทรัพยากรส่งผลต่อประสิทธิภาพการทำงานอย่างไร การตั้งค่าขีดจำกัดของทรัพยากรภายในคอนเทนเนอร์ Kubernetes ช่วยให้คุณมั่นใจได้ว่าแอปพลิเคชันของคุณทำงานในระดับที่เหมาะสมที่สุด และไม่ใช้ทรัพยากรมากเกินไปจากโฮสต์เซิร์ฟเวอร์ ด้วยการจำกัดทรัพยากร คุณสามารถหลีกเลี่ยงกระบวนการที่ซ้ำซ้อนโดยเปล่าประโยชน์ ช่วยป้องกันไม่ให้ระบบล่มเนื่องจากการใช้งาน และเพิ่มประสิทธิภาพการทำงานของคอนเทนเนอร์ของคุณ

หากต้องการตั้งค่าขีดจำกัดทรัพยากรเหล่านี้ในคอนเทนเนอร์ Kubernetes คุณต้องใช้เครื่องมือที่เรียกว่า cgroups (กลุ่มควบคุม) กลุ่ม C ช่วยให้ผู้ดูแลระบบสามารถจำกัดทรัพยากร เช่น รอบการทำงานของ CPU หรือการใช้หน่วยความจำสำหรับแต่ละคอนเทนเนอร์ คุณยังสามารถตั้งค่าพารามิเตอร์อื่นๆ เช่น ขนาดไฟล์สูงสุดหรือการใช้แบนด์วิธเครือข่ายต่อคอนเทนเนอร์

บทสรุป

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