티스토리 뷰
Metallb를 설치하는 이유
- Service 타입중 하나인 LoadBalancer는 AWS, GCP, Azure 등 클라우드 상에서만 사용사능함
- LoadBalancer는 외부에서 접속이 가능한 IP 대역을 할당해주는 역할을 한다.
- 이러한 LoadBalaner를 온프레미스에서 사용하기 위한 오픈소스이다.
설치전 준비할 것
- CNI 셋팅(Calio, Flannel등)
본격적으로 Metallb 설치하기 :)
1. Installation by Manifest
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml
2. Secret 생성하기
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" -o yaml --dry-run=client > metallb-secret.yaml
kubectl apply -f metallb-secret.yaml
kubectl get secrets -n metallb-system
3. ConfigMap 설정하기
공식문서: https://metallb.universe.tf/configuration/
#config.yaml
#파일을 생성한다
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses: # minikube ip 명령어 이용
- 192.168.1.240-192.168.1.250
다음과 같이 ConfigMap을 생성후 적용한다
kubectl apply -f config.yaml
controller 파드가 crashLoopBackOff 에러가 날 때
kubectl rollout restart deployment <디플로이먼트>
또는
controller deployment에서 imagePullPolicy=Always 삭제