[k8s] metalLB 설치

전우석·2022년 6월 27일
0
post-thumbnail

metalLB

AWS와 같은 클라우드 플랫폼에서는 로드밸런서를 제공해준다. 하지만 k8s의 경우 로드벨런서를 제공해주지 않기 때문에 L4 로드벨런스를 사용할 때 metalLB를 사용한다.
metalLB를 사용하기 위해서는 외부와 연결되는 IP가 필요하다.

인터넷 dns 확인

route 명령어 혹은 ip addr 명령어 사용해서 현재 ip 할당, dns가 정상적으로 설정되어있는지 확인한다.
만약 정상적으로 설정되어 있지않다면 sudo dhclient [network interface name]을 통해 자동할당한다.

설정 변경

metalLB 구성을 위해 k8s에서 kube-proxy strictARP true로 변경해준다.

kubectl edit configmap -n kube-system kube-proxy

apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
strictARP: true

namespace 생성

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml

metalLB component 생성

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml

Serect 생성

kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

라우팅 처리를 위한 ConfigMap 작성

cat << EOF | kubectl create -f -
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.56.200-192.168.56.229
EOF

Object 확인

kubectl get all -n metallb-system

ReplicatSet controller 생성

vi [yaml파일]
kubectl create -f [yaml파일]

로드밸런서 타입 Service 생성

vi [yaml파일]
kubectl create -f [yaml파일]

로드밸런서 서비스 확인

kubectl get service testapp-svc-lb

로드밸런서 접근

curl [LB-IP]

0개의 댓글