使ってみる

このページでは、Anthos Service Mesh をインストールするための環境とクラスタを準備する方法について説明します。

必要なツールをインストールする

asmcli は、Cloud Shell 上または Linux を実行しているローカルマシン上で実行できます。Cloud Shell で必要なすべてのツールがプリインストールされます。

asmcli をローカルで実行する場合は、次のツールがインストールされていることを確認してください。

gcloud を構成する

Cloud Shell を使用している場合でも、次の手順を実施します。

  1. Google Cloud CLI で認証します。

    gcloud auth login --project PROJECT_ID
    
  2. コンポーネントを更新します。

    gcloud components update
    
  3. Anthos Service Mesh を GKE クラスタにインストールする場合は、クラスタを参照するように kubectl を構成します。

    gcloud container clusters get-credentials CLUSTER_NAME \
         --zone CLUSTER_LOCATION \
         --project PROJECT_ID
    

asmcli をダウンロードする

このセクションでは、asmcli のダウンロード方法について説明します。

  1. Anthos Service Mesh 1.10.6 をインストールするバージョンを現在の作業ディレクトリにダウンロードします。

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_alpha > asmcli
    
  2. スクリプトを実行可能にします。

    chmod +x asmcli
    

クラスタ管理者の権限を付与する

  1. 次のようにしてコンテキストをユーザー クラスタに切り替えます。

    kubectl config use-context CLUSTER_NAME
  2. ユーザー アカウント(Google Cloud ログイン メールアドレス)にクラスタ管理者の権限を付与します。この権限は、Anthos Service Mesh に必要なロールベースのアクセス制御(RBAC)ルールを作成するのに必要です。

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

プロジェクトとクラスタを検証する

asmcli validate を実行すると、プロジェクトとクラスタに対して Anthos Service Mesh のインストールに必要な設定が行われているかどうか確認できます。このオプションを使用すると、asmcli はプロジェクトやクラスタを変更せず、Anthos Service Mesh をインストールしません。

このスクリプトは以下のことを検証します。

デフォルトでは、このスクリプトでインストール ファイルをダウンロードして抽出し、GitHub から asm 構成パッケージを一時ディレクトリにダウンロードします。終了する前に、このスクリプトで一時ディレクトリの名前を指定するメッセージが出力されます。--output_dir DIR_PATH オプションを使用して、ダウンロード用のディレクトリを指定することをおすすめします。--output_dir オプションを使用すると、必要に応じて istioctl コマンドライン ツールを使用できます。また、オプションの機能を有効にする構成ファイルが asm/istio/options ディレクトリにあります。

次のコマンドを実行して構成を検証し、インストール ファイルと asm パッケージを OUTPUT_DIR ディレクトリにダウンロードします。

GKE

./asmcli validate \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --output_dir DIR_PATH
  • --project_id--cluster_name--cluster_location: クラスタが属するプロジェクト ID、クラスタ名、クラスタゾーンまたはリージョンを指定します。

    • --output_dir: asmcliasm パッケージをダウンロードして、istioctl、サンプル、マニフェストを含むインストール ファイルを抽出するディレクトリを指定する場合に指定します。それ以外の場合、asmcli はファイルを tmp ディレクトリにダウンロードします。相対パスまたはフルパスを指定できます。環境変数 $PWD はここでは機能しません。

オンプレミス

  1. 現在のコンテキストをユーザー クラスタに設定します。

    kubectl config use-context CLUSTER_NAME
    
  2. 次のコマンドを実行して構成を検証し、インストール ファイルと asm パッケージを OUTPUT_DIR ディレクトリにダウンロードします。

    ./asmcli validate \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud
    
    • --kubeconfig: kubeconfig のパス。相対パスまたはフルパスを指定できます。環境変数 $PWD はここでは機能しません。

    • --output_dir: asmcliasm パッケージをダウンロードして、istioctl、サンプル、マニフェストを含むインストール ファイルを抽出するディレクトリを指定する場合に指定します。それ以外の場合、asmcli はファイルを tmp ディレクトリにダウンロードします。相対パスまたはフルパスを指定できます。環境変数 $PWD はここでは機能しません。

    • --platform multicloud: オンプレミスがプラットフォームであることを指定します。

成功すると、以下が出力されます。

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

いずれかのテストで検証が失敗した場合、エラー メッセージが出力されます。たとえば、プロジェクトで必要な Google API が有効になっていない場合は、次のエラーが表示されます。

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
the script with the '--enable_gcp_apis' flag to allow the script to enable them
on your behalf.

イネーブルメント フラグを使用したスクリプトを実行する必要があるというエラー メッセージが表示された場合は、次の選択肢があります。

  • スクリプトを実行して実際のインストールを行うときに、エラー メッセージからの特定のフラグまたは --enable_all フラグを含めます(この場合、--only_validate は含めません)。

  • 必要に応じて、GKE に Anthos Service Mesh をインストールするための設定で説明されているように、スクリプトを実行する前に、プロジェクトとクラスタを自分で更新できます。

なお、asmcli では、--only_validate が指定されたイネーブルメント フラグは使用できません。

クラスタのインストールとアップグレードの要件を調べる

アップグレードを行う前に、構成が新しいバージョンの Anthos Service Mesh と互換性があることを確認してください。

  1. --output_dir で指定したディレクトリに移動します。

  2. 次のコマンドを実行して、Kubernetes クラスタのインストールとアップグレードの要件を調べます。新しい Anthos Service Mesh バージョンで配布される istioctl のバージョンを使用します。

    istioctl experimental precheck
    

次のステップ