ft_services - MetalLB
Load Balancer 요구사항
- Load Balancer는 외부에서 여러분의 서비스에 접근하는 것을 관리합니다. 이 load balancer가 여러분의 클러스터에 접근하는 유일한 입구가 될 것입니다. 각 서비스와 연관된 포트를 유지해야합니다.(ex. IP:3000 for Grafana) Load Balancer는 하나의 IP를 가집니다.
- 서비스로의 모든 Redirection 은 load balancer를 이용해 이루어질 수 있도록 하세요. FTPS, Grafana, Wordpress, phpMyAdmin, nignx는 모두 LoadBalancer 타입입니다. Influx DB와 MySQL은 ClusterIP 타입입니다. 다른 entrie들은 존재할 수 있지만, 그 entrie들 중 어느것도 NodePort 타입이어서는 안됩니다.
- Node Port, Ingress, kubectl port-forward 명령어는 금지.
- Cloud provider에서 제공하는 loadbalancer는 여기선 무용지물입니다. MetalLB 라는걸 알아보세요.
serviceTypes
쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신이다. 쿠버네티스를 실행 중이라면 클러스터를 실행하고 있는 것이다. 클러스터를 만들면 이 위에 쿠버네티스의 Object (Pod, Service.. 등)들을 생성할 수 있다.
서비스를 클러스터 밖에 위치한 외부 ip주소에 노출하고 싶은 경우가 있다. serviceTypes는 원하는 서비스 종류를 지정할 수 있게 해준다.
-
Cluster IP - 클러스터 내부에서만 서비스에 접근할 수 있다.
-
Node Port - [NodeIP]:[NodePort] 로 클러스터 외부에서 서비스에 접속할 수 있다.
-
Load Balancer - 클라우드 공급자의 로드 밸런서를 사용하여 서비스를 외부에 노출시킨다.
- 인그레스사용하여 서비스를 노출시킬 수도 있다. 인그레스는 서비스 유형은 아니지만, 클러스터의 진입점 역할을 한다.
metallb를 사용하는 이유
on premise 환경에서는 로드밸런서 타입을 이용할 수 없다고 한다. 그런데 온프레미스 환경에서도 로드밸런서 타입의 서비스를 배포할 수 있게 해주는 도구가 MetalLB라고 한다.
on premise(온프레미스): 소프트웨어 등 솔루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말한다.
metallb configuration
공식 홈페이지에서는 matallb 구성이 방법이 나와있다.
-
MetalLB는 구성 될 때까지 유휴 상태로 유지됩니다. 이는 배포와 동일한 네임 스페이스 (metallb-system)에 configmap을 만들고 배포하여 수행됩니다.
-
configmap config.yaml의 이름을 지정한 경우 kubectl apply -f config.yaml을 사용하여 매니페스트를 배포 할 수 있습니다.
-
특정 구성은 서비스 IP를 알리는 데 사용할 프로토콜에 따라 다릅니다.
- Layer 2 configuration
- BGP configuration
- Advanced configuration
그중 가장 간단하다고 나와있는 layer 2 방법을 사용했다.
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.99.100-192.168.99.250
마지막 addresses 부분을 자신이 외부로 노출할 수 있는 IP 범위를 적어준다.
minikube는 내장 addons를 지원한다.
애드온(Addons)
애드온은 클러스터 내부에서 필요한 기능들을 위해 실행되는 pod입니다. 애드온에 사용되는 pod은 디플로이먼트, 리플리케이션컨트롤러등에 의해 관리됩니다. 애드온이 사용하는 네임스페이스는 kube-system입니다.
출처 https://arisu1000.tistory.com/27828
minikube addons list 로 지원하는 서비스의 목록을 볼 수 있다.
#metallb
minikube addons enable metallb // metalLB를 활성화
kubectl apply -f ./srcs/metallb/metallb_config.yaml
config.yaml 파일을 적용시키고 로드밸런서 타입의 서비스를 배포할 수 있다.
Author And Source
이 문제에 관하여(ft_services - MetalLB), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cheesecookie/ftservices-MetalLB저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)