1. 현재 모든 서비스를 확인한다.
kubectl get service -A
대시보드 설정시 노드포트를 설정하는 것은 개발용도로만 사용할 수 있으며 서비스 용도로는 사용하지 않는다.
2. node의 정보를 확인해본다.
kubectl get nodes -o wide
EXTERNAL-IP 할당을 받아야 한다.
1. MetalLB 설치
1)
# see what changes would be made, returns nonzero returncode if different
kubectl get configmap kube-proxy -n kube-system -o yaml | \
sed -e "s/strictARP: false/strictARP: true/" | \
kubectl diff -f - -n kube-system
# actually apply the changes, returns nonzero returncode on errors only
kubectl get configmap kube-proxy -n kube-system -o yaml | \
sed -e "s/strictARP: false/strictARP: true/" | \
kubectl apply -f - -n kube-system
2)
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml
3)
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-frr.yaml
2. ingress-nginx 설치
1) nginx ingress controller 설치할 파일 deploy.yaml을 다운로드
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/cloud/deploy.yaml
혹은
kubectl applly -f [해당 링크]
kubectl applly -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/cloud/deploy.yaml
2) 배포하기
kubectl apply -f deploy.yaml
* 충분한 시간을 기다림
- matalb-system 확인하기
kubectl get all -A
kubeclt get all -n metallb-system
컨트롤러 두개가 생김 위에 000은 의도된것이다. 냅두면됨
kubectl get all -n ingress-nginx 치기 3개가 나오는데 nginx컨트롤러 하나만 올ㄹ라오면 되고 external-ip 가 올라오는 걸 확인해야함
metalLB설치 하기
설정:
# see what changes would be made, returns nonzero returncode if different
kubectl get configmap kube-proxy -n kube-system -o yaml | \
sed -e "s/strictARP: false/strictARP: true/" | \
kubectl diff -f - -n kube-system
# actually apply the changes, returns nonzero returncode on errors only
kubectl get configmap kube-proxy -n kube-system -o yaml | \
sed -e "s/strictARP: false/strictARP: true/" | \
kubectl apply -f - -n kube-system
MetalLB를 설치하려면 매니페스트를 적용 ( 2개 적용)
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-frr.yaml
설정 정보 확인하기
metallb-pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: metallb-pool
namespace: metallb-system
spec:
addresses:
- 192.168.25.200-192.168.25.250
kubectl apply -f metallb-pool.yaml
- dashboard 설치 하기
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
로드밸런서 타입으로 변경하기
kubectl edit service kubernetes-dashboard -n kubernetes-dashboard
참고자료
ingress-nginx 레이어 2 구성 yml : https://metallb.universe.tf/configuration/
ingress-nginx: https://thekoguryo.github.io/oracle-cloudnative/oss/ingress-controller/1.install-nginx-ingress-controller/
metalLB : https://metallb.universe.tf/installation/
dashboard 로드밸런서: https://mlops-for-all.github.io/docs/appendix/metallb/
관련정보 : https://kh-guard.tistory.com/34
베어메탈서버 mataLb 아키텍처 : https://pyrasis.com/jHLsAlwaysUpToDateKubernetes/Unit06/05
'Docker' 카테고리의 다른 글
[Docker] Traefik (0) | 2023.07.11 |
---|---|
[Docker] Deep Dive - swarm cluster (0) | 2023.06.26 |
[쿠버네티스] ingress (0) | 2023.05.08 |
[docker 시리즈 2] 왜 도커인가? (0) | 2023.04.25 |
[docker 시리즈 1] 도커 컨테이너 실행 (1) | 2023.04.25 |