- 도커파일 작성
FROM openjdk:17
WORKDIR /usr/src/myapp
COPY build/libs/spring_boot_eks-0.0.1-SNAPSHOT.jar /usr/src/myapp
CMD ["java", "-jar", "spring_boot_eks-0.0.1-SNAPSHOT.jar"]
- AWS ECR 권한 설정
- IAM > 사용자 > 사용자 추가
-
권한정책
- AmazonEC2ContainerRegistryFullAccess
- AmazonEC2ContainerServiceFullAccess
- AdministratorAccess
-
엑세스 키발급
- 엑세스 키만들기
-
- IAM > 사용자 > 사용자 추가
- ECR 레포지토리 생성
- 프라이빗
- Docker 빌드
- AWS CLI 설치 - 터미널
- AWS CLI 설정 - 터미널
- aws configure
- AWS Access Key ID [None]: 엑세스 키
- AWS Secret Access Key [None]: 시크릿 키
- Default region name [None]: ap-northeast-2
- Default output format [None]: json
- Docker 빌드 - 터미널
- [M1] docker buildx build --platform linux/amd64 -t spring_boot_eks .
- [INTEL & AMD] docker build -t spring_boot_eks .
- docker images
- docker tag spring_boot_eks:latest 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/spring_boot_eks:latest
- docker push 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/spring_boot_eks:latest
- VPC 생성
- k8s > amazon-eks-vpc-private-subnets.yaml (참조)
- 터미널 방식
eksctl create cluster -f amazon-eks-vpc-private-subnets.yaml
- cloudformation 방식
- amazon-eks-vpc-private-subnets.yaml 파일을 cloudformation에 업로드
- cloudformation > 스택 생성
- 스택 이름 : eks-vpc
- ClusterConfig Eks 파일 작성(예시참조)
eksctl create cluster -f eks-config.yaml
- Deployment 작성 (예시참조)
kubectl apply -f deployment.yaml
- Service 작성 LBA (예시참조)
kubectl apply -f service.yaml