ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / DEVELOPMENT TOOLS

บทช่วยสอน 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 คุณสามารถคลิกที่ลิงก์เพื่อดูคำแนะนำเพิ่มเติม