Saya menggunakan cluster Kubernetes di GCE menggunakan Gitlab-CI. Saya ingin menjaga biaya agar tetap minimum - inilah pengaturan saya saat ini:
- Node dijalankan pada 3
f1-micro
instance - Pod sistem yang berjalan
Traefik
dikonfigurasi dengan ServiceTypeLoadBalancer
- Dns wildcard dikonfigurasi
- 1
postgres
pod - 1 server web pod dengan
ingress
dikonfigurasi untuk Traefik
Saya ingin mengurangi biaya penempatan saya. Sebagian besar biaya berada pada penyeimbang beban GCE. Apakah ada cara saya bisa menggunakan alamat IP publik alih-alih Load Balancer di GCE? Jika demikian, dapatkah saya menggunakan alamat IP yang dialokasikan untuk cluster (alih-alih memesan IP statis)?
Dengan kata lain, apakah ada cara untuk mengikat ip sesaat ke layanan Kubernetes menggunakan GCE tanpa penyeimbang beban?
Apakah ada konfigurasi lain yang dapat saya lakukan secara berbeda yang akan mengurangi biaya secara umum pada GCE?
Jawaban:
Ya, melalui ExternalIPs. Perlu diketahui bahwa ini akan berarti layanan Anda akan turun jika node yang mengatakan IP eksternal ditetapkan gagal, tetapi jika Anda hanya menjalankan 1 master, Anda mungkin tidak terlalu peduli tentang itu.
Contoh layanan:
IP harus berupa IP internal instance GCE (Ini karena GCE DNAT mengarahkan lalu lintas ke IP internal). Layanan kemudian harus dapat diakses melalui IP eksternal yang ditugaskan node.
Anda mungkin ingin mengubah layanan untuk pengendali masuknya Anda, sehingga Anda dapat merutekan semua aplikasi Anda melalui satu IP.
sumber
NodePort
versi jugaSaya lebih suka tidak menggunakan penyeimbang beban cloud, sampai diperlukan, karena biaya dan vendor terkunci.
Sebagai gantinya saya menggunakan ini: https://kubernetes.github.io/ingress-nginx/deploy/
Ini adalah pod yang menjalankan penyeimbang beban untuk Anda. Halaman itu memiliki catatan instalasi khusus GKE.
sumber