자습서 - AKS(Azure Kubernetes Service) 클러스터에서 PaaS 서비스 사용
Kubernetes를 사용하면 Azure Service Bus 같은 PaaS 서비스를 사용하여 애플리케이션을 개발하고 실행할 수 있습니다.
이 자습서(7부 중 5부)에서는 애플리케이션을 테스트하는 Azure Service Bus 네임스페이스와 큐를 만듭니다. 다음 방법에 대해 설명합니다.
- Azure Service Bus 네임스페이스 및 큐 만들기
- Azure Service Bus 큐를 사용하도록 Kubernetes 매니페스트 파일 업데이트하기
- 주문하여 업데이트된 애플리케이션 테스트하기
시작하기 전에
이전 자습서에서는 애플리케이션을 컨테이너 이미지로 패키징하고, Azure Container Registry에 이미지를 업로드하며, Kubernetes 클러스터를 만들고, 애플리케이션을 배포했습니다. 이 자습서를 완료하려면 미리 작성된 aks-store-quickstart.yaml
Kubernetes 매니페스트 파일이 필요합니다. 이 파일 다운로드는 이전 자습서의 애플리케이션 원본에 포함되었습니다. 리포지토리를 복제하고 디렉터리를 복제된 리포지토리로 변경했는지 확인합니다. 아직 이 단계를 완료하지 않았고 계속 진행하려면 자습서 1 - AKS용 애플리케이션 준비부터 시작합니다.
이 자습서를 사용하려면 Azure CLI 버전 2.34.1 이상이 필요합니다. az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
환경 변수 만들기
이 자습서의 명령에 사용할 환경 변수를 다음과 같이 만듭니다.
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Azure Service Bus 네임스페이스 및 큐 만들기
이전 자습서에서는 RabbitMQ 컨테이너를 사용하여 order-service
에서 제출한 주문서를 저장했습니다. 이 자습서에서는 Azure Service Bus 네임스페이스를 사용하여 애플리케이션 내 Service Bus 리소스의 범위 지정 컨테이너를 제공합니다. 또한 Azure Service Bus 큐를 사용하여 애플리케이션 구성 요소 간에 메시지를 주고받습니다. Azure Service Bus에 대한 자세한 내용은 Azure Service Bus 네임스페이스 및 큐 만들기를 참조하세요.
az servicebus namespace create
명령을 사용하여 Azure Service Bus 네임스페이스를 만듭니다.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
az servicebus queue create
명령을 사용하여 Azure Service Bus 큐를 만듭니다.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
az servicebus queue authorization-rule create
명령을 사용하여 Azure Service Bus 권한 부여 규칙을 만듭니다.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
나중에 사용할 수 있도록
az servicebus namespace show
및az servicebus queue authorization-rule keys list
명령을 사용하여 Azure Service Bus 자격 증명을 가져옵니다.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
Kubernetes 매니페스트 파일 업데이트
az aks get-credentials
명령을 사용하여 클러스터에 연결하도록kubectl
을 구성합니다.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
텍스트 편집기에서
aks-store-quickstart.yaml
파일을 엽니다.기존
rabbitmq
StatefulSet, ConfigMap, 서비스 섹션을 제거하고 기존order-service
배포 섹션을 다음 콘텐츠로 바꿉니다.apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi
참고 항목
API 키와 같은 중요한 정보를 Kubernetes 매니페스트 파일에 직접 추가하는 것은 안전하지 않으며 실수로 코드 리포지토리에 커밋될 수 있습니다. 여기서는 간소화하기 위해 추가했습니다. 프로덕션 워크로드의 경우 관리 ID를 사용하여 Azure Service Bus를 인증하거나 Azure Key Vault에 비밀을 저장합니다.
업데이트된
aks-store-quickstart.yaml
파일을 저장한 후 닫습니다.
업데이트된 애플리케이션 배포
kubectl apply
명령을 사용하여 업데이트된 애플리케이션을 배포합니다.kubectl apply -f aks-store-quickstart.yaml
다음 예제 출력에서는 성공적으로 업데이트된 리소스를 보여 줍니다.
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchanged
애플리케이션 테스트
샘플 순서 지정
kubectl get service
명령을 사용하여store-front
서비스의 외부 IP 주소를 가져옵니다.kubectl get service store-front
http://<external-ip>
를 사용하여 브라우저에서store-front
서비스의 외부 IP 주소로 이동합니다.제품을 선택하고 카트에 추가를 선택하여 주문합니다.
카트를 선택하여 주문을 확인한 다음 구매하기를 선택합니다.
Azure Service Bus 큐에서 주문 보기
- Azure Portal로 이동하여 이전에 만든 Azure Service Bus 네임스페이스를 엽니다.
- 엔터티에서 큐를 선택한 다음 주문 창을 선택합니다.
- 주문 큐에서 Service Bus Explorer를 선택합니다.
- 처음부터 피킹을 선택하여 제출한 주문을 확인합니다.
다음 단계
이 자습서에서는 Azure Service Bus를 사용하여 샘플 애플리케이션을 업데이트하고 테스트했습니다. 다음 방법에 대해 알아보았습니다.
- Azure Service Bus 네임스페이스 및 큐 만들기
- Azure Service Bus 큐를 사용하도록 Kubernetes 매니페스트 파일 업데이트하기
- 주문하여 업데이트된 애플리케이션 테스트하기
다음 자습서에서는 AKS에서 애플리케이션의 크기를 조정하는 방법을 알아봅니다.
Azure Kubernetes Service