Super Kawaii Cute Cat Kaoani
본문 바로가기

Linux/Kubernetes

[AWS] k8s에서 LoadBalancer 구성하기 (classic, nlb)

728x90

k8s에서 LoadBalancer 구성하기 (classic, nlb)


💡 k83에서 로드밸런서 사용하기

  • on-premise : metallb를 사용하여 LB를 구축해둔다.
  • aws : 자체적으로 LB 서비스를 제공하고 있으므로 yaml 파일 내에서 서비스 타입을 LoadBalancer를 지정하면 자동으로 LB api와 연결하여 LB를 생성해준다.
    • alb : L7 LoadBalancer → ingress를 생성해준다.
    • nlb : L4 LoadBalancer
    • classic lb ← Haproxy를 이용하여 기본적인 기능의 L4, L7의 기능을 제공한다.

✏️  EKS에서 별다른 옵션없이 LB 서비스를 배포하면 Classic LB가 배포된다.

       만약, nlb & alb를 선택하고 싶다면 추가 옵션을 metadata에 추가.

 

✅ Pod 배포

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx-pod
spec:
  containers:
  - name: nginx-ctn
    image: nginx
    ports:
    - containerPort: 80

nginx_pod.yaml

 

✅ LB 배포

apiVersion: v1
kind: Service
metadata:
  name: nginx-lb
spec:
  type: LoadBalancer
  selector:
    app: nginx-pod
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80

nginx_lb.yaml

 

✅ EC2 > 로드 밸런서

 

✅ DNS 이름:포트로 웹 확인

 

✅ nlb 타입으로 배포

apiVersion: v1
kind: Service
metadata:
  name: nginx-lb
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
  type: LoadBalancer
  selector:
    app: nginx-pod
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80

nginx_lb.yaml

 

728x90