Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью Kubernetes можно использовать службы PaaS, такие как Служебная шина Azure, для разработки и запуска приложений.
В этом руководстве вы создадите пространство имен служебной шины Azure и очередь для тестирования приложения. Вы научитесь следующим:
- Создайте пространство имен и очередь для Службы шины Azure.
- Обновите файл манифеста Kubernetes, чтобы использовать очередь Служебной шины Azure.
- Протестируйте обновленное приложение, поместив заказ.
Прежде чем начать
В предыдущих руководствах вы упаковали приложение в образ контейнера, отправили образ в Реестр контейнеров Azure, создали кластер Kubernetes и развернули приложение. Для работы с этим руководством необходимо предварительно создать файл манифеста Kubernetes aks-store-quickstart.yaml. Загрузка этого файла была включена в комплект исходного кода приложения в предыдущем руководстве. Убедитесь, что вы клонировали репозиторий и перешли в каталог клонированного репозитория. Если вы не выполнили эти действия и хотите проследовать, начните с учебника 1. Подготовка приложения для AKS.
Для этого руководства требуется Azure CLI версии 2.34.1 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Создание переменной среды
Создайте следующие переменные среды, которые будут использоваться для команд в этом руководстве:
LOC_NAME=westus2 RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Создание пространства имен и очереди для шины Azure Service Bus
В предыдущих руководствах вы использовали контейнер RabbitMQ для хранения заказов, подтвержденных через order-service. В этом руководстве вы используете пространство имен Служебная шина Azure для предоставления контейнера для области для ресурсов Служебная шина Azure в приложении. Вы также используете очередь служебной шины Azure для отправки и получения сообщений между компонентами приложения. Для получения дополнительной информации о служебной шине Azure см. статью Создание пространства имен и очереди для служебной шины Azure.
Создайте пространство имен Служебная шина Azure с помощью команды
az servicebus namespace create.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEСоздайте очередь службы Service Bus Azure с помощью команды
az servicebus queue create.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NSСоздайте правило авторизации для Служебной шины Azure с помощью команды
az servicebus queue authorization-rule create.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights SendПолучите учетные данные службы шины Azure для последующего использования с помощью команд
az servicebus namespace showиaz servicebus queue authorization-rule keys list.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
Настройте
kubectl, чтобы подключиться к вашему кластеру, используя командуaz aks get-credentials.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterОткройте файл
aks-store-quickstart.yamlв текстовом редакторе.Удалите существующие разделы StatefulSet, ConfigMap и Service и замените существующий
rabbitmqorder-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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3Примечание.
Непосредственное добавление конфиденциальной информации, например ключей API, в файлы манифеста Kubernetes не является безопасным и может случайно зафиксироваться в репозиториях кода. Мы добавили его здесь для простоты. Для рабочих нагрузок используйте управляемое удостоверение для проверки подлинности с помощью Служебная шина Azure или хранения секретов в 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
Тестирование приложения
Размещение примера заказа
Получите внешний IP-адрес
store-frontслужбы с помощьюkubectl get serviceкоманды.kubectl get service store-frontПерейдите к внешнему IP-адресу
store-frontслужбы в браузере с помощьюhttp://<external-ip>.Поместите заказ, выбрав продукт и выбрав "Добавить в корзину".
Выберите "Корзина ", чтобы просмотреть заказ, а затем нажмите кнопку "Извлечь".
Просмотр порядка в очереди Служебная шина Azure
- Перейдите к портал Azure и откройте созданное ранее пространство имен Служебная шина Azure.
- В разделе Сущности выберите очереди и выберите очередь заказов.
- В очереди заказов выберите Service Bus Explorer.
- Выберите "Просмотреть" в начале , чтобы просмотреть отправленный заказ.
Следующие шаги
В этом руководстве вы использовали Служебную шину Azure для обновления и тестирования примерного приложения. Вы научились выполнять следующие задачи:
- Создайте пространство имен и очередь для Службы шины Azure.
- Обновите файл манифеста Kubernetes, чтобы использовать очередь Служебной шины Azure.
- Протестируйте обновленное приложение, поместив заказ.
В следующем руководстве описано, как масштабировать приложение в AKS.