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