Azure CLI を使用して Open Service Mesh (OSM) アドオンをインストールする

この記事では、Open Service Mesh (OSM) アドオンを Azure Kubernetes Service (AKS) クラスターにインストールする方法について説明します。 OSM アドオンを使用すると、クラスターに OSM メッシュがインストールされます。 OSM メッシュは、アプリケーションのトラフィック管理、ポリシー適用、テレメトリ収集を提供するサービス メッシュです。 OSM メッシュの詳細については、「Open Service Mesh」を参照してください。

Note

Cloud Native Computing Foundation (CNCF) による Open Service Mesh (OSM) の廃止に伴い、OSM 構成を特定し、同等の Istio 構成に移行することをお勧めします。 OSM から Istio への移行の詳細については、「Open Service Mesh (OSM) 構成から Istio への移行ガイダンス」をご覧ください。

重要

OSM アドオンによってインストールされる OSM のバージョンは、クラスターで実行されている Kubernetes のバージョンによって異なります。

Kubernetes バージョン インストールされる OSM バージョン
1.24.0 以降 1.2.5
1.23.5 から 1.24.0 1.1.3
1.23.5 未満 1.0.0

対応する AKS バージョンのサポート期間が終了すると、古いバージョンの OSM がインストールできない場合や、アクティブなサポートが提供されない場合があります。 AKS バージョンのサポート ウィンドウについては、AKS Kubernetes リリース カレンダーをご確認ください。

前提条件

クラスターに OSM アドオンをインストールする

  1. まだない場合は、az group create コマンドを使用して Azure リソース グループを作成します。

    az group create --name myResourceGroup --location eastus
    
  2. az aks create コマンドを使用し、--enable-addons パラメーターに open-service-mesh を指定して、OSM アドオンがインストールされた新しい AKS クラスターを作成します。

    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

クラスターの資格情報を取得する

  • az aks get-credentials コマンドを使用して AKS クラスターの資格情報を取得します。

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

OSM アドオンがクラスターにインストールされていることを確認する

  • --query パラメーターに 'addonProfiles.openServiceMesh.enabled' を指定した az aks show コマンドを使用して、OSM アドオンがクラスターにインストールされていることを確認します。 出力の addonProfiles で、enabled 値は、true について openServiceMesh と表示されます。

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

OSM メッシュがクラスターで実行されていることを確認する

  1. kubectl get deployment コマンドを使用してクラスターで実行されている OSM メッシュのバージョン、状態、構成を確認し、osm-controller デプロイのイメージ バージョンを表示します。

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

    次の出力例は、OSM メッシュのバージョン 0.11.1 を示しています。

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. クラスターで実行されている OSM コンポーネントの状態を確認するには、kubectl を使用して、app.kubernetes.io/name=openservicemesh.io デプロイ、ポッド、およびサービスの状態を表示します。

    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
    

    重要

    "Pending"など、ポッドの状態が "Running" 以外の場合は、クラスターに OSM を実行するのに十分なリソースがない可能性があります。 クラスターで OSM を引き続き使用する前に、クラスターのサイズ (ノード数や 仮想マシンの SKU など) を確認します。

  3. kubectl get meshconfig コマンドを使用して、OSM メッシュの構成を確認します。

    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
    

Note

または、クラスターから OSM アドオンと関連リソースをアンインストールすることもできます。 詳細については、Open Service Mesh (OSM) アドオンを AKS クラスターからアンインストールするに関する記事を参照してください。

次のステップ

この記事では、OSM アドオンを AKS クラスターにインストールし、インストールされたことと実行されていることを確認する方法について説明しました。 OSM アドオンをクラスターにインストールすることで、サンプル アプリケーションをデプロイするか、既存のアプリケーションをオンボードして OSM メッシュを使用できます。