0Pricing
Kubernetes Basics · บทเรียน

กลยุทธ์การนำส่ง: แบบ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทำความเข้าใจ Deployment
  2. การปรับขนาดแอปพลิเคชันด้วย ReplicaSets
  3. การอัปเดตแบบทยอยและการย้อนกลับ
  4. กลยุทธ์การนำส่ง: แบบ Blue-Green และ Canary
← กลับไปที่ Kubernetes Basics