말하는 컴공감자의 텃밭

인텔리제이로 로컬에서 쿠버네티스 배포 - minikube 본문

카테고리 없음

인텔리제이로 로컬에서 쿠버네티스 배포 - minikube

현콩 2024. 5. 17. 02:31
728x90

배포를 진행해보자.

 

도커 파일, 도커 이미지, JAR 파일이 있다고 가정하고 진행한다.

Yaml 파일 종류를 다루고 Ingress, Service, Deployment를 활용해보는것이 목표.

 

도커 이미지로 배포하기.

먼저 이미지가 존재한다면 터미널에서 간단하게 서버를 열어보자.

 docker run -i -t -p 8080:8080 <<이미지 이름 넣으세요>>

간단하게 8080 포트로 접근할 수 있다.
Docker desktop 에서도 확인가능
인텔리제이 하단 서비스 탭에서도 확인 가능.


 

이제 미니쿠베로 해보자.

https://minikube.sigs.k8s.io/docs/start/

사이트에서 파일을 받거나, 커맨드 명령어를 통해 다운받으면 된다.

 

New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

 

 

그 이후 minikube 경로를 찾아준다.

나는  C:\Program Files\Kubernetes\Minikube 에 존재했다.

 

$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\Program Files\Kubernetes\Minikube'){
[Environment]::SetEnvironmentVariable('Path', $('{0};C:\Program Files\Kubernetes\Minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}

저 경로부분을 수정해주면 된다.

 

 

터미널로 했으면 재시작 하란다.

 

완료

 

 

kubectl get po -A

명령을 실행해보자.

kubectl 는 자주 사용할 명령어이다. 클러스터랑 상호작용하는 명령어이고 명령어를 해석하면

get으로 리소스의 현재 상태를 조회하고, po는 Pod를 의미한다.

-A는 all로 결국 쿠버네티스 클러스터의 모든 Pod의 리소스 목록을 불러온것이다.


쿠버네티스 개념 : https://hb-in99.tistory.com/154

 

쿠버네티스 - Deployment / Pod / Service / Ingress

쿠버네티스는 VM을 통해 컨테이너화 된 개발환경으로 확장 가능한 오픈소스 플랫폼이다.선언적 구성으로 자동화를 통해 효율적으로 관리할 수 있다. 그렇다면 컨테이너는 무엇인가? "컨테이너

hb-in99.tistory.com

 

이제 배포를 할건데. 배포에는 디플로이멘트가 필요하다.

 

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080

두 코드를 통해 'hello-minikube'라는 이름의 디플로이멘트를 생성할것이다. image는"kicbase/echo-server:1.0"를 사용하고

이 이미지는 간단한 Echo 서버를 제공하는 이미지다.

 

 

생성 후 get deployment를 통해 모든 디플로이멘트에 대해 확인할 수 있다.

kubectl get deployment

 

이제 배포를 시작해보자. service를 통해 진행한다.

kubectl get services hello-minikube

배포가 진행된 모습

 

minikube service hello-minikube

를 통해 클러스터 내에서 실행중인 서비스를 외부에서 접근할 수 있는 URL을 제공해 준다.

 

echo 페이지

 

서비스에서도 확인 가능

 

배포된 애플리케이션에 영향을 주지 않고 Kubernetes를 일시 중지합니다.
minikube pause

일시 중지된 인스턴스를 일시 중지 해제합니다.
minikube unpause

클러스터를 중지합니다.
minikube stop

기본 메모리 제한을 변경합니다(다시 시작해야 함).
minikube config set memory 9001

쉽게 설치할 수 있는 Kubernetes 서비스 카탈로그를 찾아보세요.
minikube addons list

이전 Kubernetes 릴리스를 실행하는 두 번째 클러스터를 만듭니다.
minikube start -p aged --kubernetes-version=v1.16.1

모든 Minikube 클러스터를 삭제합니다.
minikube delete --all

 

728x90
Comments