IP publik atau rentang IP stabil untuk koneksi keluar di GKE

20

Saya menggunakan Google Kubernetes Engine untuk berjalan di pod permintaan. Setiap pod terbuka untuk umum ke internet menggunakan layanan nodeport.

Saya mencari cara di GKE untuk mendapatkan IP tunggal atau rentang IP untuk koneksi keluar, untuk memberikannya kepada API pihak ketiga untuk memasukkan mereka ke daftar putih.

IP node GKE tidak dapat dikelola ketika node autoscale atau ketika saya memutakhirkannya. Saya perlu cara untuk mempertahankan IP keluar yang konsisten.

Saya telah mencoba menggunakan gateway NAT sederhana ke node Kubernetes (Menggunakan contoh dari sini ), dan sementara ini merutekan koneksi outbound ke Gateway NAT, itu memecah lalu lintas inbound ke pod (layanan Nodeport) karena mereka turun di Gerbang NAT.

  • Apakah ada rentang IP default untuk wilayah cloud Google yang dapat saya berikan kepada pihak ketiga untuk daftar putih (atau)

  • Jika GKE menyediakan cara untuk memilih simpul IP eksternal dari daftar IP statis yang sudah disediakan sebelumnya (atau)

  • Apakah ada cara lain untuk mencapai memiliki IP statis tunggal atau rentang IP yang mewakili lalu lintas keluar dari pod

Saya telah menemukan pertanyaan serupa seperti ini , tetapi mereka tidak mengatasi masalah saya karena pod harus terhubung secara eksternal, yang rusak saat menggunakan NAT.

Parag
sumber

Jawaban:

6

Google Cloud sekarang menyediakan layanan NAT Gateway yang dikelola - Cloud NAT .

Gateway ini dapat digunakan dengan kluster GKE, yang menyediakan IP jalan keluar publik yang stabil ke semua pod di dalamnya, yang memungkinkan mereka untuk masuk daftar putih oleh penyedia layanan pihak ketiga.

Contoh implementasi untuk menggunakan Cloud NAT dengan GKE disediakan di sini - https://cloud.google.com/nat/docs/gke-example

Parag
sumber
Apakah gugus harus bersifat pribadi?
Gajus
3
Ya, kluster harus bersifat pribadi, tetapi master dapat bersifat publik. Jika salah satu layanan Anda juga harus publik, mereka dapat diekspos oleh loadbalancer.
Parag
@ Patag Apakah itu wajib bahwa cluster harus pribadi? Apakah ada cara, saya dapat menggunakan jika Node IP publik.
Suhas Chikkanna
1
@SuhasChikkanna Dengan CloudNAT no. Jika Anda ingin node memiliki IP eksternal tetapi juga menginginkan IP outbound tunggal, Anda dapat membuat instance gateway NAT Anda sendiri menggunakan Squid, dan memiliki routing bersyarat, yang akan merutekan server internal Anda ke instance secara langsung, tetapi lalu lintas dari luar datang melalui NAT. Ini akan memberi pengguna Anda IP keluar tunggal, sementara membuat node Anda dapat diakses oleh sumber IP yang dipilih.
Parag
@ Tarag Kedengarannya bagus! Pasti akan mencobanya. Terima kasih banyak :)
Suhas Chikkanna
1

Anda dapat mencoba solusi ini:

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

Dalam keadaan normal, simpul Google Kubernetes Engine merutekan semua lalu lintas keluar melalui gateway internet yang terkait dengan cluster node mereka. Koneksi gateway internet, pada gilirannya, ditentukan oleh jaringan Compute Engine yang terkait dengan cluster node. Setiap node dalam cluster memiliki alamat IP eksternal fana. Ketika node dibuat dan dihancurkan selama autoscaling, alamat IP node baru dialokasikan secara otomatis.

Perilaku gateway default berfungsi dengan baik dalam keadaan normal. Namun, Anda mungkin ingin mengubah bagaimana alamat IP eksternal fana dialokasikan untuk:

  • Berikan layanan pihak ketiga dengan alamat IP eksternal yang konsisten.
  • Monitor dan filter lalu lintas keluar dari kluster Mesin Google Kubernetes.
alfabet
sumber