Установка надстройки Open Service Mesh (OSM) с помощью Azure CLI

В этой статье показано, как установить надстройку Open Service Mesh (OSM) в кластере Служба Azure Kubernetes (AKS). Надстройка OSM устанавливает сетку OSM в кластере. Сетка OSM — это сетка служб, которая обеспечивает управление трафиком, применение политик и сбор данных телеметрии для приложений. Дополнительные сведения о сетке OSM см. в разделе "Open Service Mesh".

Примечание.

При выходе из системы 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.

Необходимые компоненты

Установка надстройки OSM в кластере

  1. Если у вас еще нет, создайте группу ресурсов Azure с помощью az group create команды.

    az group create --name myResourceGroup --location eastus
    
  2. Создайте новый кластер AKS с надстройкой OSM, установленной с помощью az aks create команды, и укажите open-service-mesh для --enable-addons параметра.

    az aks create \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --enable-addons open-service-mesh
    

Важно!

Включить надстройку OSM в существующем кластере нельзя, если в этом кластере уже есть сетка OSM. Прежде чем включать надстройку OSM, удалите все существующие сетки OSM в кластере.

При установке в существующих кластерах используйте az aks enable-addons команду. Пример кода приведен ниже.

az aks enable-addons \
 --resource-group myResourceGroup \
 --name myAKSCluster \
 --addons open-service-mesh

Получение учетных данных для кластера

  • Получите учетные данные для кластера AKS с помощью az aks get-credentials команды.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Проверка установки надстройки OSM в кластере

  • Убедитесь, что надстройка OSM установлена в кластере az aks show с помощью команды и укажите 'addonProfiles.openServiceMesh.enabled' для --query параметра. В выходных данных addonProfilesпод значением должно отображаться значение trueopenServiceMesh.enabled

    az aks show --resource-group myResourceGroup --name myAKSCluster  --query 'addonProfiles.openServiceMesh.enabled'
    

Проверка работы сетки OSM в кластере

  1. Проверьте версию, состояние и конфигурацию сетки OSM, работающей в кластере kubectl get deployment , с помощью команды и отображение версии образа развертывания osm-controller .

    kubectl get deployment -n kube-system osm-controller -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
    

    В следующем примере выходных данных показана версия 0.11.1 сетки OSM:

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. Проверьте состояние компонентов OSM, работающих в кластере, с помощью следующих kubectl команд, чтобы показать состояние app.kubernetes.io/name=openservicemesh.io развертываний, модулей pod и служб.

    kubectl get deployments -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get pods -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get services -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    

    Важно!

    Если состояние каких-либо модулей pod отличается от Running (например, равно Pending), в кластере может быть недостаточно ресурсов для запуска OSM. Прежде чем продолжать использовать OSM в кластере, проверьте размер кластера, например число узлов и номер SKU виртуальной машины.

  3. Проверьте конфигурацию сетки OSM с помощью kubectl get meshconfig команды.

    kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
    

    В следующем примере выходных данных показана конфигурация сетки OSM:

    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 включен режим политики трафика. Когда в сетке OSM включен этот режим:

    • Выполняется обход принудительного применения политики трафика SMI.
    • OSM автоматически обнаруживает службы, которые являются частью сетки служб.
    • OSM создает правила политики трафика для каждого расширения прокси-сервера Envoy для взаимодействия с этими службами.

Удаление кластера

  • Если кластер больше не нужен, его можно удалить с помощью az group delete команды, которая удаляет группу ресурсов, кластер и все связанные ресурсы.

    az group delete --name myResourceGroup --yes --no-wait
    

Примечание.

Кроме того, можно удалить надстройку OSM и связанные с ней ресурсы из кластера. Дополнительные сведения см. в разделе Удаление надстройки Open Service Mesh из кластера AKS.

Следующие шаги

В этой статье показано, как установить надстройку OSM в кластере AKS и проверить ее установку и запуск. После установки надстройки OSM в кластере можно развернуть пример приложения или подключить существующее приложение для работы с сеткой OSM.