แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การสร้างภาชนะขนาดเล็ก
แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การจัดระเบียบ Kubernetes ด้วยเนมสเปซ
แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes ตรวจสอบความพร้อมใช้งานของ Kubernetes ด้วยการทดสอบความพร้อมและความพร้อมใช้งาน
แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การตั้งค่าคำขอและขีดจำกัดทรัพยากร
แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การปิดระบบที่ถูกต้อง ยุติ

หากคุณเป็นเหมือนคนส่วนใหญ่ คุณอาจใช้ทรัพยากรที่ทำงานนอกคลัสเตอร์ของคุณ บางทีคุณอาจใช้ Taleo API เพื่อส่งข้อความหรือวิเคราะห์รูปภาพโดยใช้ Google Cloud Vision API

หากคุณใช้ตำแหน่งข้อมูลคำขอฝั่งเซิร์ฟเวอร์เดียวกันในทุกสภาพแวดล้อมของคุณ และไม่ได้วางแผนที่จะย้ายเซิร์ฟเวอร์ของคุณไปยัง Kubernetes ก็เป็นเรื่องปกติที่จะมีตำแหน่งข้อมูลบริการในโค้ดของคุณ อย่างไรก็ตาม ยังมีสถานการณ์อื่นๆ อีกมากมายสำหรับการพัฒนากิจกรรม ในซีรีส์ Kubernetes Best Practices นี้ คุณจะได้เรียนรู้วิธีใช้กลไกในตัวของ Kubernetes เพื่อค้นหาบริการทั้งภายในและภายนอกคลัสเตอร์

ตัวอย่างของบริการภายนอกทั่วไปคือฐานข้อมูลที่ทำงานนอกคลัสเตอร์ Kubernetes ต่างจากฐานข้อมูลระบบคลาวด์เช่น Google Cloud Data Store หรือ Google Cloud Spanner ซึ่งใช้ปลายทางเดียวสำหรับการเข้าถึงทั้งหมด ฐานข้อมูลส่วนใหญ่มีปลายทางแยกกันสำหรับสถานการณ์ที่แตกต่างกัน
แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ฐานข้อมูลแบบดั้งเดิม เช่น MySQL และ MongoDB มักจะหมายความว่าคุณเชื่อมต่อกับส่วนประกอบที่แตกต่างกันสำหรับสภาพแวดล้อมที่แตกต่างกัน คุณสามารถมีเครื่องจักรขนาดใหญ่สำหรับข้อมูลการผลิต และเครื่องขนาดเล็กสำหรับสภาพแวดล้อมการทดสอบ แต่ละรายการจะมีที่อยู่ IP หรือชื่อโดเมนของตัวเอง แต่คุณอาจไม่ต้องการเปลี่ยนรหัสของคุณเมื่อย้ายจากสภาพแวดล้อมหนึ่งไปอีกสภาพแวดล้อมหนึ่ง ดังนั้น แทนที่จะฮาร์ดโค้ดที่อยู่เหล่านี้ คุณสามารถใช้การค้นหาบริการภายนอกบน DNS ในตัวของ Kubernetes ได้ในลักษณะเดียวกับบริการ Kubernetes ดั้งเดิม

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

สมมติว่าคุณใช้งานฐานข้อมูล MongoDB บน ​​Google Compute Engine คุณจะติดอยู่ในโลกไฮบริดนี้จนกว่าคุณจะสามารถถ่ายโอนไปยังคลัสเตอร์ได้

โชคดีที่คุณสามารถใช้บริการ Kubernetes แบบคงที่เพื่อทำให้ชีวิตของคุณง่ายขึ้นนิดหน่อย ในตัวอย่างนี้ ฉันสร้างเซิร์ฟเวอร์ MongoDB โดยใช้ Google Cloud Launcher เนื่องจากสร้างขึ้นบนเครือข่ายเดียวกัน (หรือ VPC คลัสเตอร์ Kubernetes) จึงเข้าถึงได้โดยใช้ที่อยู่ IP ภายในที่มีประสิทธิภาพสูง

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

นี่เป็นการตั้งค่าเริ่มต้นบน Google Cloud คุณจึงไม่ต้องกำหนดค่าใดๆ เมื่อคุณมีที่อยู่ IP แล้ว ขั้นตอนแรกคือการสร้างบริการ คุณอาจสังเกตเห็นว่าไม่มีตัวเลือกพ็อดสำหรับบริการนี้ นั่นคือเราสร้างบริการที่จะไม่รู้ว่าจะส่งทราฟฟิกไปที่ใด สิ่งนี้จะช่วยให้คุณสร้างออบเจ็กต์ปลายทางที่จะรับการรับส่งข้อมูลจากบริการนี้ได้ด้วยตนเอง

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นว่าจุดสิ้นสุดกำหนดที่อยู่ IP สำหรับฐานข้อมูลโดยใช้ชื่อ mongo เดียวกันกับบริการ

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

Kubernetes จะใช้ที่อยู่ IP ทั้งหมดเพื่อค้นหาตำแหน่งข้อมูลราวกับว่าเป็น Kubernetes Pod ทั่วไป ดังนั้นตอนนี้คุณจึงสามารถเข้าถึงฐานข้อมูลด้วยสตริงการเชื่อมต่อแบบธรรมดาไปยังชื่อข้างต้น mongodb://mongo ไม่จำเป็นต้องใช้ที่อยู่ IP ในโค้ดของคุณเลย

หากที่อยู่ IP มีการเปลี่ยนแปลงในอนาคต คุณสามารถอัปเดตตำแหน่งข้อมูลของคุณด้วยที่อยู่ IP ใหม่ได้ และแอปพลิเคชันของคุณไม่จำเป็นต้องแก้ไขด้วยวิธีใดเพิ่มเติม

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

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

หนึ่งคือฐานข้อมูลนักพัฒนาและอีกอันคือฐานข้อมูลการผลิต สตริงการเชื่อมต่อสำหรับฐานข้อมูลเหล่านี้มีลักษณะดังนี้ - mLab มอบ URI แบบไดนามิกและพอร์ตแบบไดนามิกให้กับคุณ อย่างที่คุณเห็นมันแตกต่างกัน

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

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

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

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

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

แต่เนื่องจากชื่อภายนอกใช้การส่งต่อ CNAME จึงไม่สามารถทำการส่งต่อพอร์ตได้ ดังนั้นโซลูชันนี้ใช้ได้กับพอร์ตแบบคงที่เท่านั้น และไม่สามารถใช้กับพอร์ตแบบไดนามิกได้ แต่ mLab Free Tier จะให้หมายเลขพอร์ตไดนามิกแก่ผู้ใช้ตามค่าเริ่มต้น และคุณไม่สามารถเปลี่ยนแปลงได้ ซึ่งหมายความว่าคุณต้องการบรรทัดคำสั่งการเชื่อมต่อที่แตกต่างกันสำหรับ dev และ prod สิ่งที่ไม่ดีก็คือคุณจะต้องฮาร์ดโค้ดหมายเลขพอร์ต แล้วคุณจะทำให้การส่งต่อพอร์ตทำงานได้อย่างไร?

ขั้นตอนแรกคือการรับที่อยู่ IP จาก URI หากคุณเรียกใช้ nslookup ชื่อโฮสต์ หรือ ping URI คุณจะได้รับที่อยู่ IP ของฐานข้อมูล หากบริการส่งคืนที่อยู่ IP หลายรายการให้กับคุณ ที่อยู่เหล่านี้ทั้งหมดจะสามารถนำมาใช้ที่จุดสิ้นสุดของออบเจ็กต์ได้

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

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

แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes การทำแผนที่บริการภายนอก

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

ต่อไปในเร็วๆ นี้...

เล่นวิดีโอ

โฆษณาบางส่วน🙂

ขอบคุณที่อยู่กับเรา คุณชอบบทความของเราหรือไม่? ต้องการดูเนื้อหาที่น่าสนใจเพิ่มเติมหรือไม่ สนับสนุนเราโดยการสั่งซื้อหรือแนะนำให้เพื่อน Cloud VPS สำหรับนักพัฒนา เริ่มต้นที่ $4.99, อะนาล็อกที่ไม่เหมือนใครของเซิร์ฟเวอร์ระดับเริ่มต้นซึ่งเราคิดค้นขึ้นเพื่อคุณ: ความจริงทั้งหมดเกี่ยวกับ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps จาก $19 หรือจะแชร์เซิร์ฟเวอร์ได้อย่างไร (ใช้ได้กับ RAID1 และ RAID10 สูงสุด 24 คอร์ และสูงสุด 40GB DDR4)

Dell R730xd ถูกกว่า 2 เท่าในศูนย์ข้อมูล Equinix Tier IV ในอัมสเตอร์ดัม? ที่นี่ที่เดียวเท่านั้น 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ทีวีจาก $199 ในเนเธอร์แลนด์! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - จาก $99! อ่านเกี่ยวกับ วิธีสร้างบริษัทโครงสร้างพื้นฐาน ระดับด้วยการใช้เซิร์ฟเวอร์ Dell R730xd E5-2650 v4 มูลค่า 9000 ยูโรต่อเพนนี?

ที่มา: will.com

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster