티스토리 뷰

Metallb를 설치하는 이유

  • Service 타입중 하나인 LoadBalancer는 AWS, GCP, Azure 등 클라우드 상에서만 사용사능함
  • LoadBalancer는 외부에서 접속이 가능한 IP 대역을 할당해주는 역할을 한다.
  • 이러한  LoadBalaner를 온프레미스에서 사용하기 위한 오픈소스이다.

 

@MetalLB

 

설치전 준비할 것

  • 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/

 

MetalLB, bare metal load-balancer for Kubernetes

Configuration MetalLB remains idle until configured. This is accomplished by creating and deploying a config map into the same namespace (metallb-system) as the deployment. There is an example config map in manifests/example-config.yaml, annotated with exp

metallb.universe.tf

 

#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 삭제

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함