Docs에 설명된 문서 내용을 기반으로 실습을 진행합니다.
- Visual Studio Code:
pom.xml
등 편집 용이를 위해 권장하며, 없어도 실습하는데 지장은 없습니다. - Docker: Linux, Windows or MacOS - 로컬에서 컨테이너화할 때 필요합니다.
- Java Development Kit: OpenJDK도 괜찮습니다. 최신 버전이어도 무방하며, Zulu OpenJDK도 좋은 선택지가 될 것으로 보입니다.
- apache-maven: 실행 경로를 잘 잡아
mvn -version
이 잘 실행되도록 준비하시면 됩니다. - Azure CLI: Windows, Linux, and/or MacOS
- Homebrew를 사용하면
brew install maven
명령어를 통해 openjdk 또한 함께 설치 가능하며,brew install azure-cli
로az
(Azure CLI) 명령어 또한 쉽게 설치 가능합니다.
- Test a Spring sample app locally
- Create ACR
- Azure 구독 선택: 여러 구독이 있을 경우, 사용하고자 하는 구독을 선택할 필요가 있습니다.
- 리소스 그룹 생성: Azure Pass를 이용할 경우, 한국 리전이 아닌
southeastasia
를 권장합니다. - ACR 이름: 하이픈(-)이 들어가지 않는 것이 좋은 것 같습니다. 다른 분들과 겹치지 않는 고유한 이름이어야 합니다.
az acr create --resource-group [your resource group] --location southeastasia \
--name [unique name] --sku Basic
- ACR 로그인시:
az acr login
으로 연동시키는 것이 제일 쉬운데, 사실docker login
등도 가능합니다. 자세한 내용은 링크를 참고 부탁드립니다.
- Upload Docker image to ACR
- 최신 버전의 jib-maven-plugin이 문서와 다를 수 있습니다. 버전을 확인하는 간단한 방법은 실제 저장소에서
Tags
를 살펴보는 것입니다.
pom.xml
파일 변경 사항 diff 예시
- Create AKS
- 리소스 그룹, AKS 클러스터 이름, DNS 이름 등에 유의하여 생성합니다. 역시 고유한 이름이어야 합니다.
az aks create --resource-group=[your resource group] --name=[unique AKS name] \
--dns-name-prefix=[unique DNS name] --generate-ssh-keys
- Deploy to AKS cluster
-
kubectl get services --watch
식으로--watch
옵션을 붙여EXTERNAL-IP
가 업데이트 되면 바로 확인이 가능합니다. -
배포에 대한 scalability는 아래 명령어로 바로 확인 가능합니다.
kubectl scale deployment/gs-spring-boot-docker --replicas=2
- 웹 인터페이스가 잘 나타나지 않는 경우, 아래 명령어를 실행합니다 (출처).
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard