|
|
|
|
@ -12,14 +12,50 @@
|
|
|
|
|
kubectl create namespace etri-aisw
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1-2. ECR 이미지 푸시
|
|
|
|
|
빌드된 이미지를 AWS ECR 레포지토리에 푸시합니다.
|
|
|
|
|
- **Server**: `{AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-server:latest`
|
|
|
|
|
- **Web**: `{AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-web:latest`
|
|
|
|
|
### 1-2. ECR 로그인
|
|
|
|
|
이미지를 푸시하기 위해 ECR에 로그인합니다.
|
|
|
|
|
```bash
|
|
|
|
|
aws ecr get-login-password --region {REGION} | docker login --username AWS --password-stdin {AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 2. Docker 이미지 빌드 및 ECR 푸시
|
|
|
|
|
|
|
|
|
|
### 2-1. 서버(Spring Boot) 이미지 빌드
|
|
|
|
|
```bash
|
|
|
|
|
cd autoflow-server-mgmt
|
|
|
|
|
|
|
|
|
|
# JAR 파일 빌드
|
|
|
|
|
./gradlew bootJar
|
|
|
|
|
|
|
|
|
|
# Docker 이미지 빌드
|
|
|
|
|
docker build -t autoflow-server:latest .
|
|
|
|
|
|
|
|
|
|
# ECR 태그 및 푸시
|
|
|
|
|
docker tag autoflow-server:latest {AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-server:latest
|
|
|
|
|
docker push {AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-server:latest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2-2. 웹 콘솔(Vue.js) 이미지 빌드
|
|
|
|
|
```bash
|
|
|
|
|
cd ../autoflow-web-console
|
|
|
|
|
|
|
|
|
|
# 정적 파일 빌드
|
|
|
|
|
npm install
|
|
|
|
|
npm run build
|
|
|
|
|
|
|
|
|
|
# Docker 이미지 빌드
|
|
|
|
|
docker build -t autoflow-web:latest .
|
|
|
|
|
|
|
|
|
|
# ECR 태그 및 푸시
|
|
|
|
|
docker tag autoflow-web:latest {AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-web:latest
|
|
|
|
|
docker push {AWS_ACCOUNT_ID}.dkr.ecr.{REGION}.amazonaws.com/autoflow-web:latest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 2. 매니페스트 파일 수정
|
|
|
|
|
## 3. 매니페스트 파일 수정
|
|
|
|
|
|
|
|
|
|
배포 전 `kubernetes-aws.yaml` 파일의 아래 항목들을 실제 환경에 맞게 수정해야 합니다.
|
|
|
|
|
|
|
|
|
|
@ -34,7 +70,7 @@ Ingress 리소스의 `annotations` 섹션에서 다음 값을 수정합니다.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 3. 리소스 배포 절차
|
|
|
|
|
## 4. 리소스 배포 절차
|
|
|
|
|
|
|
|
|
|
### 단계 1: MariaDB 초기화 SQL 배포
|
|
|
|
|
데이터베이스 스키마 자동 생성을 위해 ConfigMap을 먼저 배포합니다.
|
|
|
|
|
@ -57,7 +93,7 @@ kubectl apply -f kubernetes-aws.yaml
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 4. 배포 확인 및 검증
|
|
|
|
|
## 5. 배포 확인 및 검증
|
|
|
|
|
|
|
|
|
|
### 4-1. Pod 상태 확인
|
|
|
|
|
모든 Pod가 `Running` 상태인지 확인합니다.
|
|
|
|
|
@ -79,7 +115,7 @@ kubectl logs -n etri-aisw -l app=mariadb
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 5. 문제 해결 (Troubleshooting)
|
|
|
|
|
## 6. 문제 해결 (Troubleshooting)
|
|
|
|
|
|
|
|
|
|
- **Pod Pending**: `cpu` 노드 그룹의 자원이 부족하거나 `nodeSelector`가 일치하지 않는지 확인하세요.
|
|
|
|
|
- **ImagePullBackOff**: ECR 접근 권한(IAM Role) 또는 이미지 경로를 확인하세요.
|
|
|
|
|
|