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

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

RUK-COM PAAS / APPLICATION SETTINGS

คู่มือ Container DNS Hostnames สำหรับ การตั้งค่า Application

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

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

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

Image 36: container DNS hostnames

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

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

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

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

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

ด้วยเหตุนี้ตัวยึดตำแหน่งควรถูกแทนที่ด้วยค่าถัดไป:

  • ${nodeId}- ตัวระบุตัวเลขที่ไม่ซ้ำกันที่สร้างขึ้นโดยอัตโนมัติซึ่งกำหนดให้กับทุกคอนเทนเนอร์ภายในแพลตฟอร์มImage 38: node ID in dashboard
  • ${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, …) ตัวอย่างเช่น:

Image 41: layer hostnames

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

Image 42: layer hostnames example

เคล็ดลับ:หากต้องการรับรายการคอนเทนเนอร์สำหรับ 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}- ชื่อลิงก์ที่คุณระบุระหว่างการตั้งค่า (เช่นแมวตัวผู้ในภาพด้านล่าง)

Image 45: container linking alias*${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 ของคุณแล้วซึ่งจะช่วยจัดระเบียบการเชื่อมต่อระหว่างอินสแตนซ์แอปพลิเคชันของคุณได้อย่างรวดเร็วและมีประสิทธิภาพ