Kubernetes - tôi có thể tránh sử dụng GCE Load Balancer để giảm chi phí không?


10

Tôi đang triển khai một cụm Kubernetes trên GCE bằng Gitlab-CI. Tôi muốn giữ chi phí ở mức tối thiểu - đây là thiết lập hiện tại của tôi:

  • Các nút chạy trên 3 f1-microtrường hợp
  • Một nhóm hệ thống đang chạy được Traefikcấu hình với ServiceTypeLoadBalancer
  • Cấu hình dns ký tự đại diện
  • 1 postgres quả
  • 1 pod máy chủ web được ingresscấu hình cho Traefik

Tôi muốn giảm chi phí triển khai của tôi. Hầu hết các chi phí nằm trong bộ cân bằng tải GCE. Có cách nào tôi có thể sử dụng địa chỉ IP công cộng thay vì Tải cân bằng trên GCE không? Nếu vậy, tôi có thể sử dụng địa chỉ IP được phân bổ cho cụm (thay vì đặt IP tĩnh) không?

Nói cách khác, có cách nào để kết nối một ip phù du với dịch vụ Kubernetes bằng GCE mà không cần bộ cân bằng tải không?

Có cấu hình nào khác tôi có thể làm khác đi để giảm chi phí nói chung trên GCE không?


1
Bạn có thể hiển thị dịch vụ của mình bằng cách chỉ sử dụng loại dịch vụ NodePort, nhưng điều đó sẽ giới thiệu một số hạn chế cho việc triển khai của bạn. Để biết thêm thông tin truy cập liên kết này .
Kamran

Câu trả lời:


10

Có, thông qua InternalIPs. Xin lưu ý rằng điều này có nghĩa là dịch vụ của bạn sẽ ngừng hoạt động nếu nút cho biết IP bên ngoài được gán không thành công, nhưng nếu bạn chỉ chạy 1 chủ thì có lẽ bạn không quan tâm nhiều đến điều đó.

Dịch vụ ví dụ:

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

IP cần phải là IP bên trong của thể hiện GCE (Điều này là do GCE DNAT lưu lượng truy cập đến các IP bên trong). Dịch vụ nên được truy cập thông qua IP bên ngoài được gán của nút.

Bạn có thể sẽ muốn thay đổi dịch vụ cho bộ điều khiển xâm nhập của mình để bạn có thể định tuyến tất cả các ứng dụng của mình thông qua một IP.


2
Sau khi tìm hiểu về điều DNAT, tôi nhận ra rằng tôi cần phải định cấu hình quy tắc tường lửa để cho phép lưu lượng truy cập trên một số cổng nhất định vào đối tượng GCE. Sau này tôi đã có thể thực hiện thành công đề xuất của bạn. Tôi cũng đã thử nghiệm thành công một NodePortphiên bản
Mitkins

2

Tôi không thích sử dụng các bộ cân bằng tải đám mây, cho đến khi cần thiết, vì chi phí và nhà cung cấp khóa.

Thay vào đó tôi sử dụng cái này: https://kubernetes.github.io/ingress-nginx/deploy/

Đó là một pod chạy bộ cân bằng tải cho bạn. Trang đó có ghi chú cài đặt cụ thể GKE.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.