- 쿠버네티스에는 클러스터 외부에서 들어오는 트래픽을 파드에 전달하는 여러가지 방법이 있다.
로드밸런서(LoadBalancer)
- 쿠버네티스에서 로드밸런서는 서비스(service) 의 type 중 하나이다.
- 로드밸런서는 트래픽을 받은 노드가 아닌 다른 노드에서 실행되는 파드에도 트래픽을 전달할 수 있다.
- 로드밸런서 서비스는 클러스터로 트래픽을 전달해 주는 외부 로드밸런서와 함께 동작한다.
- 레이블 셀렉터와 일치하는 파드로 트래픽을 전달한다.
- 로드밸런서 서비스는 클러스터 전체를 커버한다.
- 따라서 어느 노드에 있는 파드라도 트래픽을 전달 받을 수 있다.
- 대상 파드가 요청받은 노드에 있지 않더라도 쿠버네티스가 올바른 노드까지 트래픽을 전달한다.
로드밸런서 서비스 yaml 정의
apiVersion: v1
kind: Service
metadata:
name: numbers-web
spec:
ports:
- port: 8080
targetPort: 80
selector:
app: numbers-web
type: LoadBalancer
- 이 서비스는 8080번 포트를 주시하다가 해당 포트로 들어오는 트래픽을 웹 애플리케이션 파드의 80번 포드로 전달한다.
- 이 서비스가 클러스터에 배포되면 kubectl로 별도의 포트 포워딩 설정을 하지 않아도 웹애플리케이션에 접근할 수 있다.
댓글