การปรับขนาดแอปพลิเคชันด้วย ReplicaSets
ใช้ ReplicaSets เพื่อรับประกันว่าจะมี Pod ที่เหมือนกันตามจำนวนที่กำหนดทำงานอยู่ตลอดเวลา
การปรับขนาดแอปพลิเคชันด้วย ReplicaSets เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดการปรับขนาดจึงสำคัญ
ในโลกของแอปพลิเคชันแบบคลาวด์เนทีฟ การปรับขนาดมีความสำคัญอย่างยิ่ง ช่วยให้แอปพลิเคชันของคุณรองรับภาระงานที่เปลี่ยนแปลงได้ และยังคงพร้อมใช้งานแม้ส่วนประกอบบางส่วนขัดข้อง
การปรับขนาดหมายถึงการปรับจำนวนอินสแตนซ์ของแอปพลิเคชันที่กำลังทำงานให้สอดคล้องกับความต้องการ หากมีน้อยเกินไป แอปของคุณจะทำงานช้าหรือไม่ตอบสนอง หากมีมากเกินไป คุณจะสิ้นเปลืองทรัพยากร
ทำความรู้จัก ReplicaSet
ReplicaSet คือออบเจ็กต์หลักของ Kubernetes ที่มีหน้าที่สำคัญในการรักษาชุดของ Pod ที่กำลังทำงานให้มีจำนวนคงที่อยู่เสมอ
ลองนึกภาพว่าเป็นผู้พิทักษ์ของ Pod ของคุณ โดยจะตรวจสอบให้จำนวน Pod ที่เหมือนกันซึ่งคุณ ต้องการ มีเท่ากับจำนวนที่ กำลังทำงานอยู่จริง เสมอ
ภารกิจหลักของ ReplicaSet
เป้าหมายหลักของ ReplicaSet คือการรับประกันความพร้อมใช้งานของ Pod ที่เหมือนกันตามจำนวนที่กำหนด
- หาก Pod หยุดทำงาน (เช่น เนื่องจากโหนดขัดข้อง) ReplicaSet จะสร้าง Pod ใหม่โดยอัตโนมัติ
- หากกระบวนการภายนอกสร้าง Pod มากเกินไป ReplicaSet จะยุติ Pod ส่วนเกิน
- ความสามารถในการซ่อมแซมตัวเองนี้มีความสำคัญอย่างยิ่งต่อความน่าเชื่อถือของแอปพลิเคชัน
โครงสร้าง YAML ของ ReplicaSet
เช่นเดียวกับออบเจ็กต์อื่น ๆ ของ Kubernetes, ReplicaSet จะถูกกำหนดโดยใช้ไฟล์ YAML มาดูโครงสร้างพื้นฐานกัน:
apiVersion: กำหนดเวอร์ชัน API ของ Kubernetes (เช่นapps/v1)kind: ระบุประเภทออบเจ็กต์ ซึ่งคือReplicaSetmetadata: มีข้อมูลระบุออบเจ็กต์ เช่นnamespec: อธิบายสถานะที่ต้องการของ ReplicaSet
สถานะที่ต้องการ: แบบจำลองและตัวเลือก
ภายในส่วน spec มีฟิลด์สำคัญสองรายการคือ replicas และ selector:
replicas: ตัวเลขที่ระบุจำนวน Pod ที่เหมือนกันซึ่งคุณต้องการให้กำลังทำงานอยู่selector: กำหนดวิธีที่ ReplicaSet ใช้ค้นหาและจัดการ Pod โดยใช้ป้ายกำกับเพื่อจับคู่กับ Pod เฉพาะ Pod ที่ตรงกับป้ายกำกับเหล่านี้เท่านั้นจึงจะถือว่าเป็นส่วนหนึ่งของ ReplicaSet นี้
แม่แบบ Pod
ฟิลด์ spec.template ทำหน้าที่เป็นแบบพิมพ์เขียวสำหรับ Pod ที่ ReplicaSet จะสร้างขึ้น โดยพื้นฐานแล้วคือคำจำกัดความมาตรฐานของ Pod
แม่แบบนี้ประกอบด้วยข้อมูลเมตาของ Pod (เช่น ป้ายกำกับ) และข้อกำหนดของ Pod (เช่น อิมเมจคอนเทนเนอร์ พอร์ต และอื่น ๆ) ป้ายกำกับในแม่แบบ ต้องตรงกับ spec.selector!
การกำหนด ReplicaSet อย่างง่าย
มาสร้าง ReplicaSet ที่รับประกันว่าจะมี Pod ของเว็บเซิร์ฟเวอร์ Nginx ทำงานอยู่เสมอ 2 รายการ โปรดสังเกตว่าป้ายกำกับของแม่แบบ Pod (app: nginx) ตรงกับตัวเลือก
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80การสร้างและตรวจสอบสถานะ
หากต้องการสร้าง ReplicaSet นี้ ให้บันทึก YAML เป็น nginx-rs.yaml แล้วนำไปใช้ จากนั้นตรวจสอบสถานะและ Pod ที่ ReplicaSet จัดการ:
kubectl apply -f nginx-rs.yaml
kubectl get rs
kubectl get pods -l app=nginxการเพิ่มและลดขนาด
คุณสามารถเปลี่ยนจำนวน Pod ที่ต้องการของ ReplicaSet ได้แบบไดนามิกโดยใช้คำสั่ง kubectl scale มาปรับ ReplicaSet ของ Nginx ให้มี Pod 4 รายการกัน:
kubectl scale --replicas=4 rs/nginx-replicaset
kubectl get rs
kubectl get pods -l app=nginxการสังเกตการปรับขนาด
เมื่อคุณปรับขนาด ReplicaSet, Kubernetes จะสร้างหรือลบ Pod โดยอัตโนมัติเพื่อให้ตรงกับจำนวน replicas ใหม่ คุณสามารถดูเหตุการณ์นี้แบบเรียลไทม์ได้:
kubectl scale --replicas=1 rs/nginx-replicaset
kubectl get pods -l app=nginx -wโจทย์ท้าทายการปรับขนาด
คุณมี ReplicaSet ชื่อ my-app-rs ซึ่งขณะนี้กำลังทำงานอยู่ 3 Pod และต้องการเพิ่มเป็น 5 Pod คุณจะใช้คำสั่ง kubectl ใด
ทบทวนและขั้นตอนถัดไป
คุณได้เรียนรู้ว่า ReplicaSets มีความสำคัญอย่างยิ่งต่อการรักษาจำนวน Pod ที่เหมือนกันตามที่ต้องการ โดยช่วยให้แอปพลิเคชันซ่อมแซมตัวเองและมีความพร้อมใช้งานสูง คุณสามารถกำหนด ReplicaSets ใน YAML และปรับขนาดโดยใช้ kubectl scale ได้
แม้ ReplicaSets จะมีประสิทธิภาพสูง แต่ในทางปฏิบัติ คุณมักใช้ Deployments ซึ่งจัดการ ReplicaSets ให้คุณ พร้อมฟีเจอร์ขั้นสูงกว่า เช่น การอัปเดตแบบทยอยเปลี่ยน เราจะสำรวจ Deployments ต่อไป
คำถามที่พบบ่อย
บทเรียน “การปรับขนาดแอปพลิเคชันด้วย ReplicaSets” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การปรับขนาดแอปพลิเคชันด้วย ReplicaSets” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การปรับขนาดแอปพลิเคชันด้วย ReplicaSets”
ใช้ ReplicaSets เพื่อรับประกันว่าจะมี Pod ที่เหมือนกันตามจำนวนที่กำหนดทำงานอยู่ตลอดเวลา คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การปรับขนาดแอปพลิเคชันด้วย ReplicaSets” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจ Deployment
- การปรับขนาดแอปพลิเคชันด้วย ReplicaSets
- การอัปเดตแบบทยอยและการย้อนกลับ
- กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary