지니데비 기록 자세히보기

데브옵스/Orchestration

[Kubernetes] 4. 서비스 배포 환경 구성 - HELM, Ingress NGINX, metalLB 설치

지니데비 2024. 10. 31. 02:11
728x90

하나의 워커노드에서 실행
** HELM 설치
$ curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
$ helm version


** Ingress NGINX 설치
$ helm repo add ingress-nginx https://charts.nginx.org
$ helm repo update
$ helm repo list
$ helm install my-nginx ingress-nginx/ingress-nginx
$ helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace


** metalLB 설치
$ helm repo add metallb https://metallb.github.io/metallb
$ helm repo update
$ helm install metallb metallb/metallb --namespace metallb-system --create-namespace


** metalLB External-IP 대역대 설정
$ vi metallb-config.yaml

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: my-ip-pool
  namespace: metallb-system
spec:
  addresses:
  # 클러스터 노드 공인IP와 동일한 대역대로, 사용하지 않는 가상IP 범위 지정
  - x.x.x.5-x.x.x.9
  autoAssign: true
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: my-l2-advertisement
  namespace: metallb-system
spec:
  ipAddressPools:
  - my-ip-pool

$ kubectl get validatingwebhookconfigurations
$ kubectl delete validationwebhookconfigurations metallb-webhook-configuration
$ kubectl apply -f metallb-config.yaml


** metalLB BGP모드 해제
$ vi metallb-speaker.yaml

speaker:
  frr:
    enabled: false

$ kubectl apply –f metallb-speaker.yaml

 

※ HELM : 쿠버네티스 패키지 관리 도구

※ Ingress NGINX : 외부의 트래픽을 클러스터 내부의 서비스 라우팅해주는 진입점

※ metalLB : 온프레미스 환경에서 Loadbalancer 기능을 제공하여 외부에서 접근 가능

728x90
반응형