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 リリース カレンダーをご確認ください。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- Azure CLI がインストールされていること。
クラスターに OSM アドオンをインストールする
まだない場合は、
az group create
コマンドを使用して Azure リソース グループを作成します。az group create --name myResourceGroup --location eastus
az aks create
コマンドを使用し、--enable-addons
パラメーターにopen-service-mesh
を指定して、OSM アドオンがインストールされた新しい AKS クラスターを作成します。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-addons open-service-mesh \ --generate-ssh-keys
重要
クラスターに 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 メッシュがクラスターで実行されていることを確認する
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
クラスターで実行されている 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 など) を確認します。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 メッシュを使用できます。
Azure Kubernetes Service