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

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

RUK-COM PAAS / APPLICATION SETTINGS

ชื่อ Host DNS สำหรับการเชื่อมต่อโดยตรงกับ Container

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

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

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

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

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

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

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

  • ชื่อ Host สำหรับ Container โดยเฉพาะ
  • ชื่อ Host เสริมสำหรับประเภท Node เฉพาะ
  • ชื่อ Host สำหรับ Layer โดยเฉพาะ
  • ชื่อ Host แบบสั้นสำหรับ Container ภายในหนึ่ง environment
  • ชื่อ Host สำหรับการเชื่อมโยง Container

ชื่อ Host สำหรับ Container โดยเฉพาะ

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

  • Node${nodeId}-${envName}.${Platform Domain}
  • Node${nodeId}.${envName}.${Platform Domain}

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

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

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

ชื่อ Host เสริมสำหรับประเภท Node เฉพาะ

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

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

Domain สำรองทั้งหมดที่แสดงในตารางด้านบสามารถใช้เหมือนกับชื่อ Host สำหรับ Container เฉพาะ

ชื่อ Host สำหรับ Layer โดยเฉพาะ

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

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

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

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

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

ยกตัวอย่าง คำสั่งนี้สามารถใช้เพื่อรับ Application ManifestServer สำหรับ environment ใดๆภายใน Platform:

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

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

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

ชื่อ Host แบบสั้นสำหรับ Container ภายในหนึ่ง environment

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

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

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

ชื่อ Host สำหรับการเชื่อมโยง Container

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

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

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

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

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

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