관리 메뉴

피터의 개발이야기

[minikube] service의 type이 LoadBalancer인 경우 external ip가 pending 상태 해결방법 본문

Kubernetes/minikube

[minikube] service의 type이 LoadBalancer인 경우 external ip가 pending 상태 해결방법

기록하는 백앤드개발자 2024. 2. 6. 13:40
반응형

ㅁ 증상

 ㅇ minikube 환경에서 service를 LoadBalancer로 expose 할 경우 external-IP가 pending 상태가 된다.

 ㅇ 해결하는 방법에는 두가지가 있다.

 

ㅁ 해결방법 - service

$ minikube service --url my-service
http://192.168.67.3:31426

$ curl http://192.168.67.3:31426
Hello Kubernetes!%

 ㅇ 접속이 주 목적이라면, minikube service --url 명령어를 통해 해당 서비스의 터널 url을 받아 접속 테스트를 한다.

 ㅇ 참고: minikube service 명령어 상세보기 

 

ㅁ 해결방법 

$ minikube tunnel
Password:
Status:
	machine: minikube
	pid: 47800
	route: 10.96.0.0/12 -> 192.168.67.3
	minikube: Running
	services: [my-service]
    errors:
		minikube: no errors
		router: no errors
		loadbalancer emulator: no errors

  ㅇ 신규 터미널을 열어 minikube tunnel을 실행한다.

 

# pending 해소 확인
$ k get svc my-service
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
my-service   LoadBalancer   10.96.209.198   10.96.209.198   8080:31426/TCP   20m

# 접속테스트
$ curl http://10.96.209.198:8080
Hello Kubernetes!%

 ㅇ tunnel 프로세스가 기동되는 동안에 external-ip가 할당되어 service port를 그대로 이용하여 접속테스트를 할 수 있다.

 

 ㅇ 참고: minikube tunnel 명령어 상세보기 

 

ㅁ minikube help

 참고로 해결방법은 minikube help에 근거를 둔다.

$  minikube -h
minikube는 개발 워크플로우에 최적화된 로컬 쿠버네티스를 제공하고 관리합니다.
........................

Networking and Connectivity Commands:
  service          서비스에 연결된 URL을 반환합니다
  tunnel           Connect to LoadBalancer services
  
........................

 

반응형
Comments