딸기말차

[MSA] 15. Minikube, k9s 설치 본문

Bootcamp/MSA

[MSA] 15. Minikube, k9s 설치

딸기말차 2023. 10. 30. 11:17

엔코아 플레이데이터(Encore Playdata) Backend 2기 백엔드 개발 부트캠프 (playdata.io)

 

백엔드 개발 부트캠프

백엔드 기초부터 배포까지! 매력있는 백엔드 개발자 포트폴리오를 완성하여 취업하세요.

playdata.io


1. Container 실행

# configserver 디렉토리에서 mvnw, .mvn 파일 옮겨오기
cp -R ./mvnw ../
cp -R ./.mvn ../

파일 옮겨온 것 확인

# 빌드할 파일에 미리 실행권한 주기
vim start.sh

#!/bin/bash
chmod 700 ./configserver/mvnw
chmod 700 ./eurekaserver/mvnw
chmod 700 ./licensing-service/mvnw
chmod 700 ./organization-service/mvnw
chmod 700 ./gatewayserver/mvnw
./configserver/mvnw package dockerfile:build

start.sh 작성

# sh 파일 실행
sh start.sh

sh 파일을 통한 전체 빌드

# docker-compose 백그라운드 실행
docker-compose up -d

백그라운드 실행

# 실행 된 컨테이너들 확인
docker ps

실행 된 컨테이너 확인


2. DB 생성

# 테이블 생성
CREATE SEQUENCE kbo_id_seq;
CREATE TABLE IF NOT EXISTS "kbo" (
	"id" INTEGER NOT NULL DEFAULT nextval('kbo_id_seq'::regclass),
	"player_num" VARCHAR(30) NULL DEFAULT NULL,
	"name" VARCHAR(255) NULL DEFAULT NULL,
	"position" VARCHAR(50) NULL DEFAULT NULL,
	"team_name" VARCHAR(50) NULL DEFAULT NULL,
	"birthday" VARCHAR(30) NULL DEFAULT NULL,
	"career" VARCHAR(255) NULL DEFAULT NULL,
	"height" INTEGER NULL DEFAULT NULL,
	"weight" INTEGER NULL DEFAULT NULL,
	PRIMARY KEY ("id")
);

create table

# Data Insert
INSERT INTO "kbo" ("id", "player_num", "name", "position", "team_name", "birthday", "career", "height", "weight") VALUES
	(15, 'No.117', '강민균', '내야수(우투우타)', 'LG 트윈스', '2000년 07월 17일', '강남초-서울이수중-덕수고-홍익대', 178, 81),
	(16, 'No.59', '강효종', '투수(우투우타)', 'LG 트윈스', '2002년 10월 14일', '저동초(일산서구리틀)-충암중-충암고', 184, 86),
    ...

데이터 삽입 결과

 


3. Minikube, k9s 설치

쿠버네티스를 간단하게 사용해보기 위해 Minikube를 설치해보았다.

# wsl 안에서 minikube 설치 
curl -o minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 설치
sudo install minikube /usr/local/bin/minikube

# 버전 확인하기 
minikube version

minikube 설치

# minikube 를 사용하기 위해 메모리, cpu 할당
minikube start --driver=docker --memory=8g --cpus=4 --disk-size 40GB --kubernetes-version=1.26.0

minikube 를 위한 메모리와 cpu 할당

# minikube를 위한 pod가 잘 설치되었는지 확인
minikube kubectl -- get pods -A

pod 확인

# 설치
curl -LO https://dl.k8s.io/release/v1.27.2/bin/linux/amd64/kubectl

# 실행 권한부여
chmod +x ./kubectl

# 디렉토리 이동
sudo mv ./kubectl /usr/local/bin/kubectl

# 권한 부여
sudo chown root: /usr/local/bin/kubectl

설치 및 권한부여

# 모니터링을 위한 k9s 설치
wget https://github.com/derailed/k9s/releases/download/v0.13.7/k9s_0.13.7_Linux_i386.tar.gz tar xvzf k9s_0.13.7_Linux_i386.tar.gz

# 디렉토리 이동
sudo mv k9s /usr/local/bin

k9s 설치
디렉토리 이동

# k9s 를 통해 떠있는 pod 확인
k9s
0

k9s 실행
모니터링

# 실행중인 minikube 정지
minikube stop

minikube stop


4. 62일차 후기

프로젝트를 이미지로 만들어 컨테이너를 실행, 정상 동작하는지 확인해보았고, 해당 컨테이너를 관리하기 위해 쿠버네티스의 경량 판인 minikube를 설치해보았다. 또한, 동작 중인 pod 들을 모니터링하기 위한 k9s 또한 설치해보았다.

 

당장 개발 과정에서는 모니터링 시스템의 필요성을 크게 느끼지 못하고있지만, 추후 개발이 완료 된 서비스를 유지보수 하기 위해 모니터링 툴을 활용한다면 내 pod 의 상태를 편리하게 파악해 문제가 생겼을 시 대처할 수 있겠다는 생각이 들었다.