성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>AKS의 준비 단계 - ACR(Azure Container Registry)에 docker 이미지 배포</h1> <p> 지난 글에서, AKS를 생성해 봤는데요,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > AKS - Azure Kubernetes Service 생성 및 SLO/SLA 변경 방법 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12922'>https://www.sysnet.pe.kr/2/0/12922</a> </pre> <br /> 기왕 이렇게 된 거 실습까지 해봐야겠습니다. ^^<br /> <br /> 이를 위해 우선, 여러분들의 컨테이너 이미지를 등록할 ACR을 만들어야 하는데요, ACR이라고 해서 뭔가 특별한 것은 아니고, 단순히 docker registry를 Azure 서비스로 제공하는 것이라고 보면 됩니다.<br /> <br /> 이에 대한 실습은 아래의 마이크로소프트 문서에서 자세하게 설명하고 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 자습서: AKS(Azure Kubernetes Service)에 대한 애플리케이션 준비 ; <a target='tab' href='https://docs.microsoft.com/ko-kr/azure/aks/tutorial-kubernetes-prepare-app'>https://docs.microsoft.com/ko-kr/azure/aks/tutorial-kubernetes-prepare-app</a> 자습서: Azure Container Registry 배포 및 사용 ; <a target='tab' href='https://docs.microsoft.com/ko-kr/azure/aks/tutorial-kubernetes-prepare-acr?tabs=azure-cli'>https://docs.microsoft.com/ko-kr/azure/aks/tutorial-kubernetes-prepare-acr?tabs=azure-cli</a> </pre> <br /> 저는 그냥 따라 해 보면서 정리만 해보겠습니다.<br /> <br /> 우선, 로컬에서 docker를 이용한 예제를 준비합니다. 이를 위해 여러분들이 만든 앱을 사용해도 되지만, 그런 거 없이 실습한다면 마이크로소프트에서 제공하는 앱을 사용해도 됩니다.<br /> <br /> 아래와 같이 git clone을 하는데, 보통 여러분들이 만든 응용 프로그램의 git repo로 교체해도 무방합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\docker_test> <span style='color: blue; font-weight: bold'>git clone https://github.com/Azure-Samples/azure-voting-app-redis.git</span> Cloning into 'azure-voting-app-redis'... remote: Enumerating objects: 174, done. Receiving objects: 54% (94/ reused 0 (delta 0), pack-reused 174 eceiving objects: 53% (93/174) Receiving objects: 100% (174/174), 37.21 KiB | 0 bytes/s, done. Resolving deltas: 100% (78/78), done. C:\docker_test> <span style='color: blue; font-weight: bold'>cd azure-voting-app-redis</span> C:\docker_test\azure-voting-app-redis> <span style='color: blue; font-weight: bold'>docker-compose up -d</span> </pre> <br /> docker-compose 명령으로 해당 예제의 repo에 있던 docker-compose.yaml에 따라 2개(mcr.microsoft.com/azuredocs/azure-vote-front, mcr.microsoft.com/oss/bitnami/redis)의 추가 이미지를 내려받고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\docker_test\azure-voting-app-redis> <span style='color: blue; font-weight: bold'>docker images</span> REPOSITORY TAG IMAGE ID CREATED SIZE mcr.microsoft.com/azuredocs/azure-vote-front v1 f44e86b12d33 About a minute ago 907MB mcr.microsoft.com/oss/bitnami/redis 6.0.8 3a54a920bb6c 15 months ago 103MB mcr.microsoft.com/azuredocs/azure-vote-front <none> 4d4d08c25677 4 years ago 935MB </pre> <br /> 각각의 앱에 해당하는 컨테이너 인스턴스가 실행됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\docker_test\azure-voting-app-redis> <span style='color: blue; font-weight: bold'>docker ps</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e4b60a6b056 mcr.microsoft.com/oss/bitnami/redis:6.0.8 "/opt/bitnami/script…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp azure-vote-back 50708b9aeb51 mcr.microsoft.com/azuredocs/azure-vote-front:v1 "/entrypoint.sh /sta…" 2 minutes ago Up 2 minutes 443/tcp, 0.0.0.0:8080->80/tcp azure-vote-front </pre> <br /> 정상적으로 앱이 실행 중인지 확인도 해보고. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\docker_test\azure-voting-app-redis> <span style='color: blue; font-weight: bold'>curl http://127.0.0.1:8080</span> <!DOCTYPE html> ...[생략]... <div id="space"></div> <div id="space"></div> ...[생략]... </pre> <br /> <hr style='width: 50%' /><br /> <br /> 자, 그럼 저렇게 로컬에서 앱에 대한 개발이 끝났다면, 이제 AKS에 올리기 전 ACR에 등록해야 하는데, 당연히 이를 위한 Azure 서비스를 만들어야 합니다.<br /> <br /> 아래와 같이 검색해 "Container registries"를 찾아,<br /> <br /> <img alt='aks_acr_1.png' src='/SysWebRes/bbs/aks_acr_1.png' /><br /> <br /> 들어가서, "Create" 버튼을 눌러 ACR을 하나 생성해 줍니다. 생성 과정은 일반적인 Azure 리소스와 다르지 않습니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='aks_acr_2.png' src='/SysWebRes/bbs/aks_acr_2.png' /><br /> <br /> 만약, 테스트나 학습 용도라면 마지막의 SKU 선택을 유의해야 합니다. 표준(Standard)이 기본값인데, <a target='tab' href='https://azure.microsoft.com/en-us/pricing/details/container-registry/'>요금 표</a>를 참조해 적당한 갓으로 선택합니다. (2022년 1월 17일 기준, Basic은 한 달 6,000원, Standard는 24,000원, Premium은 60,000원 정도 됩니다.)<br /> <br /> 이렇게 생성한 ACR을 원격에서 접근하기 위해 Access Key가 있어야 하는데요, 다음과 같이 해당 Container registry 대시보드에서 등록해 줍니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='aks_acr_3.png' src='/SysWebRes/bbs/aks_acr_3.png' /><br /> <br /> 이제 저 액세스 계정으로 로그인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\docker_test\azure-voting-app-redis> <span style='color: blue; font-weight: bold'>docker login ariestest.azurecr.io</span> Username: ariestest Password: Login Succeeded </pre> <br /> 참고로 이 정보는 윈도우의 경우 "<a target='tab' href='https://www.sysnet.pe.kr/2/0/12267'>Windows Credentials</a>"에 보관되므로 다음번에는 계정 정보를 입력할 필요 없이 다음과 같이 곧바로 인증이 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > c:\temp> <span style='color: blue; font-weight: bold'>docker login ariestest.azurecr.io</span> Authenticating with existing credentials... Login Succeeded </pre> <br /> 이전에 제가 ACR이 docker registry라고 했는데요, 그렇기 때문에 이후의 사용법은 그것과 완전히 동일하므로 아래의 글에서 설명한 것을 적용하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Docker Desktop에서 별도 서버에 설치한 docker registry에 이미지 올리는 방법 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12921'>https://www.sysnet.pe.kr/2/0/12921</a> </pre> <br /> 따라서 여러분들이 ACR에 올릴 로컬 이미지에 대한 태깅 및 push를 하고, (이 글의 예제는 2개이므로,)<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // azure-vote-front c:\temp> <span style='color: blue; font-weight: bold'>docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 ariestest.azurecr.io/azuredocs/azure-vote-front</span> c:\temp> <span style='color: blue; font-weight: bold'>docker push ariestest.azurecr.io/azuredocs/azure-vote-front</span> // redis c:\temp> <span style='color: blue; font-weight: bold'>docker tag mcr.microsoft.com/oss/bitnami/redis:6.0.8 ariestest.azurecr.io/oss/bitnami/redis</span> c:\temp> <span style='color: blue; font-weight: bold'>docker push ariestest.azurecr.io/oss/bitnami/redis</span> </pre> <br /> 이미지가 잘 등록되었는지에 대해서는 ACR 대시보드에서 "Repositories"를 이용해 다음과 같이 확인할 수 있습니다.<br /> <br /> <img alt='aks_acr_4.png' src='/SysWebRes/bbs/aks_acr_4.png' /><br /> <br /> 이렇게 ACR에 이미지를 배포했으면, 다음 단계로 AKS에서 ACR로부터 이미지를 받아 컨테이너를 실행하는 과정을 거치면 됩니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1732
(왼쪽의 숫자를 입력해야 합니다.)