- helm 을 사용하기 위해 선행으로 설치해야되는 툴이다.
📍 디렉토리 생성
mkdir -p /kube/metallb && cd /kube/metallb
📍 설치
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.5/config/manifests/metallb-native.yaml
📍 IP Address Pool 생성
vim pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: metallb-pool
namespace: metallb-system
spec:
addresses:
- 192.168.0.240-192.168.0.250
kubectl apply -f pool.yaml
📍 L2Advertisement 생성
vim l2.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: metallb-l2
namespace: metallb-system
kubectl apply -f l2.yaml
✏️ Helm 설치
- helm 은 kubernetes 내에서 사용하는 yum 같은 명령어이다.
- helm 을 사용해 Ingress 를 설치해야 한다.
📍 디렉토리 생성
mkdir ~/tmp && cd ~/tmp
📍 설치하기
yum install wget -y
🔗 helm download
- 위 페이지에서 본인에 맞는 링크 주소를 복사하면 된다.
- linux amd64 설치파일을 다운로드했다.
wget https://get.helm.sh/helm-v3.12.1-linux-amd64.tar.gz
tar zxvf helm-v3.12.1-linux-amd64.tar.gz
- 설치파일을 실행해 설치를 시작한다.
- /user/local/bin 디렉토리에 설치하면 모든곳에서 명령어를 실행 가능하게 된다.
mv linux-amd64/helm /usr/local/bin/helm
- 설치가 완료되면 설치파일이 담긴 tmp 디렉토리를 삭제해준다.
rm -rf ~/tmp
✏️ Ingress 설치
📍 helm 에 ingress controller 저장소 등록
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
📍 helm 저장소 업데이트
helm repo update
📍 ingress controller 찾기
helm search repo ingress-nginx
📍 helm 의 ingrees-nginx/ingress-nginx 설정 미리 가져오기
mkdir -p /kube/ingress-nginx && cd /kube/ingress-nginx
helm show values ingress-nginx/ingress-nginx > nginx-ingress.yaml
📍 설정 수정하기
esc
+ /
+ 검색어
로 쉽게 찾을 수 있다.
vim nginx-ingress.yaml
hostNetwork: true
hostPort:
enabled: true
kind: DaemonSet
📍 ingress controller 설치
helm install ingress-nginx ingress-nginx/ingress-nginx -f nginx-ingress.yaml -n ingress-nginx --create-namespace
📍 확인하기
- get all -A 를 하면 daemonset 으로 ingress 가 작동중인것을 확인할 수 있다.
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
calico-system daemonset.apps/calico-node 1 1 1 1 1 kubernetes.io/os=linux 10h
calico-system daemonset.apps/csi-node-driver 1 1 1 1 1 kubernetes.io/os=linux 10h
ingress-nginx daemonset.apps/ingress-nginx-controller 1 1 1 1 1 kubernetes.io/os=linux 75s
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 11h
metallb-system daemonset.apps/speaker 1 1 1 1 1 kubernetes.io/os=linux 26m