본문 바로가기

데이터 사이언스

[VirtualBox][Kubernates] LoadBalancer로 애플리케이션 인터넷에 연결하기

1. minikube 시작하기

minikube start --driver=docker --no-vtx-check

 

2. 인터넷 연결을 위한 Service.yml 파일 만들기

vim service.yml

 

아래는 service.yml에 들어가는 내용이다.

---
apiVersion: v1
kind: Service
metadata:
  name: demo-service
  namespace: development
spec:
  selector:
    app: pod-info
  ports:
    - port: 80
      targetPort: 3000
  type: LoadBalancer

 

 

파일을 만들었다면 Kubernate에 적용시키자.

kubectl apply -f service.yaml

정상적으로 완료된다면

"service/demo-service created"과 같이 뜬다.

 

 

 

3. IP를 찾아 인터넷에서 확인하기

외부 IP를 찾기 위해 아래와 같이 입력한다.

kubectl get services -n development

그리고 실행하면 External IP를 이용해야 하는데 pending이 뜨는 것을 볼 수 있다.

이와 같이 뜨는 이유는 minikubekubeadm과 같은 커스텀 Kubernate Cluster은 LoadBalancer가 없다.

AWS, Google Cloud, Azure과 같은 경우에는 자체적으로 IP를 할당해 준다.

 

이를 해결하기 위해서는 또 다른 터미널을 Ctrl + Alt + T로 열어준다.

그리고 아래와 같이 입력한다.

minikube tunnel

 

 

실행화면

그림1. minikube tunnel 실행전

 

그림2. minikube tunnel 실행 후

 

 

그리고 Linux에서 FireFox를 켜고 External IP에 적혀있는 주소를 입력해 주면 다음을 확인할 수 있다.

이것은 바로 자신의 애플리케이션이 인터넷에 연결된 모습이다!

그림3. 인터넷에 연결된 모습

 

 

 

 

Reference

Linkedin/ learning kubernates/ Kim Schlesinger