Kubernetes에서 내부 계층 4 로드 밸런서를 어떻게 생성합니까?

Kubernetes에서 내부 계층 4 로드 밸런서를 어떻게 생성합니까?

kube-proxy를 사용하는 대신 내부 트래픽 관리를 위해 AWS에서 내부(외부 IP 없음) 계층 4 로드 밸런서(네트워크 LB 또는 클래식 LB)를 생성하려고 합니다.

다음은 내 매니페스트 파일입니다. 주석 지정 방법에 관계없이 외부 LB를 계속 생성합니다. 저는 "aws-load-balancer-type" 주석과 기본값이 "internal"로 되어 있는 "aws-load-balancer-scheme" 없이 이것을 시도했습니다. 다음에 무엇을 시도해야할지 모르겠습니다. (아마도 다음에는 레이어 7 LB를 시도해 볼 것입니다.)

% k get svc|grep test
test-internal-lb                      LoadBalancer   10.100.253.178   a29xxx.us-west-2.elb.amazonaws.com    80:xxx/TCP,443:xxx/TCP   8s
apiVersion: v1
kind: Service
metadata:
  name: test-internal-lb
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internal
    service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
spec:
  type: LoadBalancer
  selector:
    app: test-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 8080
  - name: https
    protocol: TCP
    port: 443
    targetPort: 8080

답변1

해결책:

test-app            LoadBalancer   172.20.40.154    internal-a03xxx.us-west-2.elb.amazonaws.com   80:8000/TCP   11d
kind: Service
metadata:
  name: test-app
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: “true”
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  selector:
    app: test-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 8000

관련 정보