Kubernetes

[Minikube] LoadBalancer Type 서비스 생성

uuuhhh 2022. 11. 12. 17:58

⚠️ Local Minikube 환경에서 진행하였습니다. ⚠️

 

▪︎ LoadBalancer


  • cn-app-svc-l.yaml
apiVersion: v1
kind: Service
metadata:
	name: cn-app-svc-l
spec:
	selector:
		name: cn-app
	ports:
		- port: 9002
		  targetPort: 8080
	type: LoadBalancer

 

1️⃣ 매니페스트 파일로 서비스 배포하는 방법

  • kubectl apply -f cn-app-svc-l.yaml

2️⃣ 명령어로 서비스 배포하는 방법

  • kubectl expose deployment cn-app-dpy --type=LoadBalancer --name cn-app-svc-l

 

  • 서비스 배포 후 확인해 보니 EXTERNAL-IP 가 계속 pending 상태인 것을 확인
  • Minikube는 LoadBalancer Type 지원을 안 하기 때문에 외부 IP를 받아올 수가 없다.

 

1️⃣ 터널링하여 받은 외부 포트로 외부에서 서비스 접근 방법

  • 아래 명령어로 터널링하여 받은 외부 포트를 통해 접속할 수 있다.
    • minikube service cn-app-svc-l

 

2️⃣ 가상 LoadBalancer (MetalLB) 만들어서 외부에서 서비스 접근

  • addon 명령어로 현재 노드를 Load Balancer로 설정

 

  • config IP 지정을 위해 Minikube IP 확인

 

  • cn-app-svc-ml.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: minikube-ip
      protocol: layer2
      addresses:
      - 192.168.49.2/32

 

  • MetalLB에 ConfigMap 적용

 

  • 서비스로 노출시키니 로드밸런서 타입 확인 및 외부 IP (Minikube IP) 확인

 

  • 외부 IP + 8080포트로 요청 보내도 과묵하시다..

 

💡 Docker driver를 사용중이라면 minikube service [svc-name] 명령어를 이용하여 접속
    ⎿  나의 MinikubeDocker Driver를 사용하는 것을 확인 !
    ⎿  그래서 Docker Driver가 뭐길래 ?  Docker Driver 특성
 

Docker Driver 특성

📍 Epilogue CSP의 KS8 서비스를 사용하기 전에 Minikube를 사용하여 프로젝트를 진행하였다. 노드에 올려놓은 파드에 대해서 여러 가지 타입으로 서비스를 배포하고자 하였다. 그런데 NodePort, LoadBalanc

code1212-uh.tistory.com

 

  • 결국 위 안내를 받아 minikube service 명령어 수행

 

  • 요청에 응답 확인!