연습 - 다시 시작 동작 제어
Azure Container Instances에서는 컨테이너를 쉽고 빠르게 배포할 수 있으므로 이미지 렌더링과 같은 일회성 작업을 실행하거나 애플리케이션을 빌드 및 테스트하는 데 적합합니다.
구성 가능한 다시 시작 정책을 사용하면 해당 프로세스가 완료될 때 컨테이너가 중지되도록 지정할 수 있습니다. 컨테이너 인스턴스는 초 단위로 비용이 청구되기 때문에 작업을 실행하는 컨테이너가 실행되는 동안 사용된 컴퓨팅 리소스에 대해서만 요금이 부과됩니다.
컨테이너 다시 시작 정책이란?
Azure Container Instances에는 세 가지 다시 시작 정책 옵션이 있습니다.
다시 시작 정책 | 설명 |
---|---|
Always | 컨테이너 그룹의 컨테이너가 항상 다시 시작됩니다. 이 정책은 웹 서버와 같은 장기 실행 작업에 적합합니다. 이 설정은 컨테이너를 만들 때 다시 시작 정책이 지정되지 않은 경우 적용되는 기본 설정입니다. |
Never | 컨테이너 그룹의 컨테이너가 절대로 다시 시작되지 않습니다. 컨테이너가 한 번만 실행됩니다. |
OnFailure | 컨테이너 그룹의 컨테이너가 컨테이너에서 실행된 프로세스가 실패할 때만(0이 아닌 종료 코드로 종료될 때) 다시 시작됩니다. 컨테이너가 한 번 이상 실행됩니다. 이 정책은 단기 작업을 실행하는 컨테이너에 적합합니다. |
컨테이너 실행 완료
다시 시작 정책이 실제로 작동하는 모습을 보려면 azuredocs/aci-wordcount 컨테이너 이미지에서 컨테이너 인스턴스를 만들고 OnFailure 다시 시작 정책을 지정합니다. 이 컨테이너는 셰익스피어의 Hamlet 텍스트를 분석하고, 가장 많이 쓰이는 10개의 단어를 표준 출력에 쓰고 종료하는 Python 스크립트를 실행합니다.
이
az container create
명령을 실행하여 컨테이너를 시작합니다.az container create \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \ --restart-policy OnFailure \ --location eastus
Azure Container Instances는 컨테이너를 시작한 다음, 프로세스(또는 이 경우 스크립트)가 종료될 때 컨테이너를 중지합니다. Azure Container Instances가 다시 시작 정책이 Never 또는 OnFailure인 컨테이너를 중지하면 컨테이너의 상태가 Terminated로 설정됩니다.
az container show
을(를) 실행해 컨테이너의 상태를 확인합니다.az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
Terminated 상태에 도달할 때까지 명령을 반복합니다.
az container logs
를 실행하여 컨테이너의 로그에서 출력을 검토합니다.az container logs \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo
다음 출력이 표시됩니다.
[('the', 990), ('and', 702), ('of', 628), ('to', 610), ('I', 544), ('you', 495), ('a', 453), ('my', 441), ('in', 399), ('HAMLET', 386)]