0Pricing
DevOps Bootcamp · บทเรียน

การหลุดจากสถานะ pending-upgrade และสถานะค้าง

การกู้คืนรีลีสที่ติดขัดระหว่างการดำเนินการ

การหลุดจากสถานะ pending-upgrade และสถานะค้าง เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

เมื่อรีลีสติดค้าง

หากการอัปเกรดถูกขัดจังหวะ รีลีสอาจติดอยู่ในสถานะ pending-upgrade และปฏิเสธการดำเนินการใหม่ทุกอย่าง อย่าเพิ่งตกใจ 🛑

ค้นหาสถานะ

เรียกใช้ helm list แล้วรีลีสที่ติดค้างจะแสดงสถานะอย่าง pending-upgrade หรือ pending-install แทนสถานะ deployed ที่ทำงานปกติ

helm list --all --namespace web

เหตุใดจึงเกิดขึ้น

สถานะ pending หมายความว่า Helm เริ่มเขียนรุ่นแก้ไขแล้วแต่ดำเนินการไม่เสร็จ มักเกิดจากกระบวนการถูกยุติหรือหมดเวลาระหว่างการอัปเกรด

วิธีแก้ที่สะอาดที่สุด

ทางออกที่ปลอดภัยที่สุดคือย้อนกลับไปยังรุ่นแก้ไขล่าสุดที่ใช้งานได้ helm rollback จะคืนรีลีสไปยังสถานะที่ทราบว่าใช้งานได้และมีสุขภาพดี

helm rollback my-app 0

เลือกเป้าหมาย

ตรวจสอบ helm history ก่อนเพื่อดูว่ารุ่นแก้ไขใดถูกนำไปใช้งานอย่างเรียบร้อยล่าสุด จากนั้นจึงย้อนกลับไปยังหมายเลขนั้นโดยตรง

helm history my-app

ย้อนกลับไปเป็นศูนย์

การส่งรุ่นแก้ไข 0 เป็นทางลัดที่สะดวก โดยบอกให้ Helm ย้อนกลับไปยังรีลีสก่อนหน้าโดยไม่ต้องระบุหมายเลขเอง

helm rollback my-app

รีลีสถูกจัดเก็บเป็นข้อมูลลับ

Helm 3 เก็บรุ่นแก้ไขแต่ละรุ่นไว้ใน Secret ของ Kubernetes ภายในเนมสเปซของรีลีส บันทึกนี้เป็นสิ่งที่ติดตามสถานะ pending

ตรวจสอบบันทึก

แสดงรายการข้อมูลลับเหล่านั้นเพื่อดูประวัติการแก้ไขโดยตรง รายการล่าสุดมีสถานะรอดำเนินการที่กำลังขัดขวางคุณอยู่

kubectl get secret -l owner=helm,name=my-app -n web

การล้างข้อมูลเป็นทางเลือกสุดท้าย

หากการย้อนกลับไม่ช่วย ให้ลบข้อมูลลับของการแก้ไขที่ล้มเหลวและอยู่ระหว่างดำเนินการ จากนั้นเฮล์มจะย้อนกลับไปใช้การแก้ไขก่อนหน้าเป็นรายการล่าสุด

kubectl delete secret sh.helm.release.v1.my-app.v5 -n web

จากนั้นลองอัปเกรดอีกครั้ง

เมื่อบันทึกที่ค้างถูกล้างแล้ว ให้เรียกใช้ คำสั่งอัปเกรดของเฮล์ม อีกครั้ง เมื่อสถานะสะอาดแล้ว คราวนี้กระบวนการจะดำเนินไปตามปกติ

helm upgrade my-app ./my-app

ป้องกันไม่ให้เกิดขึ้นครั้งถัดไป

การเพิ่ม --atomic ในการอัปเกรดจะช่วยหลีกเลี่ยงสถานะค้างได้ทั้งหมด หากการทำงานล้มเหลว ระบบจะย้อนกลับเองแทนที่จะปล่อยให้คุณติดอยู่ในสถานะนั้น

helm upgrade my-app ./my-app --atomic --timeout 5m

ตรวจสอบอย่างรวดเร็ว

รีลีสอยู่ในสถานะรอการอัปเกรด คุณควรดำเนินการใดเป็นอันดับแรกเพื่อกู้คืนอย่างปลอดภัยที่สุด

ทบทวน

ตอนนี้คุณสามารถกู้คืนรีลีสที่ค้างได้แล้ว โดยตรวจสอบสถานะรอดำเนินการ ใช้ คำสั่งย้อนกลับของเฮล์ม ไปยังการแก้ไขที่ใช้งานได้ หรือลบข้อมูลลับของรีลีสที่ล้มเหลว ใช้ --atomic เพื่อป้องกันปัญหานี้ 🚀

คำถามที่พบบ่อย

บทเรียน “การหลุดจากสถานะ pending-upgrade และสถานะค้าง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การหลุดจากสถานะ pending-upgrade และสถานะค้าง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การหลุดจากสถานะ pending-upgrade และสถานะค้าง”

การกู้คืนรีลีสที่ติดขัดระหว่างการดำเนินการ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การหลุดจากสถานะ pending-upgrade และสถานะค้าง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การติดตามการเรนเดอร์ด้วย --debug และ --dry-run
  2. การอ่าน Manifest ด้วย helm get all
  3. การหลุดจากสถานะ pending-upgrade และสถานะค้าง
  4. สร้างแผนภูมิแอปพลิเคชันสำหรับ Production ตั้งแต่ต้นจนจบ
← กลับไปที่ DevOps Bootcamp