Cloud/k8s

[kubernetes] Deployment외부 노출 방법 NodePort, LoadBalancer

jinkwon.kim 2022. 5. 23. 23:58
728x90
반응형

개요

    본 post는 인프런의 "쿠버네티스-쉽게시작"을 기반으로 작성 되었습니다.

Deployment외부 노출 방법인, NodePort와 LoadBalancer를 알아 보겠습니다.

NodePort 사용

1. 배포 명령

    #kubectl expose deployment deploy-nginx --type=NodePort --port=80

2. 단점

    NodePort를 사용하면 외부에서 접속 하기 위해서 실제 Node의 IP와 Port를 알아야하는 번거로움이 생긴다. 

LoadBalancer 사용

    k8s에서 기본적으로 제공하지 않는 type입니다. 그래서 LoadBalancer를 사용하기 위해서는 CNCF에서 제공하는 MetalLB를 사용하겠습니다. 

1. 장점

    - 외부에 Node의 실제 IP를 노출 할 필요 가 없습니다.
    - virtual IP를 대표 IP로 만들어서 외부에 노출하는 방식을 사용하며 이는 Node IP를 노출 하는 부담을 줄일수 있습니다.

    - 경로최적화를 구현 할 수 있습니다. 

2. metallb 설치

    - metallb 설치는 yaml로 제공 됩니다.

    #kubectl apply -f ~/_Lecture_k8s_starter.kit/ch2/2.4/metallb.yaml

3. test pod를 deployment 배포

    #kubectl create deployment chk-hn --image=sysnet4admin/chk-hn

    #kubectl scale deployment chk-hn --replicas=3

4.loadlbalancer type으로 deployment를 expose

    #kubectl expose deployment chk-hn --type=LoadBalancer --port=80

     

 

728x90
반응형