ฉันต้องกำหนดค่า IP แบบคงที่ใน POD อันใดอันหนึ่งของฉัน เนื่องจากบริการระยะไกล (นอกคลัสเตอร์ของฉัน) ต้องการรายการ IP ที่อนุญาตพิเศษที่เชื่อถือได้
ฉันทำตามเอกสารที่จัดทำโดย Google:
https://cloud.google.com/nat/docs/overview?hl=es-419
https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
แต่เมื่อพยายามกำหนดค่าการรับส่งข้อมูลขาออกโดยใช้บริการ Google cloud NAT ในคลัสเตอร์ GKE ของฉัน รวมถึงการปลอมแปลงโดยใช้ ip-masq-ตัวแทน
ฉันเริ่มหมดเวลาและมีปัญหาเมื่อเข้าถึงบริการระยะไกลนอกคลัสเตอร์
My Cluster อยู่ในเวอร์ชัน 1.19.10-gke.1600
.
ฉันได้ลองไฟล์ปรับแต่งเหล่านี้ด้วยผลลัพธ์ต่อไปนี้:
resyncInterval: 60 วินาที
ผลลัพธ์:
เชน IP-MASQ (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
คืนทั้งหมด -- ทุกที่ 10.0.0.0/8 /* ip-masq-agent: ทราฟฟิกในเครื่องไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 172.16.0.0/12 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 192.168.0.0/16 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
MASQUERADE ทั้งหมด -- ทุกที่ ทุกแห่ง /* ip-masq-agent: ทราฟฟิกขาออกนั้นย่อย
ject to MASQUERADE (ต้องอยู่ในกลุ่มสุดท้าย) */
บริการใช้ IP ที่ไม่ถูกต้อง
resyncInterval: 60 วินาที
masqLinkLocal: จริง
เชน IP-MASQ (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
ส่งคืนทั้งหมด -- ทุกที่ 169.254.0.0/16 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 10.0.0.0/8 /* ip-masq-agent: ทราฟฟิกในเครื่องไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 172.16.0.0/12 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 192.168.0.0/16 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
MASQUERADE ทั้งหมด -- ทุกที่ ทุกแห่ง /* ip-masq-agent: ทราฟฟิกขาออกนั้นย่อย
ject to MASQUERADE (ต้องอยู่ในห่วงโซ่สุดท้าย) */
ผลเช่นเดียวกัน บริการภายนอกของฉันได้รับ IP ที่ไม่ถูกต้อง
nonMasqueradeCIDRs:
- 0.0.0.0/0
resyncInterval: 60 วินาที
masqLinkLocal: จริง
เชน IP-MASQ (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
ส่งคืนทั้งหมด -- ทุกที่ ทุกแห่ง /* ip-masq-agent: ทราฟฟิกในเครื่องไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
MASQUERADE ทั้งหมด -- ทุกที่ ทุกแห่ง /* ip-masq-agent: ทราฟฟิกขาออกนั้นย่อย
ject to MASQUERADE (ต้องอยู่ในห่วงโซ่สุดท้าย) */
ดูเหมือนว่าจะทำงานได้ดีขึ้นเนื่องจากบริการภายนอกได้รับ IP ที่ถูกต้อง แต่ฉันพบปัญหาการเชื่อมต่อและการหมดเวลา
นี่คือการกำหนดค่า NAT ของฉัน:
การทำแผนที่ NAT
- ความพร้อมใช้งานสูง: ใช่
- ซับเน็ตต้นทางและช่วง IP: ช่วง IP หลักและรองของซับเน็ตทั้งหมด
- ที่อยู่ IP ของ NAT: static-egress-ip XXX.XXX.XXX.XXX
ฉันคิดไม่ออก ใครสามารถให้คำแนะนำกับฉันได้บ้าง
หลังจากได้รับคำตอบแล้ว ฉันอัปเดตไฟล์ปรับแต่งเพื่อเพิ่ม ips ตามเอกสารประกอบของ Google Cloud ไฟล์จะเป็นดังนี้:
nonMasqueradeCIDRs:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 100.64.0.0/10
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 240.0.0.0/4
resyncInterval: 60 วินาที
masqLinkLocal: จริง
ผลลัพธ์ของสิ่งนี้ใน iptables คือ:
เชน IP-MASQ (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
คืนทั้งหมด -- ทุกที่ 10.0.0.0/8 /* ip-masq-agent: ทราฟฟิกในเครื่องไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 172.16.0.0/12 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 192.168.0.0/16 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 100.64.0.0/10 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 192.0.0.0/24 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 192.0.2.0/24 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 192.88.99.0/24 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 198.18.0.0/15 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 198.51.100.0/24 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
คืนทั้งหมด -- ทุกที่ 203.0.113.0/24 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ย่อย
ปฏิเสธที่จะ MASQUERADE */
ส่งคืนทั้งหมด -- ทุกที่ 240.0.0.0/4 /* ip-masq-agent: การรับส่งข้อมูลในเครื่องนั้นไม่ใช่ย่อย
ปฏิเสธที่จะ MASQUERADE */
MASQUERADE ทั้งหมด -- ทุกที่ ทุกแห่ง /* ip-masq-agent: ทราฟฟิกขาออกนั้นย่อย
ject to MASQUERADE (ต้องอยู่ในกลุ่มสุดท้าย) */
แต่ถ้าผมม้วนผม checkip.amazonaws.com
เพื่อดูว่าโหนดกำลังใช้ IP ใดอยู่ ฉันได้รับ IP ที่แตกต่างจากที่กำหนดไว้ในการกำหนดค่า NAT Cloud ของฉัน และบริการภายนอกปฏิเสธคำขอที่ไม่น่าเชื่อถือจากคลัสเตอร์ของฉัน