Kubernetes - dapatkah saya menghindari penggunaan Penyeimbang Beban GCE untuk mengurangi biaya?

10

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-microinstance
  • Pod sistem yang berjalan Traefikdikonfigurasi dengan ServiceTypeLoadBalancer
  • Dns wildcard dikonfigurasi
  • 1 postgres pod
  • 1 server web pod dengan ingressdikonfigurasi 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?

Mitkins
sumber
1
Anda dapat mengekspos layanan Anda dengan hanya menggunakan jenis layanan NodePort, tetapi itu akan memperkenalkan beberapa batasan untuk penggunaan Anda. Untuk informasi lebih lanjut, kunjungi tautan ini .
Kamran

Jawaban:

10

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:

apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  ports:
    - port: 80
      protocol: TCP
  selector:
    app: myapp
  externalIPs:
    - a.b.c.d

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.

ConnorJC
sumber
2
Setelah mempelajari tentang hal DNAT, saya menyadari bahwa saya perlu mengkonfigurasi aturan firewall untuk mengizinkan lalu lintas pada port tertentu ke instance GCE. Setelah ini, saya berhasil mengimplementasikan saran Anda. Saya juga telah berhasil menguji NodePortversi juga
Mitkins
2

Saya 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.

Michael Cole
sumber