การเข้าถึง SSH ไปยังคอนเทนเนอร์: จัดการเซิร์ฟเวอร์ของคุณจากระยะไกล
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน การเข้าถึง SSH ไปยังคอนเทนเนอร์: จัดการเซิร์ฟเวอร์ของคุณจากระยะไกล บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
รักคอม คลาวด์ แพลตฟอร์มอนุญาตให้คุณเข้าถึงคอนเทนเนอร์ภายในบัญชีของคุณผ่าน SSH ได้อย่างสะดวก โดยสามารถเลือกใช้งานได้ 2 วิธีหลัก:
- wp:รายการรายการ
- เว็บ SSH- คุณสามารถคลิกปุ่มเว็บ SSHที่อยู่ถัดจาก Environment หรือคอนเทนเนอร์ที่ต้องการ เพื่อเปิด Terminal แบบออนไลน์ผ่านเว็บเบราว์เซอร์ได้ทันที เทอร์มินัลจะปรากฏขึ้นที่ด้านล่างของหน้าแดชบอร์ด ช่วยให้คุณจัดการเซิร์ฟเวอร์ได้อย่างรวดเร็วโดยไม่ต้องใช้โปรแกรมภายนอก

- wp:รายการรายการ
- ประตูเอสเอสเอช (ผ่าน Local SSH Client)- อีกวิธีในการเชื่อมต่อเซิร์ฟเวอร์ของคุณคือการใช้ SSH client จากเครื่องของคุณเอง (เช่น Terminal หรือโปรแกรมเช่น PuTTY) โดยใช้คู่คีย์ SSHที่ตั้งค่าไว้ล่วงหน้า:WP:รายการ wp:รายการรายการ
- เพิ่มกุญแจสาธารณะไปยังบัญชีของคุณผ่านหน้าแดชบอร์ด Ruk-Com Cloud /wp:list-item wp:รายการรายการ
- ใช้คีย์ส่วนตัวที่ตรงกันบนเครื่องของคุณสำหรับการเชื่อมต่อ
วิธีนี้เหมาะสำหรับผู้ที่ต้องการจัดการเซิร์ฟเวอร์ผ่านเครื่องส่วนตัว โดยไม่ต้องเปิดเบราว์เซอร์ /wp:list-item /wp:รายการ /wp:list-item

เมื่อคุณตั้งค่าข้อมูลที่จำเป็นทั้งหมดแล้ว คุณสามารถเชื่อมต่อผ่าน SSH ได้โดยใช้คำสั่งที่ปรากฏในกรอบสีแดงภายใต้แท็บการเข้าถึง SSHในบัญชีของคุณ
?️หมายเหตุ:
เพื่อความสะดวกและเข้าถึงได้รวดเร็ว บทความนี้จะเน้นการใช้งานผ่านเว็บ SSHเป็นหลัก
อย่างไรก็ตาม คำสั่งต่าง ๆ ที่แสดงด้านล่างนี้สามารถใช้ได้เช่นเดียวกันหากคุณเชื่อมต่อผ่าน SSH ด้วยโปรแกรมจากเครื่องของคุณ (Local SSH Client)
เคล็ดลับ:
สำหรับเซิร์ฟเวอร์ส่วนใหญ่ภายใน Ruk-Com Cloud PaaS (รวมถึงคอนเทนเนอร์ Docker แบบกำหนดเอง) คุณจะได้รับ สิทธิ์ root แบบเต็มโดยอัตโนมัติ เมื่อเชื่อมต่อผ่าน SSH
ส่วนโหนดที่เหลือซึ่งมักสร้างจาก Stack Templates ที่ผ่านการรับรองโดย Ruk-Com Cloud จะมีการจำกัดสิทธิ์บางประการ แต่ยังสามารถควบคุมและจัดการได้ในระดับที่เพียงพอผ่านชุดคำสั่งที่ระบบอนุญาตไว้เป็นพิเศษ
หากคุณต้องการดู รายการคำสั่งเทอร์มินัลทั้งหมดพร้อมคำอธิบายตัวเลือกต่างๆ สามารถเข้าไปดูเพิ่มเติมได้จากเว็บไซต์
ในคู่มือนี้ เราจะเน้นที่คำสั่งพื้นฐานทั่วไป เพื่อให้คุณเข้าใจหลักการทำงานและสามารถเริ่มต้นจัดการคอนเทนเนอร์ผ่าน SSH Protocol ได้อย่างมั่นใจ
การนำทางระบบไฟล์ภายในคอนเทนเนอร์ (ผ่าน SSH)
ส่วนนี้เหมาะสำหรับผู้เริ่มต้นใช้งาน โดยจะช่วยให้คุณเข้าใจพื้นฐานของการนำทางระบบไฟล์ภายในคอนเทนเนอร์ผ่าน SSH หากคุณมีประสบการณ์แล้ว อาจข้ามไปยังหัวข้อถัดไปที่เกี่ยวข้องกับการจัดการระดับสูงได้
เมื่อคุณเชื่อมต่อเข้าสู่คอนเทนเนอร์ผ่านคอนโซลสำเร็จแล้ว ระบบจะพาคุณไปยังโฮมไดเร็กทอรีของเซิร์ฟเวอร์โดยอัตโนมัติ ซึ่งมักเป็นตำแหน่งที่ใช้เก็บไฟล์ข้อมูลและการตั้งค่าต่าง ๆ
คำสั่งพื้นฐานสำหรับการนำทางโฟลเดอร์:
- wp:รายการรายการ
cd {directory_path}
เปลี่ยนไปยังไดเรกทอรีที่ระบุ ซึ่ง{directory_path}สามารถเป็น:WP:รายการ wp:รายการรายการ- โฟลเดอร์ย่อยในปัจจุบัน เช่น
cd logs /wp:list-item wp:รายการรายการ - โฟลเดอร์ซ้อนหลายระดับ เช่น
cd opt/tomcat /wp:list-item wp:รายการรายการ - เส้นทางแบบเต็ม (Absolute path) เช่น
cd /var/www/webroot/ROOT /wp:list-item /wp:รายการ /wp:list-item wp:รายการรายการ cd ..
ย้อนกลับไปยังโฟลเดอร์ระดับก่อนหน้าในโครงสร้างไฟล์ /wp:list-item wp:รายการรายการ cd ~
กลับไปยัง Home Directory ของผู้ใช้ทันที ไม่ว่าคุณจะอยู่ในโฟลเดอร์ใดก็ตาม /wp:list-item wp:รายการรายการ cd /
ไปยัง Root Directory ของคอนเทนเนอร์ (จุดเริ่มต้นของโครงสร้างไฟล์ทั้งหมด) /wp:list-item

คุณจะเห็นสตริงสีม่วงที่ข้างชื่อโฮสต์คอนเทนเนอร์จะเปลี่ยนไป ซึ่งบ่งบอกถึงตำแหน่งปัจจุบันของคุณ
เคล็ดลับ:หากคุณเพิ่งเริ่มใช้ stack runtime ที่รันอินสแตนซ์ของคุณ คุณควรสำรวจโครงสร้างภายในก่อน (เช่น แผนผังของไฟล์และไดเร็กทอรี ไฟล์การกำหนดค่าที่ใช้ได้ ฯลฯ) วิธีที่สะดวกที่สุดคือการใช้ตัวจัดการไฟล์GUI ในตัวซึ่งมีให้โดยคลิกที่ปุ่มการกำหนดค่าถัดจากเซิร์ฟเวอร์ที่ต้องการที่แผงควบคุมในหน้าแดชบอร์ด
คลิกปุ่ม“กำหนดค่า”ที่อยู่ถัดจากคอนเทนเนอร์นั้น ระบบจะเปิดหน้าจอตัวจัดการไฟล์ซึ่งคุณสามารถเรียกดูไฟล์/ไดเรกทอรี ลบ แก้ไข หรืออัปโหลดไฟล์ได้ทันที
1. ในการสร้างไฟล์หรือโฟลเดอร์ใหม่ให้รันคำสั่งถัดไป:
- wp:รายการรายการ
- แตะ [เส้นทางสู่/]{ไฟล์}-สร้างไฟล์ใหม่ /wp:list-item wp:รายการรายการ
- mkdir [เส้นทางสู่/]{dir}-สร้างโฟลเดอร์ใหม่
โดยที่
{ไฟล์}และ{ผบ.}- ชื่อไฟล์หรือโฟลเดอร์ที่ต้องการ (หากสร้างในไดเร็กทอรีปัจจุบัน)
[เส้นทางสู่/]- พารามิเตอร์ทางเลือก สำหรับกรณีนี้รายการใหม่ควรอยู่ในตำแหน่งอื่น

2. เพื่อให้แน่ใจว่าไฟล์และโฟลเดอร์ที่ระบุไว้ข้างต้นได้ถูกสร้างขึ้นแล้ว มาดูไฟล์และไดเร็กทอรีที่ตำแหน่งปัจจุบันโดยใช้คำสั่งนี้:
LS

3. คำสั่งทั่วไปที่ใช้สำหรับการจัดการไฟล์
- wp:รายการรายการ
- แมว- ใช้กับไฟล์ text; ขึ้นอยู่กับ args ที่ระบุ อนุญาตให้ดู, รวมเข้าด้วยกัน, ทำไฟล์ซ้ำ (ซ้ำกัน) /wp:list-item wp:รายการรายการ
- ซีพี- ใช้สำหรับคัดลอกไฟล์และไดเร็กทอรี /wp:list-item wp:รายการรายการ
- ค้นหา- ใช้สำหรับค้นหาไฟล์หรือไดเร็กทอรีที่ต้องการภายในเซิร์ฟเวอร์โดยใช้ชื่อ (หรือบางส่วน) /wp:list-item wp:รายการรายการ
- MV- ใช้สำหรับย้ายไฟล์หรือเปลี่ยนชื่อไฟล์และไดเร็กทอรี /wp:list-item wp:รายการรายการ
- นโยบายความเป็นส่วนตัว-ใช้สำหรับดูเส้นทางแบบเต็มไปยังไดเร็กทอรีปัจจุบัน (เทียบกับ root คอนเทนเนอร์) /wp:list-item wp:รายการรายการ
- RM-ใช้สำหรับลบไฟล์หรือไดเร็กทอรีที่ระบุ /wp:list-item
ตอนนี้มาดูความค่าเริ่มต้น shell เพื่อตรวจสอบการทำงานและจัดการเมตริกของโหนด การใช้ทรัพยากร กระบวนการการทำงานภายใน ฯลฯ
คำสั่งสำหรับการดูข้อมูลระบบเซิร์ฟเวอร์
1. การรับข้อมูลสรุปสั้นๆเกี่ยวกับสถานะคอนเทนเนอร์ปัจจุบันและตรวจสอบให้แน่ใจ เช่น ไม่มีตัวที่ทำให้เกิดผลต่อประสิทธิภาพหรือความสามารถในการดำเนินการผิดปกติ โดยใช้คำสั่งw:

คุณจะเห็นผลลัพธ์คือข้อมูลของระบบทั่วไป (คือ - เวลาระบบปัจจุบัน เวลาทำงานของอินสแตนซ์ จำนวนผู้ใช้ที่บันทึก และจำนวนเฉลี่ยของกระบวนการที่ใช้งานอยู่ในช่วง 1/5/15 นาทีที่ผ่านมา) และรายละเอียดเกี่ยวกับผู้ใช้ที่เชื่อมต่อด้านล่าง (ชื่อ, ประเภทเทอร์มินัล, IP การเชื่อมต่อต้นทาง, เวลาเข้าสู่ระบบ, สถิติเกี่ยวกับกิจกรรมล่าสุดและชื่อของกระบวนการที่ใช้งานอยู่ในปัจจุบัน)
เคล็ดลับ:ลักษณะเฉพาะของการใช้ Shell ตามเดิมนั้น คำสั่ง wจะไม่มีข้อมูลของผู้ใช้ที่เชื่อมต่อผ่าน terminal emulator
2. สถิติทั้งหมดเกี่ยวกับการใช้ RAM ของเซิร์ฟเวอร์ถูกเก็บไว้ในไฟล์ /proc/meminfo หากต้องการตรวจสอบเนื้อหาให้ใช้คำสั่ง cat:
แมว /proc/meminfo

คุณสามารถตรวจสอบข้อมูลต่างๆ เช่น หน่วยความจำที่จัดสรรทั้งหมด (MemTotal) หน่วยความจำที่ไม่ได้ใช้ (MemFree) หน่วยความจำที่ใช้เป็นแคช (แคช) และอื่นๆ
3. การแสดงข้อมูลพื้นฐานซอร์ฟแวร์และฮาร์ดแวร์คอนเทนเนอร์ ให้ดำเนินการตามคำสั่งต่อไปนี้:
อูนาเมะ -ก

คุณจะเห็นข้อมูลของ server kernel (ชื่อ, เวอร์ชัน, วันที่วางจำหน่าย) โหนดชื่อโฮสต์, ประเภท CPU, OS และอื่นๆ
วิธีการจัดการกระบวนการคอนเทนเนอร์ระยะไกลผ่านเทอร์มินอล
1. ในขณะที่เชื่อมต่อผ่าน SSH คุณสามารถตรวจสอบกระบวนการทำงานทั้งหมดภายในคอนเทนเนอร์ได้ด้วยคำสั่งด้านบน:

ข้อมูลจะอัปเดตอย่างต่อเนื่องในโหมดเรียลไทม์โดยแสดงข้อมูลเกี่ยวกับกระบวนการของผู้ใช้ทั้งหมด (รวมถึงกระบวนการของระบบ)
กด Ctrl + C เพื่อหยุดการดำเนินการคำสั่งและกลับสู่โหมด input console
2. หากต้องการแสดงเฉพาะกระบวนการที่ user ใช้งานอยู่ให้พิมพ์คำสั่งปล:

3. คำสั่งที่มีประโยชน์อีกคำสั่งหนึ่งคือฆ่าซึ่งอนุญาตให้ยุติกระบวนการทำงานใดๆที่กำหนดโดย{ปิด}เป็น argument (ตัวระบุกระบวนการที่จำเป็นสามารถพบได้ใน output ของคำสั่งก่อนหน้า):
ฆ่า {pid}

อย่างที่คุณเห็นกระบวนการรันที่แสดงบนหน้าจอในขั้นตอนที่ 2 ของส่วนนี้ได้หยุดลงเนื่องจากไม่ได้แสดงในรายการที่ใช้งานอยู่ตอนนี้
การเก็บไฟล์แอปพลิเคชันปฏิบัติการผ่าน SSH Console
คุณสามารถดาวน์โหลดไฟล์ที่ต้องการจากอินเตอร์เน็ตได้ (เช่น ไฟล์เก็บถาวรแอปพลิเคชันของคุณ) ผ่านคอนโซลเพื่อจัดเก็บหรือปรับใช้ไฟล์เหล่านั้นภายในเซิร์ฟเวอร์ของคุณในภายหลัง
1. คำสั่งตกลงอนุญาตให้ดาวน์โหลดไฟล์ตาม{ลิงค์}ที่ระบุ:
ตกลง {ลิงค์}

2. จากนั้นคุณสามารถเปิดเครื่องรูดไฟล์ถาวรที่ดาวน์โหลดโดยใช้คำสั่ง:
เปิดเครื่องรูด {เก็บถาวร}
โดยที่{เก็บถาวร}คือเส้นทางที่จะบีบอัดแพ็คเกจของคุณ

ดังนั้นไฟล์ที่แยกออกมาทั้งหมดจะถูกวางไว้ในโฟลเดอร์ชื่อเดียวกัน (หลังไฟล์เก็บถาวร) ภายในไดเร็กทอรีปัจจุบัน
การตั้งค่าตัวแปรเซิร์ฟเวอร์ที่กำหนดเองผ่าน SSH
1. รายการ environment variables เริ่มต้นสำหรับคอนเทนเนอร์ใดๆสามารถดูได้ภายในไฟล์.bash_profile ซึ่งอยู่ในไดเร็กทอรีหลักของคอนเทนเนอร์ ดังนั้นตรวจสอบว่าคุณอยู่ไดเร็กทอรีคอนเทนเนอร์ที่ถูกต้องและรันคำสั่งถัดไป:
แมว .bash_profile

2. ไฟล์.bash_profileจะไม่สามารถแก้ไขได้ในกรณีที่คุณต้องการตั้งค่าตัวแปรเพิ่มเติมคุณสามารถเขียนในไฟล์.bashrcภายในโฟลเดอร์เดียวกัน (หากไม่มี ให้สร้างขึ้นใหม่) โดยใช้ text editor (เช่นวิ):

3. การกำหนดตัวแปรใหม่ควรกำหนดในรูปแบบต่อไปนี้:
ส่งออก {VAR_NAME}={VAR_VALUE}
โดยที่:
- wp:รายการรายการ
- {VAR_NAME}- ชื่อของตัวแปรที่คุณต้องการจะสร้าง /wp:list-item wp:รายการรายการ
- {VAR_VALUE}- ค่าของตัวแปรที่เหมาะสม
/wp:list-item

หมายเหตุ:ไฟล์.bashrcจะถูกอ่านระหว่างการเริ่มต้น bash ดังนั้นการเปลี่ยนแปลงจะถูกนำไปใช้โดยอัตโนมัติเมื่อเริ่มต้นเซสชันผู้ใช้เพิ่มเติมทั้งหมด แต่ในกรณีที่คุณต้องการใช้การเปลี่ยนแปลงที่ทำขึ้นทันที ให้รันคำสั่งทุบตีเพื่อรีสตาร์ท shell
4. การตรวจสอบว่าใช้ตัวแปรที่กำหนดเองของคุณสำเร็จหรือไม่ ให้รันคำสั่งต่อไปนี้:
เสียงสะท้อน ${VAR_NAME}

คุณจะเห็นสตริง {VAR_VALUE} คล้ายกับค่าที่คุณเพิ่งกำหนดให้กับตัวแปร ${VAR_NAME} ในไฟล์.bashrc
ข้อมูลเฉพาะของ Certified Containers Remote Management
Ruk Com Cloud PaaS มีซอร์ฟแวร์สแต็กสองประเภทซึ่งใช้เป็นฐานในการสร้างคอนเทนเนอร์แต่ละอัน:
- wp:รายการรายการ
- เทียบท่า- เทมเพลตโมเดลแบบรวมตามการรองรับมาตรฐานDocker แบบ nativeพร้อมหลักการทั่วไปและฟังก์ชันการจัดการคอนเทนเนอร์สำหรับเซิร์ฟเวอร์ทุกประเภท (เช่น ไม่ว่าจะเป็น compute node, หรือเซิร์ฟเวอร์ฐานข้อมูล, หรืออินสแตนซ์แคช ฯลฯ)
เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ดังกล่าวผ่าน SSH คุณจะสามารถควบคุมอินสแตนซ์ได้อย่างเต็มที่อัตโนมัติโดยให้สิทธิ์รูทและสามารถดำเนินการใดๆที่ต้องการภายในคอนเทนเนอร์ได้ /wp:list-item wp:รายการรายการ - ได้รับการรับรอง- เทมเพลตซอร์ฟแวร์อ้างอิงตามการใช้งานสแต็กดั้งเดิมและปรับปรุงโดยทีมงานของเราตามแพลตฟอร์มเฉพาะ
เมื่อเข้าสู่เซิร์ฟเวอร์ดังกล่าวผ่าน SSH คุณจะเข้าสู่ระบบในฐานะผู้ใช้เซิร์ฟเวอร์เริ่มต้น เพื่อที่จะจัดการคอนเทนเนอร์อย่างมีประสิทธิภาพ เราจึงได้จัดทำตัวเลือกเพิ่มเติมที่สามารถใช้งานได้ภายใต้บัญชีผู้ใช้ทั่วไป:
WP:รายการ wp:รายการรายการ - sudo sbin/service {service_name} {เริ่มต้น|หยุด|รีสตาร์ท|condrestart|สถานะ|โหลดใหม่|อัปเกรด|ช่วยเหลือ}- ชุดคำสั่งเพื่อดำเนินการเซิร์ฟเวอร์หลักซึ่งกำหนดด้วย placeholder{ชื่อบริการ}(โดยที่ค่าที่เป็นไปได้ขึ้นอยู่กับเซิร์ฟเวอร์ที่ใช้ ได้แก่ jetty, MySQL, tomcat, memcached, mongod, postgresql, couchdb, glassfish-domain1, NGINX, php-fpm และ httpd)
- ไฟร์วอลล์ sudo usr/bin/jem {fwstart | fwstop}- เพื่อ run/stop ไฟร์วอลล์คอนเทนเนอร์ตามลำดับ
- sudo usr/bin/jem nscd- เพื่อควบคุมเดมอนแคชบริการชื่อซึ่งเก็บบันทึกสำหรับคำขอชื่อเซิร์ฟเวอร์ที่พบบ่อยที่สุด (เช่น passwd, โฮสต์, กลุ่ม ฯลฯ)
- sudo sbin/บริการ rpcbind.service- เพื่อปฏิบัติการกับบริการการผูก RPCใช้เพื่อจับคู่ชื่อที่ผู้ใช้อ่านได้กับหมายเลขโปรแกรมที่จัดการการโทรเข้า RPC
คำสั่งข้างต้นแม้จะรันในโหมด sudo ก็ตามแต่ไม่จำเป็นต้องป้อนรหัสผ่าน root ของผู้ดูแลระบบเซิร์ฟเวอร์ วิธีนี้ช่วยให้คุณช้ประโยชน์จากฟังก์ชันคอนเทนเนอร์ที่จำเป็นทั้งหมดซึ่งจำเป็นสำหรับการทำงานที่เหมาะสมสำหรับแอปพลิเคชันของคุณแม้จะได้รับอนุญาตจากบัญชีเป็นประจำก็ตาม
บทสรุป
คุณทราบข้อมูลพื้นฐานที่จำเป็นทั้งหมดในการจัดการคอนเทนเนอร์ของคุณผ่านคอนโซล คุณสามารถใช้ประโยชน์จาก PaaS ได้ยืดหยุ่นมากขึ้นในขณะที่ใช้งานแอปพลิเคชันของคุณเริ่มต้นกับ Multi-Cloud ที่หนึ่งในผู้ให้บริการที่ผ่านการรับรองทั่วโลก