R&D/클라우드

EKS internal NLB 사용하기

sunshout 2021. 3. 17. 09:08

EKS 에서 Internal NLB로 Service를 구성하고 싶을 때 manifest

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-internal: "true"
  name: aws-internal-nlb
  labels:
    app: myapp
spec:
  type: LoadBalancer
  ports:
  - name: "http"
    port: 80
    targetPort: 80
  selector:
    app: myapp

위와 같은 설정을 가지면

 choonhoson# kubectl get service
NAME               TYPE           CLUSTER-IP       EXTERNAL-IP                                                                     PORT(S)        AGE
aws-internal-nlb   LoadBalancer   172.20.51.204    a9ba561c1d70b44ccb56cd625852c3d8-0bcf3e1b91deabb9.elb.us-west-1.amazonaws.com   80:30472/TCP   2m16s

Service가 생기면서 Internal NLB가 매핑 됩니다.

그러면 Internal NLB는 어느 subnet에 생겨야 할까요?
Kubernetes 에서는 internal ELB가 생기는 위치를 알려주기 위해서 subnet 에 Tag를  활용합니다.

Internal NLB가 생성되기를 원하는 subnet에는 다음과 같은 Tag가 적혀 있어야  합니다.

kubernetes.io/role/internal-elb = 1

VPC->Subnet->Tags