Для надстройки требуется установка Azure CLI версии 2.57.0 или более поздней. Чтобы проверить версию, можно запустить az --version . Чтобы выполнить установку или обновление, см. сведения в статье Установка Azure CLI.
Чтобы найти сведения о версиях кластеров AKS, доступных в регионе и их совместимости с версиями кластера AKS, используйте команду az aks mesh get-revisions:
az aks mesh get-revisions --location <location> -o table
Обратите внимание, что если вы решили использовать какие-либо istioctl команды CLI, необходимо включить флаг, чтобы указать на установку надстройки Istio: --istioNamespace aks-istio-system
В этом разделе описано, как установить надстройку Istio во время создания кластера или включить для существующего кластера с помощью Azure CLI. Если вы хотите установить надстройку с помощью Bicep, ознакомьтесь с руководством по установке кластера AKS с надстройкой сетки службы Istio с помощью Bicep. Дополнительные сведения об определении ресурсов Bicep для кластера AKS см . в справочнике по Bicep managedCluster.
Выбор редакции
Если надстройка включена без указания редакции, для вас устанавливается поддерживаемая по умолчанию редакция.
Чтобы указать редакцию, выполните следующие действия.
az aks mesh get-revisions Используйте команду, чтобы проверить, какие редакции доступны для разных версий кластера AKS в регионе.
На основе доступных редакций можно включить --revision asm-X-Y флаг (например --revision asm-1-20, ) в команду включения, используемую для установки сетки.
Установка сетки во время создания кластера
Чтобы установить надстройку Istio при создании кластера, используйте --enable-azure-service-mesh или--enable-asm параметр.
az group create --name ${RESOURCE_GROUP} --location ${LOCATION}
az aks create \
--resource-group ${RESOURCE_GROUP} \
--name ${CLUSTER} \
--enable-asm \
--generate-ssh-keys
Установка сетки для существующего кластера
Следующий пример включает надстройку Istio для существующего кластера AKS:
Важно!
Невозможно включить надстройку Istio в существующем кластере, если надстройка OSM уже находится в кластере. Удалите надстройку OSM перед установкой надстройки Istio.
Дополнительные сведения см. в статье об удалении надстройки OSM из кластера AKS.
Надстройка Istio может быть включена только в кластерах AKS версии >= 1.23.
az aks mesh enable --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
Проверка установки
Чтобы проверить установку надстройки Istio в кластере, выполните следующую команду:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.mode'
Подтвердите выходные данные Istio.
Используйте az aks get-credentials учетные данные для кластера AKS:
az aks get-credentials --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
Используйте kubectl для проверки успешности istiod выполнения модулей pod (плоскости управления Istio):
kubectl get pods -n aks-istio-system
Убедитесь, что модуль istiod pod имеет состояние Running. Например:
NAME READY STATUS RESTARTS AGE
istiod-asm-1-18-74f7f7c46c-xfdtl 1/1 Running 0 2m
istiod-asm-1-18-74f7f7c46c-4nt2v 1/1 Running 0 2m
Включение внедрения бокового автомобиля
Чтобы автоматически установить боковую панель в любые новые модули pod, необходимо заметить пространства имен с меткой редакции, соответствующей версии плоскости управления, установленной в настоящее время.
Если вы не уверены, какая редакция установлена, используйте:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.istio.revisions'
Метка по умолчанию istio-injection=enabled не работает. Явное управление версиями, соответствующее редакции плоскости управления (например, istio.io/rev=asm-1-18требуется).
Для ручного внедрения бокового автомобиля istioctl kube-injectнеобходимо указать дополнительные параметры для istioNamespace (-i) и revision (-r). Например:
Вы можете развернуть пример приложения, предоставленного для тестирования, или активировать внедрение боковой кареты для существующих рабочих нагрузок.
Существующие приложения
Если у вас есть приложения, которые нужно добавить в сетку, убедитесь, что их пространства имен помечены как на предыдущем шаге, а затем перезапустите их развертывания, чтобы активировать внедрение бокового автомобиля:
Убедитесь, что внедрение бокового istio-proxy автомобиля выполнено успешно, убедившись, что все контейнеры готовы и ищут контейнер в выходных kubectl describe данных, например:
kubectl describe pod -n namespace <pod name>
Контейнер — это istio-proxy боковая машина Envoy. Теперь приложение является частью плоскости данных.
Разверните пример приложения
Используйте kubectl apply для развертывания примера приложения в кластере:
Убедитесь, что в кластере создаются несколько развертываний и служб. Например:
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created
Используйте kubectl get services для проверки успешности создания служб:
Убедитесь, что все модули pod имеют состояние Running с двумя контейнерами в столбце READY . Второй контейнер (istio-proxy) добавляется к каждому модулю pod— это боковая машина Envoy, внедренная Istio, а другая — контейнер приложения.
Чтобы протестировать это пример приложения на основе входящего трафика, ознакомьтесь со следующими инструкциями.
Удаление ресурсов
Используется kubectl delete для удаления примера приложения:
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Azure Kubernetes Service
Azure Kubernetes Service — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.