K8s

외부 트래픽을 파드로 전달하기

elysia365 2024. 8. 28.
  • 쿠버네티스에는 클러스터 외부에서 들어오는 트래픽을 파드에 전달하는 여러가지 방법이 있다.

로드밸런서(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로 별도의 포트 포워딩 설정을 하지 않아도 웹애플리케이션에 접근할 수 있다.

댓글