Aws
EKS CodeBuild를 이용해서 자동으로 Pod 업데이트 하기
wngnl05
2024. 12. 24. 14:58
buildspec.yaml < ECR태그를 latest로 할때 >
더보기
version: 0.2
phases:
install:
commands:
# kubectl 설치
- kubectl 설치 명령어 작성!!
# EKS Cluster 인증
- aws eks --region <리전> update-kubeconfig --name <클러스터 이름>
- kubectl get po -n <네임스페이스>
pre_build:
commands:
# CodeCommit 저장소에서 소스 코드를 가져옵니다.
- <ECR 인증>
- MY_ECR="<ECR URL>:<태그>"
build:
commands:
- echo "Building Docker image..."
- docker build -t $MY_ECR .
- echo "Pushing Docker image to Amazon ECR..."
- docker push $MY_ECR
post_build:
commands:
- echo "Deploying to Kubernetes cluster..."
- kubectl delete -f k8s/deployment.yaml
- kubectl delete -f k8s/service.yaml
- kubectl apply -f k8s/deployment.yaml
- kubectl apply -f k8s/service.yaml
- kubectl get all -n <네임스페이스>
buildspec.yaml < ECR태그를 현재 시간으로 할때 >
더보기
deployment.yaml에서 "MY_ECR"을 sed 명령어로 ECR URL로 변경해줍니다.
deployment.yaml에서 "MY_ECR" 이 꼭!! 입력 되어 있어야 합니다.
version: 0.2
phases:
install:
commands:
# kubectl 설치
- kubectl 설치 명령어 작성!!
# EKS Cluster 인증
- aws eks --region <리전> update-kubeconfig --name <클러스터 이름>
- kubectl get po -n <네임스페이스>
pre_build:
commands:
# CodeCommit 저장소에서 소스 코드를 가져옵니다.
- <ECR 인증>
- CURRENT_TIME=$(date '+%Y%m%d%H%M%S')
- MY_ECR="<ECR URL>:$CURRENT_TIME"
build:
commands:
- echo "Building Docker image..."
- docker build -t $MY_ECR .
- echo "Pushing Docker image to Amazon ECR..."
- docker push $MY_ECR
post_build:
commands:
- echo "Deploying to Kubernetes cluster..."
- kubectl delete -f k8s/deployment.yaml
- kubectl delete -f k8s/service.yaml
# deployment.yaml에서 MY_ECR를 ECR URL로 변경
- sed -i "s/MY_ECR/$MY_ECR/g" ./k8s/deployment.yaml
- kubectl apply -f k8s/deployment.yaml
- kubectl apply -f k8s/service.yaml
- kubectl get all -n <네임스페이스>
MY_ECR
CodeBuild의 역활을 EKS Cluster Auth에 설정해보겠습니다.
kubectl -n kube-system edit cm aws-auth
아래의 권한을 수정하여 추가해주세요.
- groups:
- system:masters
rolearn: arn:aws:iam::<사용자 아이디>:role/<CodeBuild 역활 이름>
username: <CodeBuild 역활 이름>