쿠버네티스 실습을 위한 미니 디스코드 프로젝트
Docker Compose를 이용해 이미지를 빌드한 뒤 레지스트리에 푸시하고 쿠버네티스에 적용합니다.
docker compose -f docker-compose.yml build
docker tag mini-discord-chat:dev username/mini-discord-chat:latest
docker push username/mini-discord-chat:latest
kubectl apply -f k8s/WebSocket 연결 부하 테스트용 scripts/load-test.sh 파일을 제공합니다. 사용 전 실행 권한을 부여하세요.
chmod +x scripts/load-test.shREDIS_HOST와 PORT 환경 변수를 지정하면 접속할 서버를 변경할 수 있습니다. 예시:
REDIS_HOST=example.com PORT=8080 ./scripts/load-test.sh로컬 개발 시 docker-compose.dev.yml 파일을 사용해 애플리케이션과 Redis를 실행할 수 있습니다.
먼저 애플리케이션 빌드를 위해 다음 명령을 실행하세요.
프로젝트에 Gradle Wrapper가 포함되어 있지 않으므로 로컬에 설치된 Gradle을 사용합니다.
gradle bootJar이후 아래 명령으로 컨테이너를 실행합니다.
docker compose -f docker-compose.dev.yml up --build종료 시에는 다음 명령을 실행합니다.
docker compose -f docker-compose.dev.yml downDocker Compose를 이용해 애플리케이션과 Redis를 함께 실행할 수 있습니다.
docker-compose up --build위 명령을 실행하면 애플리케이션은 localhost:8080에서 동작하며 Redis는 같은 네트워크에서 6379 포트로 접근할 수 있습니다.
scripts/deploy.sh 스크립트는 다음 순서로 동작합니다.
gradle bootJar명령으로 애플리케이션 JAR을 빌드합니다.- Docker 이미지를 빌드해 레지스트리에 푸시합니다.
k8s디렉터리의 매니페스트를 적용해 클러스터에 배포합니다.
터미널에서 아래 명령을 실행하면 위 과정을 한 번에 수행합니다.
./scripts/deploy.sh