このページでは、Anthos Service Mesh をインストールするための環境とクラスタを準備する方法について説明します。
必要なツールをインストールする
asmcli
は、Cloud Shell 上または Linux を実行しているローカルマシン上で実行できます。Cloud Shell で必要なすべてのツールがプリインストールされます。
asmcli
をローカルで実行する場合は、次のツールがインストールされていることを確認してください。
- Google Cloud CLI
- 標準のコマンドライン ツール:
awk
、curl
、grep
、sed
、tr
- git
- kubectl
- jq
gcloud を構成する
Cloud Shell を使用している場合でも、次の手順を実施します。
Google Cloud CLI で認証します。
gcloud auth login --project PROJECT_ID
コンポーネントを更新します。
gcloud components update
Anthos Service Mesh を GKE クラスタにインストールする場合は、クラスタを参照するように
kubectl
を構成します。gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_LOCATION \ --project PROJECT_ID
asmcli をダウンロードする
このセクションでは、asmcli
のダウンロード方法について説明します。
Anthos Service Mesh 1.10.6 をインストールするバージョンを現在の作業ディレクトリにダウンロードします。
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_alpha > asmcli
スクリプトを実行可能にします。
chmod +x asmcli
クラスタ管理者の権限を付与する
次のようにしてコンテキストをユーザー クラスタに切り替えます。
kubectl config use-context CLUSTER_NAME
ユーザー アカウント(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 をインストールしません。
このスクリプトは以下のことを検証します。
環境に必要なツールがある。
クラスタが最小要件を満たしている。
指定されたプロジェクトに必要な権限がある。
プロジェクトで必要な Google API がすべて有効になっている。
デフォルトでは、このスクリプトでインストール ファイルをダウンロードして抽出し、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
:asmcli
がasm
パッケージをダウンロードして、istioctl
、サンプル、マニフェストを含むインストール ファイルを抽出するディレクトリを指定する場合に指定します。それ以外の場合、asmcli
はファイルをtmp
ディレクトリにダウンロードします。相対パスまたはフルパスを指定できます。環境変数$PWD
はここでは機能しません。
オンプレミス
現在のコンテキストをユーザー クラスタに設定します。
kubectl config use-context CLUSTER_NAME
次のコマンドを実行して構成を検証し、インストール ファイルと
asm
パッケージをOUTPUT_DIR
ディレクトリにダウンロードします。./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud
--kubeconfig
:kubeconfig
のパス。相対パスまたはフルパスを指定できます。環境変数$PWD
はここでは機能しません。--output_dir
:asmcli
がasm
パッケージをダウンロードして、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 と互換性があることを確認してください。
--output_dir
で指定したディレクトリに移動します。次のコマンドを実行して、Kubernetes クラスタのインストールとアップグレードの要件を調べます。新しい Anthos Service Mesh バージョンで配布される
istioctl
のバージョンを使用します。istioctl experimental precheck