Kubectl Autoscale คืออะไร?
การปรับขนาดอัตโนมัติเป็นคุณสมบัติหลักในคลัสเตอร์ Kubernetes ซึ่งทำให้ทรัพยากรอัปเดตโดยอัตโนมัติโดยไม่ต้องดำเนินการด้วยตนเองให้ยุ่งยาก เป็นกระบวนการที่เสียเวลาและสิ้นเปลืองทรัพยากรอย่างมากในการอัปเดตทรัพยากรที่เรียกร้องด้วยตนเอง การปรับขนาดอัตโนมัติของ Kubernetes มอบสิ่งอำนวยความสะดวกอัตโนมัติเพื่อเพิ่มประสิทธิภาพทรัพยากร
Autoscaler สามารถสร้างและทำลายจำนวนโหนดตามความต้องการ Autoscale ช่วยลดการสูญเสียทรัพยากร Kubectl autoscale จะเลือกพ็อดที่กำลังดำเนินการภายในคลัสเตอร์ Kubernetes โดยอัตโนมัติ
การปรับขนาดมีสองประเภท: (1) HorizontalPodScaler และ (2) Scaler แนวตั้ง Scaler แนวนอนแตกต่างจาก Scaler แนวตั้ง HorizontalPodScaler ช่วยในการลดหรือเพิ่มพ็อดเมื่อจำเป็น ในทางกลับกัน Vertical scaler ใช้ทรัพยากรเช่น CPU และหน่วยความจำ
นี่คือขั้นตอนทั้งหมดที่คุณสามารถทำตามในระบบของคุณและดูผลลัพธ์เพื่อความเข้าใจที่ดีขึ้น
ขั้นตอนที่ 1: การเริ่มต้น Minikube Cluster
ในขั้นตอนแรก ให้เริ่มเครื่องมือ minikube เพื่อเรียกใช้คลัสเตอร์ Kubernetes เพื่อให้เราสามารถดำเนินการคำสั่ง “kubectl autoscale” คุณสามารถตั้งค่าโหนด พ็อด และแม้แต่คลัสเตอร์ในสภาพแวดล้อม Kubernetes โดยใช้คลัสเตอร์ minikube ในการดำเนินการดังกล่าว ให้ใช้คำสั่งต่อไปนี้เพื่อให้ minikube อยู่ในโหมดแอ็คทีฟ:
~$ เริ่ม minikube
ดังที่คุณเห็นในภาพหน้าจอผลลัพธ์ต่อไปนี้ คำสั่งนี้เปิดใช้งานคลัสเตอร์ minikube และทำให้สภาพแวดล้อม Kubernetes ใช้งานได้:
ขั้นตอนที่ 2: รับรายละเอียดพ็อด
ในขั้นตอนนี้ คลัสเตอร์ Kubernetes ทำงานสำเร็จ ตอนนี้เราได้รับรายละเอียดพ็อดในคลัสเตอร์ พ็อดใน Kubernetes คือชุดของหน่วยที่แบ่งปันทรัพยากร สคริปต์ต่อไปนี้ดำเนินการโดยการรันคำสั่งต่อไปนี้ในคลัสเตอร์ minikube ของคุณ:
~$ kubectl รับพ็อดเมื่อใช้คำสั่งก่อนหน้าซึ่งก็คือ “kubectl get pods” เราสามารถรับรายการพ็อดทั้งหมดที่ทำงานในคลัสเตอร์ Kubernetes
หลังจากดำเนินการคำสั่ง 'get pods' เราจะได้ผลลัพธ์ต่อไปนี้:
ขั้นตอนที่ 3: รับการปรับใช้ Pod
ในคำสั่ง “kubectl get pods” ก่อนหน้านี้ เราได้รับรายละเอียดของพ็อด ตอนนี้ เราใช้คำสั่ง 'รับการปรับใช้' เพื่อรับรายการการปรับใช้ที่สร้างขึ้น สคริปต์ต่อไปนี้ดำเนินการเพื่อจุดประสงค์นี้:
~$ kubectl รับการปรับใช้หลังจากดำเนินการคำสั่ง ภาพหน้าจอต่อไปนี้จะแสดงผลลัพธ์:
ขั้นตอนที่ 4: การปรับใช้มาตราส่วนอัตโนมัติ
คำสั่ง autoscale ใช้เพื่อทำการเลือกอัตโนมัติของพ็อดที่ทำงานในคลัสเตอร์ ด้วยการปรับใช้มาตราส่วนอัตโนมัติในคลัสเตอร์ เราจะแทรกและยุติจำนวนโหนดโดยอัตโนมัติ สคริปต์ต่อไปนี้ดำเนินการในคลัสเตอร์ minikube และแสดงชื่อไฟล์ พ็อดขั้นต่ำ และพ็อดสูงสุด โดยพ็อดควรอยู่ระหว่าง 2 ถึง 10:
~$ การปรับใช้ kubectl autoscale nginx1-deployment1 --นาที = 2 --สูงสุด = 10หลังจากรันคำสั่ง ผลลัพธ์ต่อไปนี้จะถูกสร้างขึ้น:
ขั้นตอนที่ 5: สร้างไฟล์ Kubernetes YAML
ในขั้นตอนนี้ คุณจะได้เรียนรู้วิธีสร้างไฟล์ YAML ในคลัสเตอร์ ไฟล์ YAML มีประโยชน์สำหรับการปรับใช้และการทดสอบแอปพลิเคชัน มีหลายประเภทใน Kubernetes เพื่อสร้างและแก้ไขไฟล์
ในบทความนี้ เราใช้คำสั่ง “nano” เพื่อสร้างไฟล์ YAML เนื่องจากเป็นวิธีที่ง่ายที่สุดและเป็นทางเลือกที่ดีที่สุดสำหรับผู้เริ่มต้น
ทำตามขั้นตอนที่กำหนดที่นี่เพื่อสร้างไฟล์ YAML โดยใช้นาโน:
- หากต้องการสร้างไฟล์ใหม่หรือเปลี่ยนไฟล์ที่มีอยู่ ให้ไปที่ตำแหน่งไดเร็กทอรีที่ต้องการ
- พิมพ์ “นาโน” หลังจากนั้นให้เขียนชื่อไฟล์ ตัวอย่างเช่น หากคุณต้องการสร้างชื่อไฟล์ใหม่ ให้จดชื่อ – “deploo.yaml”
เรียกใช้สคริปต์ต่อไปนี้และสร้างไฟล์ YAML ในไดเรกทอรีโครงการ:
~$ นาโน deploo.yamlหลังจากสร้างไฟล์ “deploo.yaml” แล้ว ขั้นตอนต่อไปคือกำหนดค่าไฟล์ YAML เราอธิบายในขั้นตอนต่อไปนี้
ขั้นตอนที่ 6: เนื้อหาของไฟล์ YAML
ในขั้นตอนนี้ เราสามารถกำหนดค่าเซิร์ฟเวอร์ Apache และไฟล์ PHP ได้อย่างง่ายดาย ก่อนที่เราจะใช้ HorizontalPodScaler เราต้องกำหนดค่าตัวตรวจสอบปริมาณงาน เนื่องจากโค้ดต่อไปนี้แสดง type:deployment พอร์ตของเว็บเบราว์เซอร์คือ 90 และขีดจำกัดของ CPU คือ 200m
คุณสามารถดูข้อมูลไฟล์ “deploo.yaml” ทั้งหมดได้ที่นี่:
apiVersion : แอป/v1ใจดี : การปรับใช้
ข้อมูลเมตา :
ชื่อ : php.ini
ข้อมูลจำเพาะ :
ตัวเลือก :
จับคู่ฉลาก :
วิ่ง : php-apache
แม่แบบ :
ข้อมูลเมตา :
ป้ายกำกับ :
วิ่ง : php-apache
ข้อมูลจำเพาะ :
ตู้คอนเทนเนอร์ :
- ชื่อ : php.ini
ภาพ : Registry.k8s.io/hpa-example
พอร์ต :
- พอร์ตคอนเทนเนอร์ : 90
ทรัพยากร :
ขีด จำกัด :
ซีพียู : 200ม
คำขอ :
ซีพียู : 100ม
---
apiVersion : v1
ใจดี : บริการ
ข้อมูลเมตา :
ชื่อ : php.ini
ป้ายกำกับ :
วิ่ง : php-apache
ข้อมูลจำเพาะ :
พอร์ต :
- ท่าเรือ : 70
ตัวเลือก :
วิ่ง : php-apache
ขั้นตอนที่ 7: สร้างการปรับใช้
ในขั้นตอนนี้ เรามาสร้างไฟล์ YAML ชื่อ “deploo.yaml” สคริปต์ต่อไปนี้ดำเนินการในคลัสเตอร์ minikube:
~$ kubectl สร้าง -f deploo.yamlผลลัพธ์ของคำสั่งดังกล่าวที่เราดำเนินการสามารถดูได้ในภาพหน้าจอต่อไปนี้ ผลลัพธ์ระบุว่าไฟล์ YAML ถูกสร้างขึ้นแล้ว:
ขั้นตอนที่ 8: สร้าง HorizontalPodScaler
ในขั้นตอนนี้ เราจะแสดงคำสั่งในการสร้าง HorizontalPodAutoscaler พ็อดจะถูกแทรกและสิ้นสุดโดยอัตโนมัติขึ้นอยู่กับความต้องการ ซึ่งแตกต่างจากการปรับขนาดแนวตั้ง โดยที่ทรัพยากร CPU และหน่วยความจำถูกกำหนดโดยมาตราส่วนอัตโนมัติ สคริปต์ต่อไปนี้ดำเนินการในคลัสเตอร์ minikube:
~$ การปรับใช้ php kubectl autoscale -- ซีพียู - เปอร์เซ็นต์ = ห้าสิบ -- นาที = 10 –สูงสุด = ยี่สิบที่นี่ คุณจะเห็นว่าเราตั้งค่าต่ำสุดและสูงสุดเป็น 10 และ 20
สิ่งที่แนบมาคือผลลัพธ์ของคำสั่งก่อนหน้า:
ขั้นตอนที่ 9: ตรวจสอบ HorizontalPodScaler
ในขั้นตอนนี้ เราจะตรวจสอบสถานะปัจจุบันของ HorizontalPodAutoscaler ซึ่งสร้างขึ้นใหม่ ดำเนินการคำสั่งต่อไปนี้:
~$ kubectl รับ hpaบทสรุป
หนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดของ Kubernetes คือ “kubectl autoscale” ซึ่งให้การอัปเดตทรัพยากรอัตโนมัติในคลัสเตอร์ Kubernetes ตัวปรับขนาดอัตโนมัติช่วยเมื่อคลัสเตอร์ต้องการเพิ่มพ็อดหรือลดพ็อด ในบทความนี้ เราได้เรียนรู้วิธีการปรับขนาดอัตโนมัติสองวิธี วิธีหนึ่งคือตัวปรับขนาดอัตโนมัติเริ่มต้น และอีกวิธีคือ HorizontalPodScaler
ขั้นแรก เราปรับใช้พ็อดและประกาศ จากนั้น เราสร้างตัวปรับขนาดอัตโนมัติและกำหนดค่าเซิร์ฟเวอร์ Apache เพื่อปรับใช้ตัวตรวจสอบปริมาณงานก่อน HorizontalPodScaler หลังจากนั้น เราสร้างไฟล์ YAML และ HorizontalPodScaler บทความนี้มุ่งเน้นไปที่ขั้นตอนโดยละเอียดของการสร้าง กำหนดค่า และปรับใช้ Kubernetes แบบปรับขนาดอัตโนมัติ