บทช่วยสอน CLI: วอลุ่มคอนเทนเนอร์
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน บทช่วยสอน CLI: วอลุ่มคอนเทนเนอร์ บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ฟังก์ชันการจัดการContainer Volume (Docker)ที่อนุญาตให้สร้างที่เก็บข้อมูลในเครื่องแบบถาวรโดยการออกแบบนี้จะไม่ส่งผลกระทบกับการดำเนินการต่างๆระหว่างวงจรของคอนเทนเนอร์ การสร้าง storage ดังกล่าวเพื่อให้แน่ใจว่าที่เก็บมีความสมบูรณ์ระดับสูงและป้องกันข้อมูลสูญหาย
การใช้งาน CLI คุณสามารถทำได้สองวิธี:
การตั้งค่า Volumes ผ่าน Environment Topology
วิธีแรกในการสร้าง volume container เราจะพิจารณาการสร้าง environmentให้ถูกต้อง (หรือเมื่อเปลี่ยนโทโพโลยี) ดังนั้นในการตั้งค่าที่จัดเก็บคอนเทนเนอร์ในเครื่อง คุณสามารถใช้พารามิเตอร์ต่อไปนี้ในขณะที่ดำเนินการตาม CLI method:
- เล่ม- กำหนดรายการ volume ในเครื่องคุณ
- Volume Mounts- อนุญาตให้กำหนดค่า mount points
- Volumes From- นำเข้า volume ที่มีอยู่จากโหนดในบัญชีคุณ
1. พารามิเตอร์ทั้งหมดจะถูกประกาศไว้ภายในส่วนของ docker ที่เหมาะสม ตัวอย่างพารามิเตอร์แรกควรตั้งค่าดังนี้:
... "docker":{... "volumes": ["{local_volume}", "{local_volume}", ...]}
ในตัวอย่างนี้{local_volume}เป็นช่องข้อความสำหรับตำแหน่ง path volume ของคุณซึ่งควรภายวางไว้ในคอนเทนเนอร์ คุณสามารถระบุหลาย volume พร้อมกันได้โดยใช้ตัวคั่นจุลภาค
ตัวอย่างในรูปภาพด้านบนเราสร้าง environment ด้วย imageJelastic/ฮาพรอกซีและแนบ volume ในเครื่อง 2 ชุดได้แก่:/my_volume_1และ/my_volume_2
2. ระบุพารามิเตอร์Volume Mountsด้วยคำสั่งต่อไปนี้:
... "docker":{... "volumeMounts" : {"{local_path}" : {"sourcePath" : "{remote_path}", "sourceNodeId" : "{node_ID}", "readOnly" : {true/false}}, ...}}
โดยที่:
- {local_path}- path ไปยังโฟลเดอร์ภายในโหนดของ environment ที่ระบุ เนื้อหาที่จะ mount ควรวางไว้ที่นี่
- {ระยะไกล_เส้นทาง}- ตำแหน่งไดเรกทอรีที่ต้องการในคอนเทนเนอร์ระยะไกล (เช่น ที่อยู่ของข้อมูลต้นทาง)
- {โหนด_ID}- ตัวระบุโหนดเฉพาะข้อมูลของคุณที่จะ mount
หมายเหตุ:คุณสามารถใช้พารามิเตอร์“รหัสต้นทาง”แทนได้:
“sourceNodeGroup”- กำหนด environment layer ซึ่งโหนดหลักจะใช้เป็นแหล่งข้อมูลสำหรับการดำเนินการ mount
“ซอร์สโฮสต์”- IP ภายนอกหรือชื่อโดเมนที่กำหนดเองของเซิร์ฟเวอร์ที่จัดเก็บข้อมูล (รวมถึงชื่อภายนอก)
- {จริง/เท็จ}- ค่าที่เหมาะสมสำหรับการกำหนดสิทธิ์อ่านอย่างเดียวหรืออ่านและเขียนสำหรับโหนด client ในขณะที่ดำเนินการติดตั้งข้อมูล (false โดยค่าเริ่มต้น)
- {local_volume}- รายการ volume ที่จะ mount (หากไม่ระบุจะถูกคัดลอกทั้งหมด)
ยกตัวอย่างคำสั่งในภาพด้านบน เราติดตั้งข้อมูลจากโหนด111109ของบัญชีที่ใช้
3. พารามิเตอร์สุดท้ายVolumes Fromคุณสามารถใช้คำสั่งนี้เพื่อ mount volumes ที่มีอยู่ทั้งหมดจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง (เช่นคัดลอก) ตัวอย่างเช่น:
... "docker":{... "volumesFrom":[{"sourceNodeId" : "{node_ID}", "readOnly" : {true/false}, "volumes" : ["{local_volume}", "{local_volume}", ...]}]}
โดยที่:
- {โหนด_ID}- ตัวระบุโหนดเฉพาะข้อมูลของคุณที่จะ mount
หมายเหตุ:อีกทางเลือกหนึ่งคุณสามารถใช้ “แหล่งที่มาNodeGroup” เพื่อกำหนด environment layer ซึ่งจะใช้โหนดหลักเป็นแหล่งข้อมูลสำหรับการดำเนินการ mount
- {จริง/เท็จ}- ค่าที่เหมาะสมสำหรับการกำหนดสิทธิ์อ่านอย่างเดียวหรืออ่านและเขียนสำหรับโหนด client ในขณะที่ดำเนินการติดตั้งข้อมูล (false โดยค่าเริ่มต้น)
- {local_volume}- รายการ volume ที่จะ mount (หากไม่ระบุจะถูกคัดลอกทั้งหมด)
คำสั่งในภาพด้านบนเราได้เพิ่มเลเยอร์ใหม่ Docker imagesJelastic/tomcat8และ mount volumes กับโหนดJelastic/ฮาพรอกซีที่มีอยู่
การจัดการ Volumes โดยตรง
เราได้จัดเตรียมวิธี CLI ที่พัฒนาขึ้นเป็นพิเศษสำหรับการจัดการ volume ซึ่งจะไม่ส่งผลกระทบต่อ environment topology:
1. คำสั่งแรกคือเพิ่มคอนเทนเนอร์ปริมาตรช่วยให้คุณเพิ่ม volume ใหม่ภายใน environment ที่มีอยู่
~/jelastic/environment/control/addcontainervolume --envName {env_name} --nodeId {node_ID} --path {path}
โดยที่:
- {env_name}- ชื่อโดเมนสำหรับ environment ที่คุณต้งการแก้ไข
- {โหนด_ID}-ID ที่ระบุโหนดเฉพาะ environment ที่เลือก ควรเพิ่มลงไปใน container volume
- {เส้นทาง}- เส้นทางในระบบไฟล์ในเครื่องของคุณไปยังไดเร็กทอรี volume
2. กระบวนการลบนั้นคล้ายกับกระบวนการเพิ่มที่อธิบายไว้ด้านบนซึ่งใช้พารามิเตอร์เดียวกัน:
~/jelastic/environment/control/removecontainervolume --envName {env_name} --nodeId {node_ID} --path {path}
3. ในกรณีที่คุณต้องการเพิ่ม volume มากกว่าหนึ่งโหนด ควรใช้วิธีเพิ่มคอนเทนเนอร์VolumeByGroupจะเหมาะสมกว่าสำหรับเพิ่ม environment layer ทั้งหมดในคราวเดียว
~/jelastic/environment/control/addcontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}
ในตัวอย่างนี้พารามิเตอร์{โหนด_กลุ่ม}อนุญาตให้กำหนดเลเยอร์ใน environment ปัจจุบัน (เช่น cp, bl, storage ฯลฯ) ซึ่งโหนดทั้งหมดควรแก้ไข volume ใหม่
4. คุณสามารถดำเนินการลบ volumes สำหรับเลเยอร์ทั้งหมดได้ด้วยคำสั่งเดียว:
~/jelastic/environment/control/removecontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}
เมื่อคุณใช้วิธีดังกล่าว คุณสามารถควบคุมContainer Volumeของคุณได้อย่างง่ายดายและจัดการได้ภายในเวลาไม่กี่นาที ในกรณีที่คุณต้องการเพิ่มเมานต์พอยต์ควบคู่ไปกับ volume คุณสามารถคลิกที่ลิงก์เพื่อดูคำแนะนำเพิ่มเติม