--- Category : ft_service Id : 4 Title : "ft_services : load balancer" Description : "kubernetes에 loadbalancer를 적용해보자" Date : 2020, 11, 4 (Wed) Auther : seolim pre : 3 next : 0 tags : ft_service --- # 4 ft_services : loadBalancer > Link [link not yet]() > Caution 본 문서를 포함한 블로그의 모든 내용은 <b>42 innovation academy</b>의 과제의 작성자의 해석 및 풀이 등으로 이루어져 있습니다.</br>본인이 42 교육생이거나 42 교육을 희망하는 분이라면 글을 먼저 보기보다는 고민해보고 읽어보기를 추천드립니다. > 목적 1. Kubernetes에서 load balancer가 어떤 역할을 진행하는지 알 수 있다. 2. metallb를 kubernetes controller에 적용시킬 수 있다. > Load Balancer 로드 밸런서(Load Balancer)는 서버에 가해지는 부하(load)를 분산(balancing)하는 기술, 혹은 방법을 말한다. 쿠버네티스상에서도 로드벨런서를 통해 클러스텅 가해지는 부하를 분산시킨다. > metallb 쿠버네티스 서비스 타입은 **ClusterIP**, **NodePort**, **LoadBalancer**, **ExternalName**가 있는데, 이중 Load Balancer는 파드와 본인을 연결한 후, 로드밸런서의 IP를 이용해 외부에서 파드에 접근할 수 있는 방식이다. 온프레미스(로컬)환경에는 로드벨런서 장비가 없으므로 사용이 불가하지만, metallb와 같은 addon을 통해서 구현이 가능하다.</br></br>metallb를 minikube에 적용하려면 두가지 방법이 있다. 첫번째가 minikube의 addon을 사용하거나 직접 설치를 하면 된다. **직접 설치** ```shell kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.4/manifests/namespace.yaml kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.4/manifests/metallb.yaml # On first install only kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" ``` **addon 추가** ```shell minikube addons enable metallb ``` 정상적으로 설치되었다면 `get pods -n metallb-system`을 통해 controller를 확인할 수 있을 것이다.</br></br>이후 로드벨런서 설정을 해 줘야 하는데, 이 부분도 직접 설정할 수 도 있고 addon을 활용할 수 도 있다. [addon](https://medium.com/faun/metallb-configuration-in-minikube-to-enable-kubernetes-service-of-type-loadbalancer-9559739787df)