devnoong.log
article thumbnail
728x90

minikube 를 사용해 쿠버네티스 어플리케이션을  배포하는 작업을 진행해보겠습니다.

 

우선 배포를 진행하기 전 간략하게 쿠버네티스에 대해 정리하는 시간을 가져보도록 하겠습니다.

 

쿠버네티스 클러스터는 아래와 같이 구성되어 있습니다.

 

 

 

Deployment 안에 Master 가 포함 되어있는 구조로,

Master는 Deployment에 포함된 어플리케이션 인스턴스가 클러스터의 개별 노드에서 실행되도록 스케줄을 합니다.

 

즉 Deployment는 쿠버네티스에게 어플리케이션 인스턴스에 대한 생성 및 업데이트를 지시하는 역할을 수행한다고 볼 수 있습니다. 

 

배포를 담당하는 리소스입니다

 

쿠버네티스에서 deployment가 제일 중요하다고 볼 수 있겠죠?

 

 

1. 어플리케이션 배포 (새 유저 권한으로 진행)

쿠버네티스 공식 사이트에서 배포하는 경량 ecoserver를 이용해  deployment 생성 및 배포를 진행해보도록 하겠습니다.

도커 이미지가 있다면 개인 이미지를 이용해서 생성해도 무방합니다.

 

create 명령어는 deployment를 생성

expose 명령어는 외부로 서비스를 노출해 서비스를 실행

 

expose 명령어 옵션 중 type=NodePort로 지정되어야 외부 포트 통신이 가능하기때문에 이 점 유의해주세요!!!

외부로 노출 할 포트는 8080입니다.

sudo su newuser
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
kubectl expose deployment hello-minikube --type=NodePort --port=8080

 

 

2. 외부 IP 포드 포워딩 적용 (새 유저 권한으로 진행)

 

활성화 되어있는 서비스목록을 아래의 명령어를 통해 확인 할 수 있습니다.

 

kubectl get svc

 

hellpo-minikube로 생성한 deloyment가 8080으로 세팅되어 있는 것을 확인 할 수 있습니다~

 

 

하지만 외부 포트 8080 을 열어놓은 상태로 서비스는 활성화 되어있지만 외부 IP traffic을 허용 한 상태는 아니므로 인스턴스 퍼블릭 IP로 접속이 되지는  않습니다.

 

외부 IP에서 접근하기 위해서는  port-forward 명령어로 외부 IP 를 허용합니다

 

address 옵션을 이용해 0.0.0.0 으로 모든 IP 대역을 허용해줍니다.

8888포트로 접속하면 서비스를 오픈해놓은 8080포트로 연결시켜줘 포트포워딩을 실행해줍니다

kubectl port-forward --address 0.0.0.0 svc/hello-minikube 8888:8080

 

인스턴스 퍼블릭 IP의 8888포트로 접속하니 8080으로 포워딩 내역을 아래와 같이 확인 할 수 있습니다

 

 

ecoserver로 어플리케이션 배포한 내역이 아래와 같이 나오네요~

 

minikube를 이용하니 배포를 쉽게 할 수 있어 편리하다는 생각이 드네요~ ㅎㅎ

이러한 장점때문에 개인이 많이 사용하는 것 같습니다

728x90