Kubernetes-GCE로드 밸런서를 사용하여 비용을 절감 할 수 있습니까?


10

Gitlab-CI를 사용하여 GCE에 Kubernetes 클러스터를 배포하고 있습니다. 비용을 최소로 유지하고 싶습니다. 현재 설정은 다음과 같습니다.

  • 3 개의 f1-micro인스턴스에서 실행되는 노드
  • TraefikServiceType으로 구성된 시스템 포드 실행LoadBalancer
  • 와일드 카드 DNS 구성
  • 포드 1 개postgres
  • ingressTraefik 용으로 구성된 웹 서버 포드 1 개

배포 비용을 줄이고 싶습니다. 대부분의 비용은 GCE로드 밸런서에 있습니다. GCE의로드 밸런서 대신 퍼블릭 IP 주소를 사용할 수있는 방법이 있습니까? 그렇다면 고정 IP를 예약하는 대신 클러스터에 할당 된 IP 주소를 활용할 수 있습니까?

다시 말해서,로드 밸런서없이 GCE를 사용하여 임시 IP를 Kubernetes 서비스에 연결하는 방법이 있습니까?

GCE에서 일반적으로 비용을 절감 할 수있는 다른 구성이 있습니까?


1
NodePort 서비스 유형 만 사용하여 서비스를 노출 할 수 있지만 배치에 약간의 제한이 있습니다. 더 많은 정보를 원하시면이 링크를 방문하십시오 .
Kamran

답변:


10

예, ExternalIP를 통해. 이는 외부 IP가 할당되었다고 말한 노드에 장애가 발생하면 서비스가 중단된다는 것을 의미하지만 마스터를 1 개만 실행하는 경우에는 그다지 신경 쓰지 않을 것입니다.

서비스 예 :

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

는 IP 필요가있을하는 내부 (그 이유 GCE DNATs 내부 IP와 트래픽)을 GCE 인스턴스의 IP. 그런 다음 노드에 할당 된 외부 IP를 통해 서비스에 액세스 할 수 있어야합니다.

하나의 IP를 통해 모든 앱을 라우팅 할 수 있도록 수신 컨트롤러의 서비스를 변경하고 싶을 것입니다.


2
DNAT에 대해 알게 된 후 특정 포트에서 GCE 인스턴스로의 트래픽을 허용하도록 방화벽 규칙을 구성해야한다는 것을 깨달았습니다. 이 후 귀하의 제안을 성공적으로 이행 할 수있었습니다. 나는 또한 성공적으로 NodePort버전을 테스트했습니다
Mitkins

2

비용과 공급 업체 잠금으로 인해 필요할 때까지 클라우드로드 밸런서를 사용하지 않는 것이 좋습니다.

대신 나는 이것을 사용한다 : https://kubernetes.github.io/ingress-nginx/deploy/

로드 밸런서를 실행하는 포드입니다. 이 페이지에는 GKE 관련 설치 정보가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.