Руководство. Использование служб PaaS с кластером Служба Azure Kubernetes (AKS)
С помощью 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=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Создание пространства имен и очереди Служебная шина Azure
В предыдущих руководствах вы использовали контейнер RabbitMQ для хранения заказов, отправленных этим элементом order-service
. В этом руководстве вы используете пространство имен Служебная шина Azure для предоставления контейнера области для ресурсов служебная шина в приложении. Вы также используете очередь служебной шины Azure для отправки и получения сообщений между компонентами приложения. Дополнительные сведения о Служебная шина Azure см. в статье "Создание пространства имен и очереди Служебная шина Azure".
Создайте пространство имен Служебная шина Azure с помощью
az servicebus namespace create
команды.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Создайте очередь Служебная шина 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 и замените существующий
rabbitmq
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 не является безопасным и может случайно зафиксироваться в репозиториях кода. Мы добавили его здесь для простоты. Для рабочих нагрузок используйте управляемое удостоверение для проверки подлинности с помощью Служебная шина 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.
- В разделе Сущности выберите очереди и выберите очередь заказов.
- В очереди заказов выберите служебная шина Explorer.
- Выберите "Просмотреть" в начале , чтобы просмотреть отправленный заказ.
Следующие шаги
В этом руководстве вы использовали Служебная шина Azure для обновления и тестирования примера приложения. Вы научились выполнять следующие задачи:
- Создайте пространство имен и очередь Служебная шина Azure.
- Обновите файл манифеста Kubernetes, чтобы использовать очередь Служебная шина Azure.
- Протестируйте обновленное приложение, поместив заказ.
В следующем руководстве описано, как масштабировать приложение в AKS.
Azure Kubernetes Service