ຟັງຊັນການຈັດການ Container (Docker) Volumes ທີ່ອະນຸຍາດໃຫ້ສ້າງບ່ອນເກັບຂໍ້ມູນໃນເຄື່ອງແບບຖາວອນໂດຍການອອກແບບນີ້ຈະບໍ່ສົ່ງຜົນກະທົບກັບການດໍາເນີນການຕ່າງໆລະຫວ່າງວົງຈອນຄອນເທັນເນີ ການສ້າງ storage ດັ່ງກ່າວເພື່ອໃຫ້ແນ່ໃຈວ່າບ່ອນເກັບຂໍ້ມູນມີຄວາມສົມບູນລະດັບສູງ ແລະ ປ້ອງກັນຂໍ້ມູນສູນເສຍ
ການນໍາໃຊ້ CLI ທ່ານສາມາດເຮັດໄດ້ສອງວິທີ:
ການຕັ້ງຄ່າ Volumes ຜ່ານ Environment Topology
ວິທີທໍາອິດໃນການສ້າງ volume container ເຮົາພິຈາລະນາການສ້າງ environment ໃຫ້ຖືກຕ້ອງ(ຫຼືເມື່ອປ່ຽນໂທໂພໂລຢີ) ດັ່ງນັ້ນໃນການຕັ້ງຄ່າທີ່ຈະເກັບຄອນເທັນເນີໃນເຄື່ອງ ທ່ານສາມາດໃຊ້ພາຣາມິເຕີຕໍ່ໄປນີ້ໃນຂະນະທີ່ດໍາເນີນການຕາມ CLI method:
- volumes – ກໍານົດລາຍການ volume ໃນເຄື່ອງຂອງທ່ານ
- volumeMounts – ອະນຸຍາດໃຫ້ກໍານົດຄ່າ mount points
- volumesFrom – ນໍາເຂົ້າ volume ທີ່ມີຢູ່ຈາກໂໜດໃນບັນຊີທ່ານ
1. ພາຣາມິເຕີທັງໝົດຈະຖືກປະກາດໄວ້ພາຍໃນສ່ວນຂອງ docker ທີ່ເໝາະສົມຕົວຢ່າງພາຣາມິເຕີທໍາອິດຄວນຕັ້ງຄ່າດັ່ງນີ້:
... "docker":{... "volumes": ["{local_volume}", "{local_volume}", ...]}
ໃນທີ່ນີ້ {local_volume} ເປັນຊ່ອງຂໍ້ຄວາມສໍາລັບຕໍາແໜ່ງ path volume ຂອງທ່ານເຊິ່ງຄວນວາງໄວ້ພາຍໃນຄອນເທັນເນີ ທ່ານສາມາດລະບຸຫຼາຍ volume ພ້ອມກັນໄດ້ໂດຍໃຊ້ຕົວຂັ້ນຈຸລະພາກ
ຕົວຢ່າງໃນຮູບພາບຂ້າງເທິງເຮົາສ້າງ environment ດ້ວຍ image jelastic/haproxy ແລະແນບ volume ໃນເຄື່ອງ 2 ຊຸດໄດ້ແກ່: /my_volume_1 ແລະ /my_volume_2
2. ລະບຸພາຣາມິເຕີ volumeMounts ດ້ວຍຄໍາສັ່ງຕໍ່ໄປນີ້:
... "docker":{... "volumeMounts" : {"{local_path}" : {"sourcePath" : "{remote_path}", "sourceNodeId" : "{node_ID}", "readOnly" : {true/false}}, ...}}
ໂດຍທີ່:
- {local_path} – path ໄປທີ່ໂຟລເດີພາຍໃນໂໜດຂອງ environment ທີ່ລະບຸເນື້ອຫາທີ່ຈະ mount ຄວນວາງໄວ້ທີ່ນີ້
- {remote_path} – ຕໍາແໜ່ງໄດເຣັກທໍຣີທີ່ຕ້ອງການໃນຄອນເທັນເນີໄລຍະໄກ (ເຊັ່ນ ທີ່ຢູ່ຂອງຂໍ້ມູນຕົ້ນທາງ)
- {node_ID} – ຕົວລະບຸໂໜດສະເພາະຂໍ້ມູນຂອງທ່ານທີ່ຈະ mount
ໝາຍເຫດ: ທ່ານສາມາດໃຊ້ພາຣາມິເຕີ “sourceNodeId” ແທນໄດ້:
“sourceNodeGroup” – ກໍານົດ environment layer ເຊິ່ງໂໜດຫຼັກຈະໃຊ້ເປັນແຫຼ່ງຂໍ້ມູນສໍາລັບການດໍາເນີນການ mount
“sourceHost” – IP ພາຍນອກ ຫຼື ຊື່ໂດເມນທີ່ກໍານົດເອງຂອງເຊີບເວີທີ່ເກັບຮັກສາຂໍ້ມູນ(ລວມເຖິງຊື່ພາຍນອກ)
- {true/false} – ຄ່າທີ່ເໝາະສົມສໍາລັບການກໍານົດສິດ read only ຫຼື read & write ສໍາລັບໂໜດ client ໃນຂະນະທີ່ດໍາເນີນການຕິດຕັ້ງຂໍ້ມູນ (false ໂດຍຄ່າເລີ່ມຕົ້ນ)
- {local_volume} – ລາຍການ volume ທີ່ຈະ mount (ຫາກບໍ່ລະບຸຈະຖືກຄັດລອກທັງໝົດ)
ຍົກຕົວຢ່າງຄໍາສັ່ງໃນພາບຂ້າງເທິງ ເຮົາຕິດຕັ້ງຂໍ້ມູນຈາກໂໜດ 111109 ຂອງບັນຊີທີ່ໃຊ້
3. ພາຣາມິເຕີສຸດທ້າຍvolumesFrom ທ່ານສາມາດໃຊ້ຄໍາສັ່ງນີ້ເພື່ອ mount volumes ທີ່ມີຢູ່ທັງໝົດຈາກໂໜດໜຶ່ງໄປອີກໂໜດໜຶ່ງ ( ເຊັ່ນຄັດລອກ) ຕົວຢ່າງເຊັ່ນ:
... "docker":{... "volumesFrom":[{"sourceNodeId" : "{node_ID}", "readOnly" : {true/false}, "volumes" : ["{local_volume}", "{local_volume}", ...]}]}
ໂດຍທີ່:
- {node_ID} – ຕົວລະບຸໂໜດສະເພາະຂໍ້ມູນຂອງທ່ານທີ່ຈະ mount
ໝາຍເຫດ: ອີກທາງເລືອກໜຶ່ງທ່ານສາມາດໃຊ້“sourceNodeGroup” ເພື່ອກໍານົດ environment layer ເຊິ່ງຈະໃຊ້ໂໜດເປັນຫຼັກແຫຼ່ງຂໍ້ມູນສໍາລັບການດໍາເນີນການ mount
- {true/false} – ຄ່າທີ່ເໝາະສົມສໍາລັບການກໍານົດສິດ read only ຫຼື read & write ສໍາລັບໂໜດ client ໃນຂະນະທີ່ດໍາເນີນການຕິດຕັ້ງຂໍ້ມູນ (false ໂດຍຄ່າເລີ່ມຕົ້ນ)
- {local_volume} – ລາຍການ volume ທີ່ຈະ mount (ຫາກບໍ່ລະບຸຈະຖືກຄັດລອກທັງໝົດ)
ຄໍາສັ່ງໃນພາບຂ້າງເທິງເຮົາໄດ້ເພີ່ມເລເຢີ Docker images jelastic/tomcat8 ແລະ mount volumes ກັບໂໜດ jelastic/haproxy ที่ທີ່ມີຢູ່
ການຈັດການ Volumes ໂດຍກົງ
ເຮົາໄດ້ຈັດກຽມວິທີ CLI ທີ່ພັດທະນາຂຶ້ນເປັນພິເສດສໍາລັບການຈັດການ volume ເຊິ່ງຈະບໍ່ສົ່ງຜົນກະທົບຕໍ່ environment topology:
1. ຄໍາສັ່ງທໍາອິດຄື AddContainerVolume ຊ່ວຍໃຫ້ທ່ານເພີ່ມ volume ໃໝ່ພາຍໃນ environment ທີ່ມີຢູ່
~/jelastic/environment/control/addcontainervolume --envName {env_name} --nodeId {node_ID} --path {path}
ໂດຍທີ່:
- {env_name} – ຊື່ໂດເມນສໍາລັບ environment ທີ່ທ່ານຕ້ອງການແກ້ໄຂ
- {node_ID} -ID ທີ່ລະບຸໂໜດສະເພາະ environment ທີ່ເລືອກ ຄວນເພີ່ມລົງໄປໃນ container volume
- {path} – ເສັ້ນທາງໃນລະບົບໄຟລໃນເຄື່ອງຂອງທ່ານໄປທີ່ໄດເຣັກທໍຣີ volume
2. ຂະບວນການລົບນັ້ນຄ້າຍຄືກັບຂະບວນການເພີ່ມທີ່ອະທິບາຍໄວ້ດ້ານເທິງເຊິ່ງໃຊ້ພາຣາມິເຕີດຽວກັນ:
~/jelastic/environment/control/removecontainervolume --envName {env_name} --nodeId {node_ID} --path {path}
3. ໃນກໍລະນີທີ່ທ່ານຕ້ອງການເພີ່ມ volume ຫຼາຍກວ່າໜຶ່ງໂໜດ ຄວນໃຊ້ວິທີAddContainerVolumeByGroup ຈະເໝາະສົມກວ່າສໍາລັບເພີ່ມ environment layer ທັງໝົດໃນເທື່ອດຽວ
~/jelastic/environment/control/addcontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}
ໃນທີ່ນີ້ພາຣາມິເຕີ {node_group} ອະນຸຍາດໃຫ້ກໍານົດເລເຢີໃນ environment ປະຈຸບັນ (ເຊັ່ນ cp, bl, storage …) ເຊິ່ງໂໜດທັງໝົດຄວນແກ້ໄຂ volume ໃໝ່
4. ທ່ານສາມາດດໍາເນີນການລົບ volumes ສໍາລັບເລເຢີທັງໝົດໄດ້ດ້ວຍຄໍາສັ່ງດຽວ:
~/jelastic/environment/control/removecontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}
ເມື່ອທ່ານໃຊ້ວິທີດັ່ງກ່າວ ທ່ານສາມາດຄວບຕຸມປະລິມານຄອນເທັນເນີຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍ ແລະ ຈັດການໄດ້ພາຍໃນເວລາບໍ່ເທົ່າໃດນາທີ ໃນກໍລະນີທີ່ທ່ານຕ້ອງການເພີ່ມ Mount Points ຄວບຄູ່ໄປກັບ volume ທ່ານສາມາດຄລິກທີ່ລິ້ງເພື່ອເບິ່ງຄໍາແນະນໍາເພີ່ມເຕີມ