상황
local (mac os)에 minikube으로 k8s 클러스터 구성해 놓고, nginx-ingress helm chart를 install 했으나 LoadBalncer type의 service의 EXTERNAL-IP 가
1 | 🌈 ~/workspace/Charts$ kubectl get services |
솔루션
external ip를 제공하는 퍼블릭 클라우드 제공자 (AWS, Azure GCP등) 에서 kubernates를 서비스 형으로 사용 하는경우에는 문제가 되지 않으나 로컬에 minikube이나 kubeadm 등으로 설치 한 경우는 해당 현상이 발생 합니다.
minikube의 경우 별도의 터미널을 더 열어서 minikube tunnel 명령어를 사용하면 LoadBalancer type의 서비스를 사용 가능 합니다.
새 터미널에서 터널 한 모습
1 | 🌈 ~$ minikube tunnel |
터널 후 원래 터미널에서 로드밸런서 다시 확인
1 | 🌈 ~/workspace/Charts$ kubectl get services |
위와같이 EXTERNAL-IP 에 IP가 할당 된 것을 확인 할 수 있습니다.
2020-10-07 추가.
위 내용은 (라이센스 문제 등으로) Docker desktop 이 아닌 minikube으로 설치한 경우에 해당 하며,
LoadBalancer Type이 아닌 NodePort Type의 서비스도 터널을 해야 내 로컬호스트에서 접속 가능 합니다.