Custom Containers Deployment

Ruk-Com Cloud PaaS อนุญาตให้สร้างซอฟแวร์โซลูชั่นที่เป็นแพ็กเกจของ Docker คอนเทนเนอร์และจัดเก็บไว้ที่ Docker Hub หรือการลงทะเบียน (registry) อื่นๆ (รวมทั้งแบบ private) โดยวิธีนี้คุณจะได้รับประโยชน์ทั้งหมดภายในแพลตฟอร์ม (เช่นการปรับขนาด horizontal/vertical, การบันทึก, สถิติ, การสังเกตและแจ้งเตือน, การกำหนดค่า และการจัดการไฟล์ เป็นต้น) อย่างไรก็ตามไม่สามารถรับประกันได้ว่าคอนเทนเนอร์แบบกำหนดเองจะสามารถทำงานร่วมกับแอปพลิเคชันภายในคอนเทนเนอร์ได้

เคล็ดลับ: Ruk-Com Cloud จัดเตรียมซอร์ฟแวร์สแต็กที่ได้รับความนิยมสูงและเทมเพลตที่พร้อมใช้งาน สามารถอัปเดตเวอร์ชันได้เป็นประจำ (คอนเทนเนอร์ที่ผ่านการรับรอง)

ภายในคู่มือจะมีวิธีการใช้งานเบื้องต้นสำหรับการกำหนด Docker คอนเทนเนอร์ – วิธีสร้างและวิธีจัดการแอปพลิเคชันและการให้บริการทุกประเภทที่มี่อยู่ใน Docker Hub หรือ registry ส่วนตัวที่คุณกำหนดเอง

การกำหนดคอนเทนเนอร์เองจาก Docker Hub

1. เปิด environment topology wizard โดยคลิกปุ่ม New Environment ที่มุมบนด้านซ้ายของแดชบอร์ด

ในแถบด้านซ้ายของ Docker wizard คุณจะเห็นบล็อกหลายอันที่มีชื่อเลเยอร์แตกต่างงกัน โดยแต่ละบล็อกสามารถสร้างคอนเทนเนอร์แบบกำหนดเองตาม image Docker ที่เลือกใช้ในส่วนเหล่านี้เพื่อแบ่งและจัดโครงสร้าง topology ตามการใช้งานของคุณ

คุณสามารถเลือกเลเยอร์ที่ต้องการและดำเนินการต่อโดยคลิกที่ Select Image เพื่อเพิ่ม Docker images เองได้

2. เมื่อเปิด Select Container จะมีแท็บต่างๆให้เลือกมากมาย

  • Quick Start – ซอร์ฟแวร์ที่ได้รับความนิยม/เทมเพลตที่ได้รับคำแนะนำ สำหรับเลเยอร์ปัจจุบัน (แท็บนี้อาจไม่มี ขึ้นอยู่กับการตั้งค่าจากผู้ให้บริการโฮสติ้ง)
  • Search – ช่วยในการค้นหาเทมเพลตที่ต้องการจาก Docker Hub ส่วนกลาง
  • Custom – สามารถเพิ่มเทมเพลตของคุณเองจากรีจิสเตอร์ส่วนตัวหรือรีจิสเตอร์ที่กำหนดเอง
  • Favorite – สามารถจัดเก็บ image ที่คาดว่าจะใช้ในอนาคตเพื่อการเข้าถึงได้อย่างรวดเร็ว

ดังตัวอย่างข้างต้น เช่นการค้นหา Docker Hub registry ไปที่แถบค้นหา พิมพ์ชื่อเต็ม/บางส่วนของชื่อที่ต้องการลงในช่องป้อนข้อมูล อย่างเช่น dockersample/static-site แล้วกด Enter จะแสดงรายการของ dockersample ทั้งหมด จากนั้นให้คลิกที่ dockersample/static-site เพื่อเพิ่มเข้าไปในเลเยอร์แอปพลิเคชันเซิร์ฟเวอร์ (จะมีเครื่องหมายถูกและเป็นไฮไลต์) อีกทั้งยังสามารถเลือกแท็กที่จำเป็นได้จาก drop-down ด้านบน

เคล็ดลับ: เมื่อวางเมาส์ที่รูปภาพจะสามารถดูรายละเอียดเพิ่มเติมได้โดยคลิกที่ More Details และสามารถคลิกไอคอนรูปดาวที่มุมขวาบนเพื่อเพิ่มเป็นรายการโปรด เพื่อการเข้าถึงที่รวดเร็ว (ในทำนองเดียวกันก็ไม่สามารถเลือกที่จะลบออกจากรายการได้)

คุณสามารถเลือกเฉพาะ Docker image เดียวหรืออินสแตนซ์หลายตัวในเทมเพลตเดียวกัน (ต่อ 1 เลเยอร์) โดยวิธีนี้คุณสามารถเพิ่ม image อื่นๆในเลเยอร์ต่างๆโดยใช้บล็อกที่เหลือได้ตามต้องการ

หลังจากที่คุณเลือก topology เสร็จแล้วให้คลิก Next

3. เมื่อคุณกลับมาที่ wizard พร้อมกับคอนเทนเนอร์ที่กำหนดเองทั้งหมดแล้ว คุณสามารถเริ่มกำหนดค่าและจัดการได้เช่นเดียวกับ node ทั่วไป:

คลิกที่ปุ่ม Create ด้านล่างของ wizard เพื่อเริ่มสร้าง environment

4. เพียงเท่านี้ ระบบจะสร้าง environment ตามคอนเทนเนอร์ที่คุณกำหนดภายในไม่กี่นาทีและจะแสดงอยู่บนแดชบอร์ดเมื่อสร้างเสร็จ

คุณสามารถคลิก open browser เพื่อเปิดในเบราว์เซอร์แต่ละคอนเทนเนอร์ด้วยปุ่มที่เกี่ยวข้องถัดจากนั้นหรือ environment ทั้งหมดที่แสดงผ่านโดเมนที่กำหนด (ด้านล่างชื่อ environment) ในกรณีหลังนี้แอปพลิเคชันเซิร์ฟเวอร์หรือเทมเพลตของ layer balancer จะเปิดขึ้น

หมายเหตุ: คอนเทนเนอร์ที่กำหนดเองบางส่วนอาจจะไม่มีหน้าเว็บ ดังนั้นคุณอาจได้รับข้อความ 502 application down เมื่อเข้าถึง node ดังกล่าวผ่านเบราว์เซอร์ อย่างไรก็ตาม image ไม่ได้รับความเสียหาย แต่หากคุณต้องการตรวจสอบให้แน่ใจว่าบริการนี้ใช้งานได้ สามารถเช็กที่กระบวนการทำงานภายในคอนเทนเนอร์โดยเชื่อมต่อกับ SSH ส่วนในกรณีที่แอปพลิเคชันถูกทำไปใช้กับคอนเทนเนอร์ที่ไม่มี public IP ที่ port 80/backend คุณจะเห็น 502 error – บริการหยุดทำงานโดยเฉพาะในขณะที่พยายามจะเปิดใช้งาน ในกรณีนี้ต้องตรวจสอบให้แน่ใจว่าคอนเทนเนอร์ของคุณมีบริการ HTTP ที่ทำงานอยู่สำหรับจัดการคำขอที่เข้ามาผ่านพอร์ตที่กล่าวถึงข้างต้น

ตัวอย่างแอปพลิเคชัน Docker เมื่อกด open browser

หากคุณต้องการกำหนดค่าเพิ่มเติมให้กับคอนเทนเนอร์ของคุณ คุณสามารถเพิ่มได้โดยตรงผ่านแดชบอร์ด ตัวจัดการไฟล์ หรือ เทอร์มินอล หลังจากการเข้าถึงผ่าน SSH รวมถึง Web SSD ในทั้งสองกรณีคุณจะได้รับสิทธิ์การเข้าถึง root อย่างเต็มรูปแบบเพื่อดำเนินการปรับเปลี่ยนตามรูปแบบที่คุณต้องการ

คอนเทนเนอร์จาก Custom/Private Registry

นอกเหนือจากเทมเพลตสาธารณะที่สามารถใช้งานได้ใน Docker Hub registry Ruk-Com Cloud ยังช่วยให้คุณสามารถ deploy image ส่วนตัวจากรีจิสตรีที่กำหนดได้เอง โดยแพลตฟอร์มจะจดจำและจัดเก็บไว้แยกส่วนเฉพาะ) ทำให้คุณสามารถใช้งานได้ในลักษณะเดียวกับ public image ในกรณีของที่จัดเก็บจะถูกป้องกันโดยคุณจะต้องระบุข้อมูลอ้างอิงที่เหมาะสมเพื่อการเข้าถึง (เพียงครั้งเดียวในระหว่างการเพิ่ม) ในขณะเดียวกันการตรวจสอบสิทธิ์ที่ตามมาทั้งหมดสำหรับการปรับขนาดคอนเทนเนอร์หรือการติดตั้งใหม่จะถูกดำเนินการโดยอัตโนมัติ

การเพิ่ม image ดังกล่าวสามารถทำได้ผ่าน Docker topology wizard

Docker image from custom registry

1. เริ่มต้นด้วยการกดปุ่ม New Environment จากนั้นคลิก select image แล้วเลือกแท็บ Custom

2. คลิก Add New Image เพื่อใส่ชื่อของรีจิสตรีที่จัดเก็บไว้ลงในช่อง ด้วยเหตุนี้ image จาก Docker Hub จะสามารถระบุได้โดยไม่ต้องตั้งค่าโฮสต์รีจิสทรีที่จุดเริ่มต้นของชื่อ image

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

3. ในส่วนของการจัดเก็บแบบส่วนตัว คุณจะต้องเพิ่มข้อมูลที่เหมาะสมเพื่อระบุตัวตนผ่าน Username และ Password จากนั้นคลิก Add เพื่อดำเนินการต่อ

หากคุณไม่ต้องการใช้เทมเพลตอีกต่อไปสามารถคลิกที่ไอคอนถังขยะ (bin) ที่มุมบนขวาเพื่อลบออก ในทำนองเดียวกันหากคุณต้องการรวม image ให้อยู่ในลิส คลิกที่ไอคอนรูปดาว (star) เพื่อการใช้งานในภายหลัง

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

5. เมื่อคลิก Repo Credentials จัดเก็บคอนเทนเนอร์จะมีข้อมูลส่วนตัวโดยคุณสามารถแก้ไขใหม่โดยเปลี่ยนชื่อ Login และ Password สำหรับ image ของคุณ

จากนั้นกด Apply เพื่อทำการเปลี่ยนชื่อ

ทั้งหมดนี้คือการเพิ่มคอนเทนเนอร์แบบกำหนดเองจากที่เก็บของคุณ ไม่ใช่ค่าเริ่มต้นของ Ruk-Com Cloud PaaS

เคล็ดลับ: ในกรณีที่เกิดปัญหาขณะใช้งาน Docker image ที่กำหนดเองบนแพลตฟอร์ม คุณสามารถขอความช่วยเหลือจากผู้เชี่ยวชาญด้านเทคนิคได้ที่ Stackoverflow