개요
본 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
'Cloud > k8s' 카테고리의 다른 글
[kubernetes] kubernetes의 Object (0) | 2022.08.08 |
---|---|
[kubernetes] service, deployment, pod, Loadbalancer 삭제 (0) | 2022.05.24 |
[kubernetes] pod와 deployment 차이 (0) | 2022.05.23 |
[kubernetes] 어플리케이션 배포 (0) | 2022.05.20 |
[kubernetes] 동작 환경 구축 (0) | 2022.05.17 |