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