คู่มือ Container DNS Hostnames สำหรับ การตั้งค่า Application
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
ความสามารถในการเชื่อมต่อกับบริการคลาวด์ได้อย่างง่ายดายถือเป็นเกณฑ์ที่มีความสำคัญอย่างยิ่งสำหรับนักพัฒนาทุกคนในแพลตฟอร์มแต่ละ Node ที่สร้างขึ้นใหม่จะได้รับการกำหนดชื่อโฮสต์ที่สร้างขึ้นโดยอัตโนมัติจำนวนหนึ่งโดยชี้ไปที่เซิร์ฟเวอร์ภายในที่เหมาะสม/ภายนอกที่อยู่ IP
ขึ้นอยู่กับประเภทของ Node ที่สร้างขึ้นชื่อของโฮสต์สำหรับ Node อาจแตกต่างกันดังนั้นด้านล่างเราจะพิจารณาวิธีที่เป็นไปได้ในการอ้างถึง Node ใด Node หนึ่งซึ่งโฮสต์อยู่ที่แพลตฟอร์มไม่ว่าจะจากภายใน (เช่นเมื่อจัดการผ่านประตูเอสเอสเอช) หรือภายนอกคลาวด์:
- ชื่อโฮสต์สำหรับคอนเทนเนอร์เฉพาะ
- ชื่อโฮสต์เสริมสำหรับประเภท Node เฉพาะ
- ชื่อโฮสต์สำหรับเลเยอร์เฉพาะ
- ชื่อโฮสต์แบบสั้นสำหรับคอนเทนเนอร์ภายใน Environment เดียว
- ชื่อโฮสต์สำหรับคอนเทนเนอร์ที่เชื่อมโยง
ชื่อโฮสต์สำหรับคอนเทนเนอร์เฉพาะ
แต่ละคอนเทนเนอร์ที่แพลตฟอร์มสามารถเข้าถึงได้ด้วยที่อยู่ IP ภายในพร้อม URL ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้:
- Node${nodeId}-${envName}.${แพลตฟอร์มโดเมน}
- Node${nodeId}.${envName}.${แพลตฟอร์มโดเมน}
ด้วยเหตุนี้ตัวยึดตำแหน่งควรถูกแทนที่ด้วยค่าถัดไป:
- ${nodeId}- ตัวระบุตัวเลขที่ไม่ซ้ำกันที่สร้างขึ้นโดยอัตโนมัติซึ่งกำหนดให้กับทุกคอนเทนเนอร์ภายในแพลตฟอร์ม

- ${envName}- ชื่อ Environment (ไม่ใช่นามแฝง) ระบุไว้ในระหว่างการสร้าง
- ${แพลตฟอร์มโดเมน}- ชื่อโดเมนของการติดตั้ง PaaSผู้ให้บริการโฮสติ้ง
ตัวแปรทั้งสองสามารถใช้เพื่ออ้างอิงถึง Node จากภายในหรือภายนอกแพลตฟอร์ม (เช่นช่วยให้สามารถสร้างการเชื่อมต่อทั้งภายในและภายนอก)
ชื่อโฮสต์เสริมสำหรับประเภท Node เฉพาะ
สแต็กที่ได้รับการรับรองแพลตฟอร์มบางส่วนได้รับการจัดเตรียมด้วยคำนำหน้าชื่อโฮสต์เพิ่มเติม (เช่นโดยที่มีการใช้ชื่อสแต็กที่เหมาะสมแทนNodestring) เพื่อให้การจัดการสะดวกยิ่งขึ้น
บันทึก:คำนำหน้าเสริมดังกล่าวใช้ได้เฉพาะภายในโดเมนที่มียัติภังค์เป็นตัวคั่นเท่านั้น
| ประเภท Node | สแต็ค | ชื่อโฮสต์เพิ่มเติม |
|---|---|---|
| คอนเทนเนอร์ Docker แบบกำหนดเอง | นักเทียบท่า${nodeId}-${envName}.${platformDomain} | |
| ฐานข้อมูล | คาสซานดรา 1/2 | คาสซานดรา${nodeId}-${envName}.${platformDomain} |
| โซฟาดีบี | couchdb${nodeId}-${envName}.${platformDomain} | |
| มาเรียดีบี 5/10 | mariadb${nodeId}-${envName}.${platformDomain} | |
| เมคแคช | memcached${nodeId}-${envName}.${platformDomain} | |
| MSSQL | mssql${nodeId}-${envName}.${platformDomain} | |
| MySQL 5.6/5.7 | mysql${nodeId}-${envName}.${platformDomain} | |
| นีโอ 4 เจ 1/2 | neo4j${nodeId}-${envName}.${platformDomain} | |
| โอเรียนท์ดีบี | orientdb${nodeId}-${envName}.${platformDomain} | |
| PostgreSQL 8/9 | postgres${nodeId}-${envName}.${platformDomain} | |
| เรดิส | redis${nodeId}-${envName}.${platformDomain} | |
| วีพีเอส | vps${nodeId}-${envName}.${platformDomain} |
สตริงโดเมนทางเลือกทั้งหมดที่แสดงในตารางด้านบนสามารถนำไปใช้ได้ในลักษณะเดียวกันกับชื่อโฮสต์สำหรับคอนเทนเนอร์เฉพาะ.
ชื่อโฮสต์สำหรับเลเยอร์เฉพาะ
สำหรับ Environment ใหม่คุณสามารถรับที่อยู่ IP ภายในทั้งหมดของคอนเทนเนอร์ภายในเลเยอร์ Node เดียวได้โดยใช้ชื่อโฮสต์ต่อไปนี้:
- ${nodeGroup}.${envName}.${platformDomain}
ที่นี่,${Node กลุ่ม}ตัวยึดตำแหน่งคือชื่อของเลเยอร์เฉพาะที่เป็นของคอนเทนเนอร์ที่ต้องการตามค่าเริ่มต้นเลเยอร์จะถูกตั้งชื่อตามความเหมาะสมNode กรุ๊ปบทบาทเฉพาะ
บันทึก:กลุ่ม Node ที่เพิ่มผ่านทางชั้นพิเศษในตัวช่วยสร้างทอโพโลยีจะถูกตั้งชื่อในลักษณะเดียวกันแต่มีความเหมาะสม${N}ดัชนี. ด้วยเหตุนี้เลเยอร์เริ่มต้นในตัวช่วยสร้างโทโพโลยี (เช่นบล,ซีพี,sqldbฯลฯ) ถือเป็นดัชนีแรกดังนั้นการแจงนับพิเศษเลเยอร์เริ่มต้นด้วยอันที่สองเช่นซีพี 2,ซีพี 3,ซีพี 4, … (ยกเว้นพิเศษ,พิเศษ 2,พิเศษ 3, …) ตัวอย่างเช่น:
ตัวอย่างเช่นคำสั่งนี้สามารถใช้เพื่อรับรายการเซิร์ฟเวอร์แอปพลิเคชันสำหรับ Environment ใดๆภายในแพลตฟอร์ม:
เคล็ดลับ:หากต้องการรับรายการคอนเทนเนอร์สำหรับ Environment ปัจจุบันเพียงกชื่อโฮสต์แบบสั้นสามารถใช้
ทุกครั้งที่มีการสร้างคอนเทนเนอร์ใหม่ (ลบออก) ในระบบบันทึกที่เหมาะสมจะถูกเพิ่มไปยัง (ลบออกจาก) DNS โดยอัตโนมัติสำหรับชื่อโฮสต์ของเลเยอร์
ชื่อโฮสต์แบบสั้นสำหรับคอนเทนเนอร์ภายใน Environment เดียว
คอนเทนเนอร์ Docker ที่สร้างขึ้นใหม่ทั้งหมดและสแต็กที่จัดการแพลตฟอร์มที่เชื่อมต่อด้วย Docker ได้รับการจัดเตรียมด้วยกฎ DNS เฉพาะซึ่งอนุญาตให้ใช้ชื่อโฮสต์ที่เรียบง่ายเพิ่มเติม:
- Node${nodeId}- นามแฝงเพื่ออ้างถึงคอนเทนเนอร์ในขอบเขตของ Environment เดียว
- ${Node กลุ่ม}- นามแฝงเพื่ออ้างถึงเลเยอร์ในขอบเขตของ Environment เดียว
การใช้ชื่อโฮสต์แบบสั้นดังกล่าวในไฟล์การกำหนดค่าเซิร์ฟเวอร์ซอร์สโค้ดของแอปพลิเคชันและสสสconsole (ภายในคำสั่งที่ใช้บ่อยเช่นปิง,เจ้าภาพ,ขุดฯลฯ) ทำให้การทำงานด้วย Dockerized stacks ผ่านเครือข่ายภายใน Platform สะดวกยิ่งขึ้นนอกจากนี้วิธีการดังกล่าวยังช่วยให้ไม่เจ็บปวดการโยกย้าย Environmentไปที่อื่นภูมิภาคฮาร์ดแวร์โดยไม่จำเป็นต้องปรับโค้ดแอปพลิเคชันของคุณเนื่องจากตำแหน่งเซิร์ฟเวอร์ที่เปลี่ยนแปลง
ชื่อโฮสต์สำหรับคอนเทนเนอร์ที่เชื่อมโยง
เมื่อการเชื่อมโยงเลเยอร์ Environment ที่ใช้ Docker สองชั้นชุดบันทึก DNS เฉพาะจะถูกเพิ่มไปยังฐานข้อมูลแพลตฟอร์มทั่วโลกโดยอัตโนมัติซึ่งจะช่วยให้สามารถอ้างอิงถึง Node ภายในเป้าชั้นจากแหล่งที่มา(แต่ไม่ใช่ในทางกลับกัน) เมื่อทำงานในขอบเขตของสองชั้นนี้โดยใช้นามแฝงชื่อโฮสต์ต่อไปนี้:
- ${linkAlias}- เพื่ออ้างถึง Node สุ่มภายในเลเยอร์เป้าหมาย Node ที่แน่นอนในการตอบสนองถูกเลือกโดยใช้อัลกอริธึม Round-Robin ซึ่งรับประกันการกระจายโหลดที่สม่ำเสมอ
- ${linkAlias__${N}- เพื่อเข้าถึงคอนเทนเนอร์เฉพาะภายในเลเยอร์เป้าหมาย
ในที่นี้ตัวยึดตำแหน่งที่เหมาะสมจะถูกแทนที่ด้วย:
- ${linkAlias}- ชื่อลิงก์ที่คุณระบุระหว่างการตั้งค่า (เช่นแมวตัวผู้ในภาพด้านล่าง)
*${N}- หมายเลขดัชนีระบุ (ใน1…นช่วง) ของคอนเทนเนอร์เฉพาะภายในเลเยอร์การเชื่อมโยงเป้าหมาย (เช่นแมวตัวผู้_1,แมวตัวผู้_2) ฯลฯ; ด้วยเหตุนี้คอนเทนเนอร์หลักจะถือเป็นอินสแตนซ์ที่ 1 เสมอในขณะที่ส่วนที่เหลือของ Node เลเยอร์จะถูกกำหนดหมายเลขตามค่า nodeID โดยจะเรียงลำดับจากน้อยไปหามาก (เริ่มต้นด้วย_2ดัชนีแล้ว_3,_4ฯลฯ)
ตัวอย่างเช่นหากมีสามคอนเทนเนอร์บนเลเยอร์ - ด้วย123,124(อาจารย์) และ125รหัสตามการใช้งานที่อธิบายไว้ข้างต้นนามแฝงจะถูกกำหนดดังนี้:
- นามแฝง_1- ลิงค์ไปยัง124คอนเทนเนอร์เป็น Node หลัก
- นามแฝง_2- จะชี้ไปที่123อินสแตนซ์เนื่องจากมี ID ต่ำสุดในบรรดาคอนเทนเนอร์ที่เหลือ
- นามแฝง_3- สำหรับการอ้างอิงถึง125คอนเทนเนอร์เป็นอันที่มี nodeID ต่ำสุดถัดไป
เคล็ดลับ:โดยการต่อท้ายโดเมน Environment เข้ากับนามแฝง${linkAlias}.${envName}.${platformDomain}ชื่อเลเยอร์ที่เชื่อมโยงที่เกี่ยวข้องสามารถแก้ไขได้และเข้าถึงจากภายนอกเช่นจากที่ใดก็ได้บนอินเทอร์เน็ตและโดย${linkAlias__${N}คอนเทนเนอร์ที่เกี่ยวข้องของเลเยอร์ที่เชื่อมโยงสามารถแก้ไขได้ภายในเท่านั้นภายในเครือข่ายเลเยอร์ที่เชื่อมโยง
ตอนนี้คุณทราบข้อมูลเฉพาะและทางลัดทั้งหมดที่สามารถใช้เพื่ออ้างอิงถึง Node ของคุณแล้วซึ่งจะช่วยจัดระเบียบการเชื่อมต่อระหว่างอินสแตนซ์แอปพลิเคชันของคุณได้อย่างรวดเร็วและมีประสิทธิภาพ


