EndpointSlice ใน Kubernetes คืออะไร
EndpointSlice ใน Kubernetes เป็นตัวติดตามปลายทางของเครือข่าย ทำให้สามารถตรวจสอบจุดสิ้นสุดของเครือข่ายในคลัสเตอร์ Kubernetes ได้ พูดง่ายๆ คือวัตถุที่ได้รับที่อยู่ IP จากแต่ละพ็อดที่กำหนดให้กับมัน บริการ Kubernetes อ้างถึงวัตถุนี้เพื่อรับบันทึกที่อยู่ IP ภายในของพ็อดสำหรับการสื่อสาร ยิ่งไปกว่านั้น จุดสิ้นสุดเหล่านี้ถูกใช้โดยพ็อดเพื่อให้ตัวเองได้สัมผัสกับบริการ
ในขอบเขต Kubernetes ปลายทางเหล่านี้ทำงานเป็นเลเยอร์นามธรรมซึ่งช่วยบริการ Kubernetes เพื่อให้แน่ใจว่ามีการกระจายการรับส่งข้อมูลไปยังพ็อดในคลัสเตอร์ อย่างไรก็ตาม เมื่อปริมาณการรับส่งข้อมูลเพิ่มขึ้น ปัญหามาตราส่วนการรับส่งข้อมูลก็เกิดขึ้น เนื่องจากจุดสิ้นสุดเดียวมีปลายทางเครือข่ายทั้งหมดสำหรับแต่ละบริการ และเมื่อแหล่งข้อมูลเหล่านี้เติบโตจนมีขนาดที่ยอมรับไม่ได้ ประสิทธิภาพของ Kubernetes ก็จะได้รับผลกระทบในทางลบ กล่าวอีกนัยหนึ่ง เมื่อจำนวนปลายทางของเครือข่ายเพิ่มขึ้นอย่างมาก ความสามารถของ Kubernetes ในการขยายการปรับใช้จะได้รับผลกระทบในทางลบ ให้เราเข้าใจสิ่งนี้ด้วยความช่วยเหลือของภาพกราฟิกต่อไปนี้:
ที่นี่ คุณจะเห็นว่า Endpoint มีพ็อดทั้งหมดในคลัสเตอร์ และ EndpointSlices เป็นทางเลือกที่ขยายและปรับขนาดได้สำหรับ Endpoint ที่มีอยู่ มีทรัพยากรปลายทางเพียงรายการเดียวสำหรับบริการทั้งหมด แต่มี EndpointSlices มากกว่าหนึ่งรายการสำหรับบริการเดียวกัน EndpointSlices ช่วยให้คุณปรับขนาดทรัพยากรเครือข่ายด้วยวิธีนี้ เพื่อให้เข้าใจว่าปัญหาความสามารถในการปรับขนาดนี้มีความสำคัญเพียงใด ให้เรายกตัวอย่าง
ตัวอย่างเช่น บริการ Kubernetes มีพ็อดประมาณ 9,000 รายการซึ่งสุดท้ายแล้วกลายเป็นทรัพยากรปลายทางขนาด 2MB ปลายทางเดียวมีทรัพยากรปลายทางทั้งหมดของบริการเหล่านี้ หากจุดสิ้นสุดของเครือข่ายมีการเปลี่ยนแปลงในจุดสิ้นสุด ทรัพยากรทั้งหมดของจุดสิ้นสุดจะต้องมีการกระจายไปยังแต่ละโหนดในคลัสเตอร์ เมื่อต้องจัดการกับคลัสเตอร์ที่มีโหนด 3,000 โหนด มันจะกลายเป็นปัญหาใหญ่เนื่องจากจำเป็นต้องส่งการอัปเดตจำนวนมากไปยังแต่ละโหนด ดังนั้น เมื่อคุณปรับขนาดมากขึ้นในจุดสิ้นสุดเพียงจุดเดียว การปรับขนาดเครือข่ายก็จะยิ่งยากขึ้นเท่านั้น
อย่างไรก็ตาม EndpointSlices แก้ไขปัญหานี้ด้วยการเปิดใช้งาน Kubernetes เพื่อปรับขนาดได้มากเท่าที่จำเป็น แทนที่จะใช้ปลายทางเดียวที่มีรายการที่อยู่ IP จำนวนมากและหมายเลขพอร์ตที่เกี่ยวข้อง ให้ใช้ EndpointSlices หลายรายการ EndpointSlices เหล่านี้คือส่วนเล็กๆ ของปลายทางขนาดใหญ่เพียงจุดเดียว ชิ้นส่วนเหล่านี้มีขนาดเล็กกว่ามาก แต่ช่วยลดภาระที่เกิดจากจุดสิ้นสุดขนาดใหญ่ คุณสามารถจัดเก็บได้ถึง 100 พ็อดใน EndpointSlice เดียว EndpointSlices เหล่านี้ช่วยให้คุณกระจายบริการไปยังพ็อดเฉพาะ หากปลายทางของเครือข่ายมีการเปลี่ยนแปลง คุณจะต้องส่งการอัปเดตไปยัง EndpointSlice ซึ่งมีพ็อดสูงสุด 100 รายการเท่านั้น พ็อดอื่น ๆ ทั้งหมดในเครือข่ายยังคงไม่ถูกแตะต้อง
ตอนนี้ เรามาเรียนรู้วิธีสร้าง Kubernetes EndpointSlice
EndpointSlices ถูกสร้างขึ้นใน Kubernetes อย่างไร
Kubernetes EndpointSlices เป็นทางเลือกที่ดีที่สุดสำหรับปลายทางเดียวในคลัสเตอร์ Kubernetes ไม่เพียงช่วยให้คุณติดตามจุดสิ้นสุดของเครือข่ายทั้งหมดได้อย่างง่ายดายและมีประสิทธิภาพ แต่ยังให้ประสิทธิภาพที่ดีกว่าเมื่อเทียบกับจุดสิ้นสุดเดียว นอกจากนี้ยังแสดงทราฟฟิกเครือข่ายที่ลดลงในขณะที่ให้ความน่าเชื่อถือในการปรับขนาด นอกจากนี้ การใช้ EndpointSlices หลายรายการยังช่วยให้คุณใช้แรงงานน้อยลงในระนาบควบคุมและโหนดในคลัสเตอร์ Kubernetes
คุณสามารถมีขั้นตอนที่ช่วยให้คุณเรียนรู้วิธีสร้าง EndpointSlices ในคลัสเตอร์ Kubernetes ได้ในตัวอย่างต่อไปนี้
ขั้นตอนที่ 1: เริ่ม Minikube Cluster
ขั้นตอนแรกและสำคัญที่สุดคือต้องแน่ใจว่าคลัสเตอร์ minikube ทำงานอยู่ คลัสเตอร์ minikube ที่ไม่ได้ใช้งานจะไม่อนุญาตให้คุณทำงานใดๆ ในสภาพแวดล้อม Kubernetes ดังนั้นตรวจสอบให้แน่ใจว่าคลัสเตอร์นั้นอยู่ในโหมดแอ็คทีฟ เพื่อให้แน่ใจว่าคลัสเตอร์ minikube เปิดใช้งานแล้ว ให้ใช้คำสั่งต่อไปนี้:
> เริ่ม minikube
หากคลัสเตอร์ minikube ของคุณไม่ได้เริ่มทำงานก่อนหน้านี้หรือหากอยู่ในโหมดสลีป คำสั่งนี้จะปลุกและเปิดใช้งานและทำงาน ตอนนี้ คุณมีคลัสเตอร์ minikube ที่ใช้งานอยู่ คุณพร้อมที่จะสร้าง EndpointSlice ในสภาพแวดล้อม Kubernetes แล้ว
ขั้นตอนที่ 2: สร้างการปรับใช้ด้วยไฟล์ YAML
ไฟล์ YAML มักใช้ใน Kubernetes เพื่อสร้างการปรับใช้ คุณสามารถใช้ไฟล์ YAML การปรับใช้ที่มีอยู่แล้วหรือสร้างใหม่โดยใช้คำสั่งต่อไปนี้:
> นาโน endpoint.yamlซึ่งจะสร้างไฟล์ YAML ใหม่ชื่อ “endpoint.yaml” ซึ่งคุณสามารถบันทึกข้อกำหนดการปรับใช้สำหรับการกำหนดค่าได้ อ้างถึงข้อกำหนดการปรับใช้ในภาพหน้าจอต่อไปนี้:
ขั้นตอนที่ 3: สร้าง EndpointSlice โดยใช้ไฟล์ YAML
ตอนนี้เรามีไฟล์ YAML ซึ่งมีข้อกำหนดการปรับใช้ เราจึงใช้ไฟล์นั้นเพื่อสร้าง EndpointSlices ในคลัสเตอร์ Kubernetes เราจำเป็นต้องปรับใช้ไฟล์การกำหนดค่าเพื่อให้เรามี EndpointSlices ในคลัสเตอร์ Kubernetes เราใช้คำสั่งต่อไปนี้เพื่อปรับใช้ไฟล์คอนฟิกูเรชัน:
> kubectl สร้าง -f endpoint.yamlในสภาพแวดล้อม Kubernetes ทรัพยากรถูกสร้างขึ้นโดยใช้คำสั่ง 'kubectl create' ดังนั้นเราจึงใช้คำสั่ง “kubectl create” เพื่อสร้าง EndpointSlices จากไฟล์คอนฟิกูเรชัน YAML
บทสรุป
เราได้สำรวจ EndpointSlices ในสภาพแวดล้อม Kubernetes EndpointSlice ใน Kubernetes เป็นวัตถุที่ใช้ในการติดตามจุดสิ้นสุดของเครือข่ายทั้งหมดในคลัสเตอร์ Kubernetes เป็นทางเลือกที่ดีที่สุดสำหรับ Endpoint ขนาดใหญ่และจุดเดียวในคลัสเตอร์ Kubernetes เนื่องจากช่วยให้สามารถปรับขยายและขยายตัวเลือกได้ดีขึ้น EndpointSlices เหล่านี้ช่วยให้คลัสเตอร์ Kubernetes มีประสิทธิภาพที่ดีขึ้นโดยลดแรงงานบนโหนดและระนาบควบคุม ด้วยความช่วยเหลือของตัวอย่าง เราได้เรียนรู้วิธีสร้าง EndpointSlices ในคลัสเตอร์ Kubernetes