ปรับใช้คอนเทนเนอร์อีกครั้ง
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน ปรับใช้คอนเทนเนอร์อีกครั้ง บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
โซลูชันส่วนใหญ่ของ Docker (รวมถึงกองที่จัดการโดย Ruk-Com Cloud) ได้รับการพัฒนาผลิตภัณฑ์เป็นเวอร์ชันใหม่และการแก้ไขอย่างต่อเนื่อง ดังนั้นเราจึงแนะนำให้คุณอัปเดตเทมเพลตเป็นประจำตามเวอร์ชันล่าสุด
การดำเนินการดังกล่าว เรียกว่า "ปรับใช้ใหม่"เมื่อมีการจัดการบนแพลตฟอร์มจะมีข้อมูลจำเพาะดังต่อไปนี้:
- ข้อมูลผู้ใช้งานแบบกำหนดเองและไฟล์ที่ละเอียดอ่อนในระบบจะถูกเก็บรักษาไว้ในระหว่างการอัปเดต:
- เนื้อหาของไดรฟ์ข้อมูล เล่ม(ค่าเริ่มต้นและแบบกำหนดเอง)
- ลิสไฟล์ใน/etc/jelastic/redeploy.conf(การกำหนดค่าเฉพาะของสแต็ก Ruk-Com Cloud) เพื่อรับรองว่าคอนเทนเนอร์สามารถใช้งานได้
- การกำหนดค่าที่เกี่ยวข้องกับAutoFS และ NFS(/etc/autofs.jelastic, /etc/auto.master, /etc/exports)
- การกำหนดค่าไฟร์วอลล์(/etc/sysกำหนดค่า/iptables-กำหนดเอง, /etc/sysกำหนดค่า/iptables4-jelastic, /etc/sysกำหนดค่า/iptables6-jelastic, /etc/iptables/rules.v4)
- การเข้าถึงข้อมูลสสส (/root/.ssh/authorized_keys, /root/.ssh/authorized_keys2, /root/.ssh/id_rsa)
- การกำหนดค่าแบบกำหนดเองที่ระบุไว้ก่อนหน้านี้ทั้งหมดจะไม่ได้รับผลกระทบ เช่น run commands, links, variables และอื่นๆ
- หากใช้งานกับหลายๆ instances (ปรับขนาดแบบแนวนอน) สามารถดำเนินการอัปเดตคอนเทนเนอร์ได้ทีละรายการ โดยไม่หยุดทำงาน (downtime)
ด้วยวิธีนี้คุณสามารถอัปเดต Docker-based container เป็นเวอร์ชันใหม่ได้ โดยจะไม่ส่งผลกระทบต่อแอปพลิเคชันภายในด้วย Ruk-Com Cloud PaaS การ redeploy คอนเทนเนอร์ใหม่สามารถทำได้ง่าย เพียงไม่กี่ขั้นตอน เช่นคลิกผ่าน dashboard UI หรือทำงานอัตโนมัติ ผ่าน API
หมายเหตุ:
การทำงานร่วมกับ MySQL, MariaDB, หรือ Percona databases จะไม่รองรับการ downgrade (การ redeploy เป็นเวอร์ชันที่เก่ากว่า) แต่หากจำเป็นต้องดำเนินการ เราขอแนะนำให้สำรองข้อมูลและกู้ database คืนหลังจากการ redeploy (หรือในคอนเทนเนอร์ที่แยกออกจากกันทั้งหมด)
อัปเดตคอนเทนเนอร์ผ่านแดชบอร์ด
วิธีที่ใช้งานง่ายที่สุดสำหรับการติดตั้งแท็กเทมเพลตใหม่ (redeploy) คือการใช้ Ruk-Com Cloud Dashboard ตามคำแนะนำและขั้นตอนที่จำเป็นดังต่อไปนี้:
1. การปรับการใช้งานใหม่สามารถเข้าถึงได้ 2 วิธีที่แตกต่างกัน:
- เลือกปุ่ม Redeploy Container(s) จาก node/layer ที่ต้องการ (สำหรับการอัปเดตคอนเทนเนอร์ทั้งหมดในครั้งเดียว)

- เลือกปุ่มการเปลี่ยนแปลงโทโพโลยีสภาพแวดล้อมเพื่อปรับเปลี่ยน environment เดิมที่มีอยู่

- คลิกไอคอนดินสอเพื่อเปลี่ยน Tag version สำหรับคอนเทนเนอร์ของคุณ

นอกจากนี้คุณสามารถปรับเปลี่ยนตัวเลือกเพิ่มเติมได้:
- เก็บข้อมูล volumes - หากเปิดใช้งานฐานข้อมูลใน volumes จะได้รับการป้องกันจากการลบและจะยังคงพร้อมใช้งานหลังจาก redeploy
- สำหรับคอนเทนเนอร์แบบ horizontal คุณสามารถเลือกได้ 2 ตัวเลือก:
- การปรับใช้พร้อมกัน- redeploy nodes ทั้งหมดในครั้งเดียว ซึ่งค่อนข้างเร็วกว่า แต่จะทำให้แอปพลิเคชันของคุณหยุดทำงานในระยะเวลาสั้นๆ (มี downtime)
- การปรับใช้ตามลำดับโดยมีความล่าช้า- redeploy instances ใหม่ทีละรายการ ซึ่งจะค่อนข้างช้า แต่ node ยังคงทำงานอยู่เพื่อรันคำขอที่เข้ามาอยู่เสมอ (ไม่มี downtime)
หลังจากกำหนดค่าทั้งหมดแล้วให้คลิกปุ่มปรับใช้ใหม่และกดปุ่มยืนยันใช่

3. หลังจากการอัปเดตเสร็จสิ้นคุณจะเห็นการแจ้งเตือนที่มุมบนขวาของ dashboard

คลิกปุ่มแสดงบันทึกเพื่อดูข้อมูลเกี่ยวกับคอนเทนเนอร์ที่อัปเดต Node ID, name:tag และ Duration

ในตอนนี้คุณรู้วิธี redeploy คอนเทนเนอร์ผ่าน Ruk-Com Cloud Dashboard แล้ว บทความต่อจากนี้คือวิธีการอัปเดตคอนเทนเนอร์ผ่าน Ruk-Com Cloud API/CS/CLI
อัปเดตคอนเทนเนอร์ผ่าน Ruk-Com Cloud API/CS/CLI
กระบวนการอัปเดตสามารถดำเนินการได้อัตโนมัติโดยใช้ Ruk-Com Cloud API, Cloud Scripting และ CLI (command-line interface)
เคล็ดลับ:ตัวอย่างข้อมูลโดยละเอียดเกี่ยวกับการ redeploy คอนเทนเนอร์ผ่านคลีไอ
การ redeploy คอนเทนเนอร์ใหม่จะดำเนินการกับวิธีสภาพแวดล้อมการควบคุม RedeployContainersซึ่งสามารถจัดการด้วยพารามิเตอร์ต่อไปนี้:
- envName- ชื่อของ environment ที่คอนเทนเนอร์ควรจะ redeploy
- เซสชัน- ระบุ session ของผู้ใช้งาน (หรือโทเค็น) เพื่อใช้สำหรับการพิสูจน์ตัวตน
- โหนดกรุ๊ป- ระบุชั้นสิ่งแวดล้อมที่ต้องการอัปเดต (ไม่บังคับ)
- รหัสโหนด- ระบุหมายเลขประจำตัวของคอนเทนเนอร์เฉพาะที่จะ redeploy (ไม่บังคับ)
คุณต้องระบุพารามิเตอร์โหนดกรุ๊ปหรือรหัสโหนด เพื่อกำหนดเป้าหมายของการดำเนินการ การละเว้น nodeGroup หากไม่ได้ระบุไว้อาจล้มเหลว
- แท็ก- เวอร์ชันของ image ที่จะติดตั้ง (deploy)
- ใช้ปริมาณที่มีอยู่- ตั้งค่าเป็น true เพื่อเก็บข้อมูลไว้ใน volumes ที่อยู่ภายในคอนเทนเนอร์ที่อัปเดตแล้ว (ไม่บังคับ)
- เข้าสู่ระบบ และ password- ข้อมูลรับรองการเข้าถึง image จาก private registry (ไม่บังคับ)
- ข้ามติดตั้งใหม่- กำหนดว่าควรแตก image บนระบบไฟล์ที่มีอยู่ (true) หรือติดตั้งกับอินสแตนซ์ใหม่ (ค่าเริ่มต้น false) (ไม่บังคับ)

คุณสามารถใช้โครงสร้างต่อไปนี้เพื่อกำหนดการอัปเดตคอนเทนเนอร์ภายในสคริปต์อัตโนมัติ:
1. การ redeploy layer ของคอนเทนเนอร์ทั้งหมด

ดังนี้:
- {กลุ่มโหนด}-environment layer (หรือ node group)ที่ควรอัปเดตทั้งหมด
- {รูปภาพของฉัน}- ชื่อของ image ที่ต้องการจะ deploy
- {แท็กใหม่}- เวอร์ชันของ Image ที่ต้องการ
2. อัปเดตคอนเทนเนอร์โดยเฉพาะ

ในตัวอย่างนี้ควรแทนค่า {nodeId} ด้วยเลข ID ของ node ที่ต้องการ (ส่วนของตัวอื่นๆเหมือนกับตัวอย่างด้านบน)
การบันทึกข้อมูลที่กำหนดเองในระหว่างการปรับใช้คอนเทนเนอร์อีกครั้ง
ในแต่ละคอนเทนเนอร์ที่จัดการโดย Ruk-Com Cloud จะมีไฟล์พิเศษชื่อว่าปรับใช้ใหม่.confซึ่งจะจัดเก็บลิสที่จำเป็นของคอนเทนเนอร์ โดยการตั้งค่าเหล่านี้จะถูกเก็บรักษาไว้ในแพลตฟอร์มโดยอัตโนมัติในระหว่างการ redeploy คอนเทนเนอร์ ด้วยเหตุนี้ไฟล์ทั่วไปบางไฟล์จะถูกจัดเตรียมไว้ใน stacks ทั้งหมด:
- /etc/jelastic/redeploy.conf- การกำหนดค่า redeploy ในปัจจุบัน (เพื่อจัดเก็บรายการที่จำเป็นสำหรับการบันทึกไฟล์และที่เก็บรวบรวมไฟล์ต่างๆ ระหว่างการติดตั้งคอนเทนเนอร์ใหม่แต่ละครั้ง)
- ${home}/.bash_profile- ประกอบด้วยการตั้งค่า SSH shell เริ่มต้น (เช่นข้อความแนะนำ shell, การ กำหนดค่า ไฟล์ที่จำเป็นจะต้องดึงข้อมูล ฯลฯ)
- /etc/sysกำหนดค่า/iptables- จัดเก็บกฏของ firewall เริ่มต้น
- /etc/sysกำหนดค่า/iptables-custom.php- ประกอบด้วยกฏของfirewall ที่กำหนดเอง
- /var/lib/jelastic/keys- จัดเก็บ SSH private keys ที่อัปโหลดซึ่งจำเป็นต่อการเข้าถึงคอนเทนเนอร์ผ่าน SSH และสำหรับการโต้ตอบกับคอนเทนเนอร์อื่น
การเก็บรักษาลิสเริ่มต้นของการกำหนดค่าไว้ สามารถเพิ่มเติมร่วมกับไฟล์และโฟลเดอร์ที่กำหนดเองของคุณโดยเปิดไฟล์ปรับใช้ใหม่.confและเพิ่มชื่อ path ไปยังรายการที่คุณต้องการ (แต่ละรายการควรระบุแยกบรรทัดกัน)

การสร้างสำเนาสำรองไฟล์เมื่อมีการปรับใช้อิมเมจใหม่
Ruk-Com Cloud PaaS จัดเตรียมวิธีที่ง่ายและสะดวกในการสำรองข้อมูลสำหรับ กำหนดค่าuration files ในระหว่างที่อัปเดตคอนเทนเนอร์ กล่าวคือ นอกเหนือจากการแทนที่การกำหนดค่าที่ระบุเวอร์ชันจาก tag ใหม่แล้วสำเนาของไฟล์ก่อน redeploy จะถูกเก็บรักษาไว้
ในส่วนของการสำรองข้อมูล คุณจะต้องระบุ path ไปยังไฟล์ที่จำเป็น redeploy.conf จากนั้นเพิ่มคำนำหน้าไฟล์ “backup:” เพื่อบันทึก:

หมายเหตุ:การดำเนินการนี้พร้อมใช้งานสำหรับไฟล์เท่านั้น (ไม่ใช่ที่จัดเก็บไฟล์ไดเรกทอรี)
หลังจาก redeploy การกำหนดค่าจากคอนเทนเนอร์เก่าสามารถจำแนกได้โดยค้นหาจากส่วนขยาย".สำรองข้อมูล"ซึ่งสามารถใช้สำหรับการย้อนกลับได้ทันที หากไม่สามารถเข้ากันได้กับการกำหนดค่าใหม่หรือการวิเคราะห์การเปลี่ยนแปลง
ยกตัวอย่างเช่น การจัดการ PHP application servers ของ Ruk-Com Cloud ทั้งหมดเพื่อสร้างการสำรองข้อมูล /etc/php.ini กำหนดค่า.

หลังจากอัปเดตคอนเทนเนอร์คุณจะเห็นไฟล์ php.ini เวอร์ชันใหม่และเวอร์ชันก่อนหน้า

หมายเหตุ:การสำรองไฟล์ {file_name} ใหม่จะแทนที่ข้อมูลสำรองก่อนหน้าโดยอัตโนมัติ (ไฟล์ชื่อเดิมที่มีอยู่) ในระหว่างการ redeploy
ด้วยวิธีนี้คุณสามารถเปลี่ยนไปใช้การตั้งค่าก่อนหน้านี้ได้อย่างง่ายดายโดยแทนที่ไฟล์ php.ini ด้วยการสำรองข้อมูล (เช่นการเปลี่ยนชื่อไฟล์หรือการคัดลอกเนื้อหา) ตอนนี้คุณก็ได้รู้วิธีจัดการ templates versions (Docker tags) ของคอนเทนเนอร์ภายใน Ruk-Com Cloud PaaS แล้วติดตั้ง