Развертывание надстройки Сетки Open Service Mesh с помощью Bicep в Служба Azure Kubernetes (AKS)
В этой статье показано, как развернуть надстройку Open Service Mesh (OSM) в Служба Azure Kubernetes (AKS) с помощью шаблона Bicep.
Примечание.
При выходе из системы Open Service Mesh (OSM) в Cloud Native Computing Foundation (CNCF) рекомендуется определить конфигурации OSM и перенести их в эквивалентную конфигурацию Istio. Сведения о миграции из OSM в Istio см . в руководстве по миграции конфигураций Open Service Mesh (OSM) в Istio.
Внимание
В зависимости от версии Kubernetes, запущенной в кластере, надстройка OSM устанавливает другую версию OSM.
Версия Kubernetes | Установленная версия OSM |
---|---|
1.24.0 или более поздней версии | 1.2.5 |
От 1.23.5 до 1.24.0 | 1.1.3 |
Ниже 1.23.5 | 1.0.0 |
Более старые версии OSM могут быть недоступны для установки или активно поддерживаться, если соответствующая версия AKS достигла конца срока действия. Вы можете проверить календарь выпуска AKS Kubernetes для получения сведений о окнах поддержки версий AKS.
Bicep — это предметно-ориентированный язык, который использует декларативный синтаксис для развертывания ресурсов Azure. Вы можете развертывать ресурсы Azure категории "инфраструктура как код" с помощью Bicep вместо шаблонов Azure Resource Manager.
Подготовка к работе
Прежде чем начать, убедитесь, что у вас есть следующие предварительные требования:
- Azure CLI версии 2.20.0 или более поздней. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - Открытый ключ SSH, используемый для развертывания AKS. Дополнительные сведения см. в статье "Создание ключей SSH с помощью Azure CLI".
- Visual Studio Code с терминалом Bash.
- Расширение Bicep Visual Studio Code.
Установка надстройки OSM для нового кластера AKS с помощью Bicep
Для развертывания нового кластера AKS включите надстройку OSM при создании кластера. В приведенных ниже инструкциях используется универсальный шаблон Bicep, который развертывает кластер AKS с помощью временных дисков и сетевого интерфейса контейнера kubenet
, а затем включает надстройку OSM. Дополнительные сценарии развертывания см. в статье "Что такое Bicep?"
Создание или изменение группы ресурсов
Создайте группу ресурсов с помощью
az group create
команды.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Создание главного файла и файла параметров Bicep
Создайте каталог для хранения необходимых файлов развертывания Bicep. Следующий пример создает каталог с именем bicep-osm-aks-addon и переходит в него:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Создайте основной файл и файл параметров.
touch osm.aks.bicep && touch osm.aks.parameters.json
Откройте файл osm.aks.bicep и скопируйте его в следующее содержимое:
// https://learn.microsoft.com/azure/aks/troubleshooting#what-naming-restrictions-are-enforced-for-aks-resources-and-parameters @minLength(3) @maxLength(63) @description('Provide a name for the AKS cluster. The only allowed characters are letters, numbers, dashes, and underscore. The first and last character must be a letter or a number.') param clusterName string @minLength(3) @maxLength(54) @description('Provide a name for the AKS dnsPrefix. Valid characters include alphanumeric values and hyphens (-). The dnsPrefix can\'t include special characters such as a period (.)') param clusterDNSPrefix string param k8Version string param sshPubKey string param location string param adminUsername string resource aksCluster 'Microsoft.ContainerService/managedClusters@2021-03-01' = { name: clusterName location: location identity: { type: 'SystemAssigned' } properties: { kubernetesVersion: k8Version dnsPrefix: clusterDNSPrefix enableRBAC: true agentPoolProfiles: [ { name: 'agentpool' count: 3 vmSize: 'Standard_DS2_v2' osDiskSizeGB: 30 osDiskType: 'Ephemeral' osType: 'Linux' mode: 'System' } ] linuxProfile: { adminUsername: adminUserName ssh: { publicKeys: [ { keyData: sshPubKey } ] } } addonProfiles: { openServiceMesh: { enabled: true config: {} } } } }
Откройте файл osm.aks.parameters.json и скопируйте его в следующее содержимое. Убедитесь, что значения параметров развертывания заменяются собственными значениями.
Примечание.
Файл osm.aks.parameters.json представляет собой пример файла параметров шаблона, которые требуются для развертывания Bicep. Скорректируйте параметры для своей среды развертывания. Параметры, необходимые для добавления значений:
clusterName
, ,clusterDNSPrefix
k8Version
, ,sshPubKey
иlocation
adminUsername
. Чтобы найти список поддерживаемых версий Kubernetes в своем регионе, используйте командуaz aks get-versions --location <region>
.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "clusterName": { "value": "<YOUR CLUSTER NAME HERE>" }, "clusterDNSPrefix": { "value": "<YOUR CLUSTER DNS PREFIX HERE>" }, "k8Version": { "value": "<YOUR SUPPORTED KUBERNETES VERSION HERE>" }, "sshPubKey": { "value": "<YOUR SSH KEY HERE>" }, "location": { "value": "<YOUR AZURE REGION HERE>" }, "adminUsername": { "value": "<YOUR ADMIN USERNAME HERE>" } } }
Развертывание файлов Bicep
Откройте терминал и выполните проверку подлинности в учетной записи Azure для Azure CLI с помощью
az login
команды.Разверните файлы Bicep с помощью
az deployment group create
команды.az deployment group create \ --name OSMBicepDeployment \ --resource-group osm-bicep-test \ --template-file osm.aks.bicep \ --parameters @osm.aks.parameters.json
Проверка установки надстройки OSM
Запросите профили надстроек кластера, чтобы проверить состояние установленных надстроек. Следующая команда должна возвращать значение
true
:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Получите состояние осм-контроллера с помощью следующих
kubectl
команд.kubectl get deployments -n kube-system --selector app=osm-controller kubectl get pods -n kube-system --selector app=osm-controller kubectl get services -n kube-system --selector app=osm-controller
Доступ к конфигурации надстройки OSM
Контроллер OSM можно настроить с помощью ресурса OSM MeshConfig и просмотреть параметры конфигурации контроллера OSM с помощью Azure CLI.
Просмотрите параметры конфигурации контроллера OSM с помощью
kubectl get
команды.kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Вот пример выходных данных MeshConfig:
apiVersion: config.openservicemesh.io/v1alpha1 kind: MeshConfig metadata: creationTimestamp: "0000-00-00A00:00:00A" generation: 1 name: osm-mesh-config namespace: kube-system resourceVersion: "2494" uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31 spec: certificate: serviceCertValidityDuration: 24h featureFlags: enableEgressPolicy: true enableMulticlusterMode: false enableWASMStats: true observability: enableDebugServer: true osmLogLevel: info tracing: address: jaeger.osm-system.svc.cluster.local enable: false endpoint: /api/v2/spans port: 9411 sidecar: configResyncInterval: 0s enablePrivilegedInitContainer: false envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3 initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1 logLevel: error maxDataPlaneConnections: 0 resources: {} traffic: enableEgress: true enablePermissiveTrafficPolicyMode: true inboundExternalAuthorization: enable: false failureModeAllow: false statPrefix: inboundExtAuthz timeout: 1s useHTTPSIngress: false
Обратите внимание, что
enablePermissiveTrafficPolicyMode
для задано значениеtrue
. В OSM разрешительный режим политики трафика обходит применение политики трафика SMI. В этом режиме OSM автоматически обнаруживает службы, которые являются частью сети службы. Для обнаруженных служб задаются правила политики трафика для каждого расширения прокси-сервера Envoy, что делает возможным обмен данными между этими службами.Предупреждение
Прежде чем продолжать, убедитесь, что для разрешительного режима политики трафика задано значение
true
. Если это не так, измените его наtrue
использование следующей команды:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Очистка ресурсов
Если ресурсы Azure больше не нужны, удалите тестовую группу ресурсов развертывания с помощью
az group delete
команды.az group delete --name osm-bicep-test
Кроме того, можно удалить надстройку OSM и связанные с ней ресурсы из кластера. Дополнительные сведения см. в разделе Удаление надстройки Open Service Mesh из кластера AKS.
Следующие шаги
В этой статье вы увидели, как установить надстройку OSM в кластере AKS и убедиться, что она установлена и работает. После установки надстройки OSM в кластере можно развернуть пример приложения или подключить существующее приложение для работы с сеткой OSM.
Azure Kubernetes Service