กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary
ก้าวไปไกลกว่าการอัปเดตแบบทยอย และเรียนรู้วิธีนำส่งอย่างปลอดภัยด้วยรูปแบบการนำส่งแบบ blue-green และ canary ใน Kubernetes
กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องมีมากกว่าการอัปเดตแบบทยอย
การอัปเดตแบบทยอยจะแทนที่พ็อดทีละน้อย แต่ในช่วงเปลี่ยนผ่านจะมีทั้งรุ่นเก่าและรุ่นใหม่ปะปนกัน สำหรับการเผยแพร่รุ่นที่มีความเสี่ยง คุณอาจต้องการควบคุมอย่างเต็มที่ว่าผู้ใช้กลุ่มใดจะเห็นรุ่นใหม่
กลยุทธ์แบบสีน้ำเงิน-สีเขียวและแบบแคนารีช่วยให้คุณควบคุมสิ่งนี้ได้
แนวคิดแบบสีน้ำเงิน-สีเขียว
ในการปรับใช้แบบสีน้ำเงิน-สีเขียว คุณจะเรียกใช้สภาพแวดล้อมที่เหมือนกันสองชุด:
- สีน้ำเงิน = รุ่นปัจจุบันที่ให้บริการอยู่
- สีเขียว = รุ่นใหม่ที่ปรับใช้เสร็จสมบูรณ์แล้ว แต่ยังไม่ได้รับปริมาณรับส่งข้อมูล
คุณจะเปลี่ยนปริมาณรับส่งข้อมูลจากสีน้ำเงินไปยังสีเขียวทั้งหมดในครั้งเดียว
การปรับใช้สองรายการ บริการหนึ่งรายการ
แต่ละรุ่นจะเป็นการปรับใช้ของตนเองและมีป้ายกำกับรุ่น บริการเพียงรายการเดียวจะเลือกสีที่กำลังให้บริการอยู่
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
spec:
replicas: 3
selector:
matchLabels:
app: web
version: blue
template:
metadata:
labels:
app: web
version: blue
spec:
containers:
- name: web
image: myapp:1.0การเปลี่ยนปริมาณรับส่งข้อมูล
หากต้องการให้สีเขียวเริ่มให้บริการ คุณเพียงแก้ไขตัวเลือกของบริการให้ชี้ไปยังรุ่นสีเขียว การเปลี่ยนผ่านจะเกิดขึ้นทันที
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'ข้อดีและข้อเสียของแบบสีน้ำเงิน-สีเขียว
- ข้อดี: ย้อนกลับได้ทันทีโดยเปลี่ยนกลับไปใช้สีน้ำเงิน
- ข้อดี: ไม่มีรุ่นปะปนกันระหว่างการเผยแพร่
- ข้อเสีย: ต้องใช้ทรัพยากรเพิ่มเป็นสองเท่าในช่วงที่ทั้งสองรุ่นทำงานทับซ้อนกัน
แนวคิดแบบแคนารี
การเผยแพร่แบบแคนารีจะส่งปริมาณรับส่งข้อมูลเพียงเล็กน้อยไปยังรุ่นใหม่ก่อน หากตัวชี้วัดดูเป็นปกติ คุณจะค่อย ๆ เพิ่มสัดส่วนการใช้งาน
ชื่อนี้มาจากนกคีรีบูนที่คนงานเหมืองใช้ตรวจจับอันตรายตั้งแต่เนิ่น ๆ
แคนารีด้วยจำนวนเรพลิกา
แคนารีแบบง่ายใช้การปรับใช้สองรายการที่ใช้ป้ายกำกับบริการเดียวกัน ปริมาณรับส่งข้อมูลจะถูกแบ่งโดยประมาณตามสัดส่วนของจำนวนเรพลิกา
# stable: 9 replicas, canary: 1 replica => ~10% to canary
kubectl scale deployment app-stable --replicas=9
kubectl scale deployment app-canary --replicas=1การขยายสัดส่วนแคนารี
เมื่อความมั่นใจเพิ่มขึ้น คุณจะค่อย ๆ ปรับสัดส่วนไปทางแคนารี จากนั้นจึงยุติรุ่นเก่าเมื่อรุ่นใหม่รองรับปริมาณรับส่งข้อมูลทั้งหมด
kubectl scale deployment app-canary --replicas=5
kubectl scale deployment app-stable --replicas=5
# later, fully promote
kubectl scale deployment app-canary --replicas=10
kubectl scale deployment app-stable --replicas=0การเฝ้าสังเกตแคนารี
หัวใจสำคัญของแคนารีคือการเฝ้าสังเกต คุณควรดูอัตราข้อผิดพลาด เวลาแฝง และบันทึกการทำงานก่อนขยายสัดส่วน
kubectl get pods -l version=canary
kubectl logs -l version=canary --tail=50การเลือกกลยุทธ์
- สีน้ำเงิน-สีเขียว: เหมาะที่สุดเมื่อต้องการเปลี่ยนผ่านที่สะอาดและเกิดขึ้นทันที รวมถึงการย้อนกลับอย่างรวดเร็ว
- แคนารี: เหมาะที่สุดเมื่อต้องการจำกัดขอบเขตผลกระทบและตรวจสอบด้วยปริมาณรับส่งข้อมูลจริง
- แบบทยอย: เป็นค่าเริ่มต้นที่ดีสำหรับการอัปเดตตามปกติที่มีความเสี่ยงต่ำ
เครื่องมือที่มากกว่า kubectl
สำหรับการแบ่งปริมาณรับส่งข้อมูลอย่างละเอียด (เช่น แบ่งให้ตรง 5%) ทีมต่าง ๆ มักใช้เมชบริการอย่าง Istio หรือเครื่องมือส่งมอบแบบค่อยเป็นค่อยไป เช่น Argo Rollouts และ Flagger ซึ่งทำให้การวิเคราะห์แคนารีเป็นอัตโนมัติ
ตรวจสอบอย่างรวดเร็ว
เลือกข้อความที่อธิบายการเผยแพร่แบบแคนารีได้ดีที่สุด
สรุปทบทวน
คุณได้เปรียบเทียบกลยุทธ์การเผยแพร่รุ่นขั้นสูงแล้ว แบบสีน้ำเงิน-สีเขียวจะเปลี่ยนปริมาณรับส่งข้อมูลทั้งหมดระหว่างสภาพแวดล้อมสองชุดทันทีเพื่อให้ย้อนกลับได้รวดเร็ว ส่วนแบบแคนารีจะค่อย ๆ เปลี่ยนปริมาณรับส่งข้อมูลเพื่อลดความเสี่ยง ทั้งสองแบบต่อยอดจากองค์ประกอบพื้นฐานของการปรับใช้และบริการที่คุณรู้จักแล้ว
คำถามที่พบบ่อย
บทเรียน “กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary”
ก้าวไปไกลกว่าการอัปเดตแบบทยอย และเรียนรู้วิธีนำส่งอย่างปลอดภัยด้วยรูปแบบการนำส่งแบบ blue-green และ canary ใน Kubernetes คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม
ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจ Deployment
- การปรับขนาดแอปพลิเคชันด้วย ReplicaSets
- การอัปเดตแบบทยอยและการย้อนกลับ
- กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary