다음을 통해 공유


(사용되지 않음) Kubernetes에서 애플리케이션 업데이트

팁 (조언)

Azure Kubernetes Service를 사용하는 이 자습서의 업데이트된 버전은 자습서: AKS(Azure Kubernetes Service)에서 애플리케이션 업데이트를 참조하세요.

경고

ACS(Azure Container Service)는 더 이상 사용되지 않습니다. ACS에 새로운 기능이나 기능이 추가되지 않습니다. 모든 API, 포털 환경, CLI 명령 및 설명서는 더 이상 사용되지 않는 것으로 표시됩니다.

2017년에는 Kubernetes 관리, 배포 및 작업을 간소화하기 위해 AKS(Azure Kubernetes Service)를 도입했습니다. Kubernetes 오케스트레이터를 사용하는 경우 2020년 1월 31일까지 AKS로 마이그레이션하세요. 시작하려면 Azure Kubernetes Service로 마이그레이션을 참조 하세요.

자세한 내용은 Azure.com Azure Container Service 사용 중단 공지 사항을 참조하세요.

애플리케이션이 Kubernetes에 배포된 후 새 컨테이너 이미지 또는 이미지 버전을 지정하여 업데이트할 수 있습니다. 이렇게 하면 배포의 일부만 동시에 업데이트되도록 업데이트가 준비됩니다. 이처럼 스테이징 업데이트가 수행되므로 업데이트 중에도 애플리케이션을 계속 실행할 수 있습니다. 또한 배포 오류가 발생하는 경우에는 롤백 메커니즘도 제공됩니다.

7부 중 6부인 이 자습서에서는 샘플 Azure Vote 앱이 업데이트됩니다. 완료하는 작업에는 다음이 포함됩니다.

  • 프런트 엔드 애플리케이션 코드 업데이트
  • 업데이트된 컨테이너 이미지 만들기
  • Azure Container Registry에 컨테이너 이미지 푸시
  • 업데이트된 컨테이너 이미지 배포

후속 자습서에서는 Log Analytics가 Kubernetes 클러스터를 모니터링하도록 구성됩니다.

시작하기 전 주의 사항:

이전 자습서에서는 애플리케이션이 컨테이너 이미지, Azure Container Registry에 업로드된 이미지 및 Kubernetes 클러스터로 패키지되었습니다. 그런 다음 Kubernetes 클러스터에서 애플리케이션을 실행했습니다.

애플리케이션 소스 코드와 이 자습서에서 사용되는 미리 만들어진 Docker Compose 파일을 포함하는 애플리케이션 리포지토리도 복제되었습니다. 리포지토리의 복제본을 만들었으며 디렉터리를 복제된 디렉터리로 변경했는지 확인합니다. 내부에는 이름이 지정된 디렉터리와 이름이 azure-vote 지정된 docker-compose.yml파일이 있습니다.

이러한 단계를 완료하지 않은 경우 다음을 수행하려면 자습서 1 – 컨테이너 이미지 만들기로 돌아갑니다.

애플리케이션 업데이트

이 자습서에서는 애플리케이션이 변경되고 업데이트된 애플리케이션이 Kubernetes 클러스터에 배포됩니다.

애플리케이션 소스 코드는 디렉터리 내에서 azure-vote 찾을 수 있습니다. 파일을 열려면 코드 편집기 또는 텍스트 편집기를 사용하여 config_file.cfg 파일을 엽니다. 이 예제 vi 에서는 사용됩니다.

vi azure-vote/azure-vote/config_file.cfg

값을 VOTE1VALUEVOTE2VALUE로 변경한 후 파일을 저장합니다.

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

파일을 저장하고 닫습니다.

컨테이너 이미지 업데이트

docker-compose를 사용하여 프런트 엔드 이미지를 다시 만들고 업데이트된 애플리케이션을 실행합니다. 인수 --build 는 애플리케이션 이미지를 다시 만들도록 Docker Compose에 지시하는 데 사용됩니다.

docker-compose up --build -d

로컬로 애플리케이션 테스트

업데이트된 애플리케이션을 확인하려면 https://localhost:8080로 이동합니다.

Azure에서의 Kubernetes 클러스터 이미지

이미지 태그 지정 및 푸시

컨테이너 레지스트리의 azure-vote-front loginServer를 사용하여 이미지에 태그를 지정합니다.

az acr list 명령을 사용하여 로그인 서버 이름을 가져옵니다.

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

docker tag를 사용하여 이미지에 태그를 지정합니다. <acrLoginServer>을 Azure Container Registry 로그인 서버 이름 또는 공용 레지스트리 호스트 이름으로 대체합니다. 또한 이미지 버전이 redis-v2로 업데이트된 것을 확인하세요.

docker tag azure-vote-front <acrLoginServer>/azure-vote-front:redis-v2

Docker 푸시를 사용하여 레지스트리에 이미지를 업로드합니다. <acrLoginServer>를 Azure Container Registry 로그인 서버 이름으로 대체하십시오.

docker push <acrLoginServer>/azure-vote-front:redis-v2

업데이트 애플리케이션 배포

최대 가동 시간을 보장하려면 애플리케이션 Pod의 여러 인스턴스를 실행해야 합니다. kubectl get Pod 명령을 사용하여 이 구성을 확인합니다.

kubectl get pod

출력:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

azure-vote-front 이미지를 실행하는 Pod가 여러 개 없을 경우, azure-vote-front 배포를 확장하십시오.

kubectl scale --replicas=3 deployment/azure-vote-front

애플리케이션을 업데이트하려면 kubectl set 명령을 사용합니다. <acrLoginServer>을(를) 컨테이너 레지스트리의 로그인 서버 또는 호스트 이름으로 업데이트합니다.

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:redis-v2

배포를 모니터링하려면 kubectl get pod 명령을 사용합니다. 업데이트된 애플리케이션이 배포되면 Pod가 종료되고 새 컨테이너 이미지로 다시 만들어집니다.

kubectl get pod

출력:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running   0          5m
azure-vote-front-1297194256-tpjlg   1/1       Running   0         1m
azure-vote-front-1297194256-tptnx   1/1       Running   0         5m
azure-vote-front-1297194256-zktw9   1/1       Terminating   0         1m

업데이트된 애플리케이션 테스트

서비스의 외부 IP 주소를 가져옵니다 azure-vote-front .

kubectl get service azure-vote-front

IP 주소로 이동하여 업데이트된 애플리케이션을 확인합니다.

Azure에서의 Kubernetes 클러스터 이미지

다음 단계

이 자습서에서는 애플리케이션을 업데이트하고 이 업데이트를 Kubernetes 클러스터에 롤아웃했습니다. 다음 작업이 완료되었습니다.

  • 프런트 엔드 애플리케이션 코드 업데이트
  • 업데이트된 컨테이너 이미지 만들기
  • 컨테이너 이미지를 Azure Container Registry에 푸시
  • 업데이트된 애플리케이션 배포

Log Analytics를 사용하여 Kubernetes를 모니터링하는 방법에 대해 알아보려면 다음 자습서로 진행하세요.