Service Mesh (ASM) は、Ambient Mesh モードと Alibaba Centralized Mesh Gateway (ACMG) モードの 2 つのサイドカーレスモードをサポートしています。このトピックでは、これら 2 つのモードでサンプルアプリケーションをデプロイする方法について説明します。サイドカーレスモードの機能をできるだけ早く体験できるように、事前に環境を準備することができます。
前提条件
指定された条件を満たす Container Service for Kubernetes (ACK) クラスタが作成されていること。詳細については、「制限」の「サポートされている Kubernetes クラスタと構成」セクションをご参照ください。
ASM インスタンスが作成され、Ambient Mesh モードまたは ACMG モードで有効になっていること。
[サービスメッシュの作成] ページの [データプレーンモード] セクションで、[ambient Mesh モードを有効にする] または [ACMG モードを有効にする] を選択します。ビジネス要件に基づいて他の設定を構成します。詳細については、「ASM インスタンスを作成する」をご参照ください。
ACK クラスタが ASM インスタンスに追加されていること。詳細については、「ASM インスタンスにクラスタを追加する」をご参照ください。
イングレスゲートウェイが作成されていること。詳細については、「イングレスゲートウェイを作成する」をご参照ください。
サンプルアプリケーションのデプロイ
この例では、Bookinfo アプリケーションをデプロイします。詳細については、「ASM インスタンスに追加された ACK クラスタにアプリケーションをデプロイする」をご参照ください。
ACK クラスタにサンプル アプリケーションをデプロイする
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
Ambient Mesh モードまたは ACMG モードを有効にします。
Ambient Mesh モード
[グローバル名前空間] ページで、[default] 名前空間を見つけ、[データプレーンモード] 列の [ambient Mesh モードに切り替える] をクリックします。[送信] メッセージで、[OK] をクリックします。
ACMG モード
kubectl を使用して、kubeconfig ファイルの情報に基づいて ASM インスタンスに接続し、ACMG モードを有効にします。
kubectl label namespace default istio.io/dataplane-mode=acmg
GitHub の Istio リポジトリ から Bookinfo アプリケーションの YAML ファイルをダウンロードします。次に、次のコマンドを実行して、default 名前空間に Bookinfo アプリケーションをデプロイします。
kubectl apply -f bookinfo.yamlsleep アプリケーションをデプロイします。
次の内容を含む sleep.yaml ファイルを作成します。
次のコマンドを実行して、default 名前空間に sleep アプリケーションをデプロイします。
kubectl apply -f sleep.yaml
notsleep アプリケーションをデプロイします。
次の内容を含む notsleep.yaml ファイルを作成します。
次のコマンドを実行して、default 名前空間に notsleep アプリケーションをデプロイします。
kubectl apply -f notsleep.yaml
ASM インスタンスにメッシュリソースをデプロイする
以下の内容を含む bookinfo-gateway.yaml ファイルを作成します。
この YAML ファイルは、Istio ゲートウェイと仮想サービスを作成するために使用されます。
kubectl を使用して kubeconfig ファイルの情報に基づいて ASM インスタンスに接続し、次のコマンドを実行してメッシュリソースをデプロイします。
kubectl apply -f bookinfo-gateway.yaml
基本機能の確認
以下のコマンドを実行して、イングレスゲートウェイの環境変数を構成します。
export GATEWAY_HOST=istio-ingressgateway.istio-system export GATEWAY_SERVICE_ACCOUNT=ns/istio-system/sa/istio-ingressgateway以下のコマンドを実行して、Bookinfo アプリケーションがイングレスゲートウェイの有無にかかわらず正しく動作するかどうかをテストします。
次のコマンドを実行します。
kubectl exec deploy/sleep -- curl -s "http://$GATEWAY_HOST/productpage" | grep -o "<title>.*</title>"期待される出力:
<title>Simple Bookstore App</title>次のコマンドを実行します。
kubectl exec deploy/sleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"期待される出力:
<title>Simple Bookstore App</title>次のコマンドを実行します。
kubectl exec deploy/notsleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"期待される出力:
<title>Simple Bookstore App</title>上記の出力は、Bookinfo アプリケーションがイングレスゲートウェイの有無にかかわらず正しく動作することを示しています。