MetalLB

업데이트:

MetalLB

MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols. (공식 사이트 / Github)

Install

  • Helm
  • Manifest

Installation with Helm

  1. Helm Repo Add

     $ helm repo add metallb https://metallb.github.io/metallb
    
  2. Install

    • helm chart를 받아서 values.yaml을 수정
      $ helm pull metallb/metallb
      
    • pull 받은 metallb-0.12.1.tgz 파일 압축 해제 후 values.yaml 수정

        $ kubectl create ns metallb-system
        $ helm install metallb -n metallb-system -f ./values.yaml .
      
        $ vi values.yaml
        ...
        configInline:
          address-pools:
           - name: default
             protocol: layer2
             addresses:
             - 192.168.230.151-192.168.230.199
        ...
      

Installation by Manifest

  1. apply the manifest

     $ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml
     $ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml
    
  2. create secret

     $ kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
    
  3. create configmap
     apiVersion: v1
     kind: ConfigMap
     metadata:
       namespace: metallb-system
       name: config
     data:
       config: |
         address-pools:
         - name: default
           protocol: layer2
           addresses:
           - 192.168.230.151-192.168.230.199
    
  4. 설치 확인
     $ k get all -n metallb-system
     NAME                              READY   STATUS    RESTARTS   AGE
     pod/controller-66445f859d-m7kl9   1/1     Running   0          7d3h
     pod/speaker-5gbln                 1/1     Running   0          7d3h
     pod/speaker-b4dj4                 1/1     Running   0          7d3h
     pod/speaker-jbskj                 1/1     Running   0          7d3h
     pod/speaker-s7vhm                 1/1     Running   0          7d3h
     pod/speaker-v5rrs                 1/1     Running   0          7d3h
     pod/speaker-xvqrg                 1/1     Running   0          7d3h
    
     NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE     SELECTOR            AGE
     daemonset.apps/speaker   6         6         6       6            6           kubernetes.io/    os=linux   7d3h
    
     NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
     deployment.apps/controller   1/1     1            1           7d3h
    
     NAME                                    DESIRED   CURRENT   READY   AGE
     replicaset.apps/controller-66445f859d   1         1         1       7d3h
    

댓글남기기