CLOUD PAAS / CONTAINERS

ปรับใช้คอนเทนเนอร์อีกครั้ง

คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ 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 ที่ต้องการ (สำหรับการอัปเดตคอนเทนเนอร์ทั้งหมดในครั้งเดียว)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  • เลือกปุ่มการเปลี่ยนแปลงโทโพโลยีสภาพแวดล้อมเพื่อปรับเปลี่ยน environment เดิมที่มีอยู่
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  • คลิกไอคอนดินสอเพื่อเปลี่ยน Tag version สำหรับคอนเทนเนอร์ของคุณ
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

นอกจากนี้คุณสามารถปรับเปลี่ยนตัวเลือกเพิ่มเติมได้:

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

หลังจากกำหนดค่าทั้งหมดแล้วให้คลิกปุ่มปรับใช้ใหม่และกดปุ่มยืนยันใช่

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ในตอนนี้คุณรู้วิธี 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) (ไม่บังคับ)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS


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

1. การ redeploy layer ของคอนเทนเนอร์ทั้งหมด

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ดังนี้:

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

2. อัปเดตคอนเทนเนอร์โดยเฉพาะ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ในตัวอย่างนี้ควรแทนค่า {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 และสำหรับการโต้ตอบกับคอนเทนเนอร์อื่น

นอกจากนี้คุณสามารถคลิกที่นี่เพื่อดูไฟล์ stack ที่แตกต่างกันโดยเฉพาะของ redeploy.conf สำหรับ node แต่ละประเภท

การเก็บรักษาลิสเริ่มต้นของการกำหนดค่าไว้ สามารถเพิ่มเติมร่วมกับไฟล์และโฟลเดอร์ที่กำหนดเองของคุณโดยเปิดไฟล์ปรับใช้ใหม่.confและเพิ่มชื่อ path ไปยังรายการที่คุณต้องการ (แต่ละรายการควรระบุแยกบรรทัดกัน)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
อย่าลืม Save ไฟล์เมื่อมีการเปลี่ยนแปลง

การสร้างสำเนาสำรองไฟล์เมื่อมีการปรับใช้อิมเมจใหม่

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

ในส่วนของการสำรองข้อมูล คุณจะต้องระบุ path ไปยังไฟล์ที่จำเป็น redeploy.conf จากนั้นเพิ่มคำนำหน้าไฟล์ “backup:” เพื่อบันทึก:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุ:การดำเนินการนี้พร้อมใช้งานสำหรับไฟล์เท่านั้น (ไม่ใช่ที่จัดเก็บไฟล์ไดเรกทอรี)

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

ยกตัวอย่างเช่น การจัดการ PHP application servers ของ Ruk-Com Cloud ทั้งหมดเพื่อสร้างการสำรองข้อมูล /etc/php.ini กำหนดค่า.

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS


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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุ:การสำรองไฟล์ {file_name} ใหม่จะแทนที่ข้อมูลสำรองก่อนหน้าโดยอัตโนมัติ (ไฟล์ชื่อเดิมที่มีอยู่) ในระหว่างการ redeploy


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