ช่วง IP หรือ IP สาธารณะที่เสถียรสำหรับการเชื่อมต่อขาออกใน GKE


21

ฉันใช้ Google Kubernetes Engine เพื่อเรียกใช้ตามคำขอ แต่ละพ็อดจะได้รับการเปิดเผยสู่อินเทอร์เน็ตโดยใช้บริการของโหนด

ฉันกำลังมองหาวิธีใน GKE เพื่อรับ IP เดียวหรือช่วง IP สำหรับการเชื่อมต่อขาออกเพื่อให้ API ของบุคคลที่สามเป็นรายการที่อนุญาต

IP ของโหนด GKE ไม่สามารถจัดการได้เมื่อโหนดปรับขนาดอัตโนมัติหรือเมื่อฉันอัพเกรดพวกเขา ฉันต้องการวิธีในการรักษา IP ขาออกที่สม่ำเสมอ

ฉันได้ลองใช้ NAT Gateway แบบง่ายไปยังโหนด Kubernetes (โดยใช้ตัวอย่างจากที่นี่ ) และในขณะที่เส้นทางนี้เชื่อมต่อการเชื่อมต่อขาออกไปยัง NAT Gateway มันแบ่งทราฟฟิกขาเข้าไปยังฝัก (บริการ Nodeport) เกตเวย์ของ NAT

  • มีช่วง IP เริ่มต้นสำหรับภูมิภาค google cloud ซึ่งฉันสามารถให้กับบุคคลที่สามในรายการที่อนุญาต (หรือ)

  • หาก GKE จัดเตรียมวิธีในการเลือก IP ภายนอกของโหนดจากรายการที่สงวนไว้ล่วงหน้าของ IP แบบคงที่ (หรือ)

  • มีวิธีอื่นที่จะทำให้การมี IP คงที่เดียวหรือช่วง IP ที่แสดงถึงทราฟฟิกขาออกจากพ็อด

ฉันได้พบคำถามที่คล้ายกันเช่นนี้แต่พวกเขาไม่ได้แก้ปัญหาของฉันเนื่องจากฝักควรเชื่อมต่อกับภายนอกซึ่งจะหยุดพักเมื่อใช้ NAT

คำตอบ:


6

Google Cloud ในขณะนี้ให้บริการการจัดการ NAT Gateway - เมฆ NAT

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

ตัวอย่างการใช้งาน Cloud NAT กับ GKE มีให้ที่นี่ - https://cloud.google.com/nat/docs/gke-example


คลัสเตอร์ต้องเป็นแบบส่วนตัวหรือไม่?
Gajus

3
ใช่คลัสเตอร์ต้องเป็นแบบส่วนตัว แต่ต้นแบบสามารถเป็นแบบสาธารณะได้ หากบริการใด ๆ ของคุณจำเป็นต้องเปิดเผยต่อสาธารณะ
Parag

@Parag จำเป็นต้องมีคลัสเตอร์หรือไม่ มีวิธีฉันสามารถใช้ถ้า Node IPs เป็นสาธารณะ
Suhas Chikkanna

1
@SuhasChikkanna ด้วย CloudNAT หมายเลข หากคุณต้องการให้โหนดมี IP ภายนอก แต่ต้องการ IP ขาออกเดียวคุณสามารถสร้างอินสแตนซ์เกตเวย์ NAT ของคุณเองโดยใช้ Squid และมีการกำหนดเส้นทางตามเงื่อนไขซึ่งจะกำหนดเส้นทางเซิร์ฟเวอร์ภายในของคุณไปยังอินสแตนซ์โดยตรง ในผ่าน NAT สิ่งนี้จะช่วยให้ผู้ใช้ของคุณมี IP ขาออกเดียวในขณะที่ทำให้โหนดของคุณสามารถเข้าถึงแหล่ง IP ที่เลือกได้
Parag

@Parag ฟังดูดี! จะลองอย่างแน่นอน ขอบคุณมาก :)
Suhas Chikkanna

1

คุณสามารถลองวิธีนี้:

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

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

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

  • ให้บริการบุคคลที่สามด้วยที่อยู่ IP ภายนอกที่สอดคล้องกัน
  • ตรวจสอบและกรองปริมาณข้อมูลออกจากคลัสเตอร์ Google Kubernetes Engine
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.