CLOUD PAAS / APPLICATION SETTINGS

ชื่อโฮสต์ DNS สำหรับการเชื่อมต่อโดยตรงกับคอนเทนเนอร์

คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ

คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง

วัตถุประสงค์

บทความนี้อธิบายการใช้งาน ชื่อโฮสต์ DNS สำหรับการเชื่อมต่อโดยตรงกับคอนเทนเนอร์ บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

การเชื่อมต่อกับบริการคลาวด์อย่างง่ายเป็นเกณฑ์ที่สำคัญอย่างยิ่งสำหรับนักพัฒนาแต่ละโหนดที่สร้างขึ้นใหม่จำนวนหนึ่่งจะถูกกำหนดชื่อโฮสต์โดยอัตโนมัติซึ่งชี้ไปที่ IP ภายใน/ภายนอกของเซิร์ฟเวอร์ที่เหมาะสม

โดยขึ้นอยู่กับชนิดของโหนดที่สร้างขึ้นและเซตของชื่อโฮสต์สำหรับโหนดนั้นอาจแตกต่างกัน ในส่วนของด้านล่างนี้จะพิจารณาวิธีการอ้างอิงโหนดโดยเฉพาะสำหรับโฮสต์ที่ Ruk-Com Cloud ภายใน (เช่น เมื่อจัดการผ่านประตูเอสเอสเอช) หรือภายนอก Cloud:

  • ชื่อโฮสต์สำหรับคอนเทนเนอร์โดยเฉพาะ
  • ชื่อโฮสต์เสริมสำหรับประเภทโหนดเฉพาะ
  • ชื่อโฮสต์สำหรับเลเยอร์โดยเฉพาะ
  • ชื่อโฮสต์แบบสั้นสำหรับคอนเทนเนอร์ภายในหนึ่ง environment
  • ชื่อโฮสต์สำหรับการเชื่อมโยงคอนเทนเนอร์

ชื่อโฮสต์สำหรับคอนเทนเนอร์โดยเฉพาะ

แต่ละคอนเทนเนอร์ที่แพลตฟอร์มสามารถเข้าถึงได้โดย IP address ภายในด้วย URL ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้:

  • โหนด${nodeId}-${envName}.${แพลตฟอร์มโดเมน}
  • โหนด${nodeId}.${envName}.${แพลตฟอร์มโดเมน}

ในกรณีนี้ แทนที่ค่าตัวยึดตําแหน่งด้วยค่าต่อไป:

  • ${nodeId} - การสร้างตัวเลขที่ไม่ซ้ำกันโดยอัตโนมัติซึ่งถูกกำหนดให้กับทุกคอนเทนเนอร์ภายในแพลตฟอร์ม
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  • ${envName} - ชื่อ environment (ไม่ใช่ alias) ที่ระบุในระหว่างการสร้าง
  • ${platformDomain} - ชื่อโดเมนของการติดตั้ง Ruk-Com Cloudผู้ให้บริการโฮสต์

ตัวแปรทั้งสองสามารถใช้เพื่ออ้างถึงโหนดจากภายในหรือภายนอกแพลตฟอร์ม (เช่น อนุญาตให้สร้างการเชื่อมต่อทั้งภายในและภายนอก)

ชื่อโฮสต์เสริมสำหรับประเภทโหนดเฉพาะ

สแต็กที่ผ่านการรับรองจะมีคำนำหน้าชื่อโฮสต์เพิ่มเติม (เช่น ใช้ชื่อสแต็กที่เหมาะสมแทนโหนดสตริง) เพื่อให้การจัดการมีความสะดวกยิ่งขึ้น

หมายเหตุ:คำนำหน้าดังกล่าวใช้ได้เฉพาะโดเมนที่มี hyphen (-) เป็นตัวคั่นเท่านั้น

โดเมนสำรองทั้งหมดที่แสดงในตารางด้านบสามารถใช้เหมือนกับชื่อโฮสต์สำหรับคอนเทนเนอร์เฉพาะ

ชื่อโฮสต์สำหรับเลเยอร์โดยเฉพาะ

สำหรับ environment ใหม่คุณสามารถรับที่อยู่ IP ภายในของคอนเทนเนอร์ในโหนดเลเยอร์เดียวกันได้โดยใช้ชื่อโฮสต์ต่อไปนี้:

  • ${nodeGroup}.${envName}.${platformDomain}

${nodeGroup} คือชื่อของเลเยอร์เฉพาะที่คอนเทนเนอร์ต้องการอยู่ โดยค่าเริ่มต้น เลเยอร์จะถูกตั้งชื่อตามบทบาทเฉพาะของ nodeGroup ที่เหมาะสม

หมายเหตุ:กลุ่มโหนดที่เพิ่มผ่านเลเยอร์พิเศษใน topology wizard มีชื่อในลักษณะเดียวกันแต่มี${N}index ที่เหมาะสม อีกทั้งเลเยอร์เริ่มต้นใน topology wizard (เช่น bl, cp, sqldb เป็นต้น) ถือเป็น index แรกดังนั้นการนับเลเยอร์เพิ่มเติมจะเริ่มต้นด้วยอันที่สอง เช่น cp2, cp3, cp4, … (ยกเว้น extra, extra2, extra3, …) ตัวอย่างเช่น:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ยกตัวอย่าง คำสั่งนี้สามารถใช้เพื่อรับรายการแอปพลิเคชันเซิร์ฟเวอร์สำหรับ environment ใดๆภายในแพลตฟอร์ม:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เคล็ดลับ:หากต้องการรับรายการคอนเทนเนอร์สำหรับ environment ปัจจุบันคุณสามารถใช้ได้เพียงชื่อโฮสต์แบบสั้นเท่านั้น

พร้อมกันนี้ทุกครั้งที่มีการสร้างคอนเทนเนอร์ใหม่ (ลบ) ในระบบประวัติที่เหมาะสมจะถูกเพิ่มโดยอัตโนมัติไปยัง (ลบออกจาก) DNS สำหรับชื่อโฮสต์ของเลเยอร์

ชื่อโฮสต์แบบสั้นสำหรับคอนเทนเนอร์ภายในหนึ่ง environment

Docker คอนเทนเนอร์ที่สร้างขึ้นใหม่ทั้งหมดและสแต็กที่จัดการด้วย Ruk-Com Cloud ได้จัดเตรียมกฏสำหรับ DNS โดยเฉพาะที่อนุญาตให้ใช้ชื่อโฮสต์แบบง่ายเพิ่มเติมได้:

  • node${nodeId} - นามแฝงเพื่ออ้างอิงถึงคอนเทนเนอร์ในขอบเขตของ environment เดียว
  • ${nodeGroup} - นามแฝงเพื่ออ้างอิงถึงขอบเขตของเลเยอร์ environment เดียว

การใช้ชื่อโฮสต์สั้นๆ ดังกล่าวในไฟล์การกำหนดค่าเซิร์ฟเวอร์ source code ของแอปพลิเคชันและ SSH console (คำสั่งภายในที่ใช้บ่อย เช่น ping, host, dig ฯลฯ) ทำให้การทำงานกับ Dockerized stacks ผ่านเครือข่ายภายในของแพลตฟอร์มสะดวกยิ่งขึ้น นอกจากนี้วิธีการดังกล่าวยังช่วยให้การย้าย environmentไปยังภูมิภาคฮาร์ดแวร์อื่นนั้นไม่ยากและไม่จำเป็นต้องปรับเปลี่ยนโค้ดของคุณเนื่องจากตำแหน่งเซิร์ฟเวอร์ที่เปลี่ยนไป

ชื่อโฮสต์สำหรับการเชื่อมโยงคอนเทนเนอร์

เมื่อเชื่อมโยง environment layer ที่ใช้สอง Docker เซตของ DNS records จะถูกเพิ่มไปยังฐานข้อมูล Ruk-Com Cloud ทั่วโลกโดยอัตโนมัติ ซึ่งจะช่วยอ้างอิงถึงโหนดภายในเลเยอร์เป้าหมายจากโหนดต้นทาง (แต่ไม่ใช่ในทางกลับกัน) เมื่อทำงานในขอบเขตของสองเลเยอร์โดยใช้ชื่อโฮสต์แฝงต่อไปนี้:

  • ${linkAlias}- อ้างอิงถึงโหนดสุ่มภายในเลเยอร์เป้าหมาย โหนดที่ถูกต้องที่จะตอบสนองนั้นถูกเลือกโดยใช้ Round-Robin algorithm - สิ่งนี้ทำให้มั่นใจได้ถึงการกระจายโหลด
  • ${linkAlias__${N}- เพื่อเข้าถึงคอนเทนเนอร์เฉพาะภายในเลเยอร์เป้าหมาย ตัวยึดตำแหน่งที่เหมาะสมจะถูกแทนที่ด้วย
  • ${linkAlias}- ชื่อลิงก์ที่ระบุระหว่างการตั้งค่า (เช่น tomcat ในภาพด้านล่าง)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  • ${N}- หมายเลขในช่วง (1…N) ของคอนเทนเนอร์เฉพาะภายในเป้าหมายเลเยอร์ที่เชื่อมโยง (เช่น tomcat_1, tomcat_2) เป็นต้น พร้อมกันนี้ คอนเทนเนอร์หลักถือเป็นอินสแตนซ์ที่ 1 เสมอ ในขณะที่โหนดเลเยอร์ที่เหลือจะได้รับการกำหนดหมายเลขตามค่า nodeID โดยจะเรียงลำดับจากน้อยไปมาก (เริ่มต้นด้วย index _2 จากนั้น _3, _4 เป็นต้น)

ตัวอย่างเช่น หากมีคอนเทนเนอร์ 3 รายการบนเลเยอร์ - ด้วย ID 123, 124 (อาจารย์) และ 125 ตามการใช้งานที่อธิบายไว้ข้างต้น นามแฝงจะถูกกำหนดดังนี้:

  • นามแฝง_1- ลิงก์ไปยังคอนเทนเนอร์ 124 เป็นโหนดหลัก
  • นามแฝง_2- จะชี้ไปที่อินสแตนซ์ 123 เนื่องจากมี ID ต่ำสุดในบรรดาคอนเทนเนอร์ที่เหลืออยู่
  • นามแฝง_3- อ้างอิงถึงคอนเทนเนอร์ 125 เป็นรายการถัดไปที่มี nodeID ต่ำสุด

เคล็ดลับ:เมื่อเชื่อมต่อ environment domain เข้ากับ alias${linkAlias}.${envName}.${platformDomain}ชื่อเลเยอร์ที่เชื่อมโยงเกี่ยวข้องจะสามารถแก้ไขได้และเข้าถึงได้จากภายนอก กล่าวคือ เข้าถึงจากที่ใดก็ได้ทางอินเทอร์เน็ตและ ${linkAlias__${N}คอนเทนเนอร์ที่สอดคล้องกันของเลเยอร์ที่เชื่อมโยงสามารถแก้ไขได้ภายในเท่านั้น

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