Gitlab-CI를 사용하여 GCE에 Kubernetes 클러스터를 배포하고 있습니다. 비용을 최소로 유지하고 싶습니다. 현재 설정은 다음과 같습니다.
- 3 개의
f1-micro
인스턴스에서 실행되는 노드 Traefik
ServiceType으로 구성된 시스템 포드 실행LoadBalancer
- 와일드 카드 DNS 구성
- 포드 1 개
postgres
ingress
Traefik 용으로 구성된 웹 서버 포드 1 개
배포 비용을 줄이고 싶습니다. 대부분의 비용은 GCE로드 밸런서에 있습니다. GCE의로드 밸런서 대신 퍼블릭 IP 주소를 사용할 수있는 방법이 있습니까? 그렇다면 고정 IP를 예약하는 대신 클러스터에 할당 된 IP 주소를 활용할 수 있습니까?
다시 말해서,로드 밸런서없이 GCE를 사용하여 임시 IP를 Kubernetes 서비스에 연결하는 방법이 있습니까?
GCE에서 일반적으로 비용을 절감 할 수있는 다른 구성이 있습니까?
답변
예, 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를 통해 모든 앱을 라우팅 할 수 있도록 수신 컨트롤러의 서비스를 변경하고 싶을 것입니다.
답변
비용과 공급 업체 잠금으로 인해 필요할 때까지 클라우드로드 밸런서를 사용하지 않는 것이 좋습니다.
대신 나는 이것을 사용한다 : https://kubernetes.github.io/ingress-nginx/deploy/
로드 밸런서를 실행하는 포드입니다. 이 페이지에는 GKE 관련 설치 정보가 있습니다.