Anthos Service Mesh 1.6

Anthos CLI を使用した新しいクラスタへの Anthos Service Mesh のインストール

このガイドでは、Anthos コマンドライン インターフェース(CLI)を使用して、Google Cloud 上の新しい GKE に Anthos Service Mesh 1.6.8-asm.9 をインストールする方法について説明します。Anthos CLI を使用すると、Google Cloud プロジェクトの構成と、すべての要件を満たす Google Cloud クラスタ上の Anthos GKE クラスタの作成を簡単に行い、クラスタに Anthos Service Mesh をインストールできます。

Anthos CLI は、Google Cloud の GKE へのインストールのみをサポートします。Anthos Service Mesh を他の環境にインストールするには、次のガイドをご覧ください。

asm-gcp-multiproject 構成プロファイルを使用して Anthos Service Mesh を Google Cloud にインストールする場合、または Anthos Service Mesh 認証局(Mesh CA)ではなく Citadel を認証局としてインストールする場合は、Google Cloud への Anthos Service Mesh のインストールをご覧ください。

インストールすると、次の機能が有効になります。

このガイドでは、プロジェクトの Environ にクラスタを登録する方法についても説明します。Environ でクラスタを整理することで、複数のクラスタの管理を簡単にできます。Environ にクラスタを登録することで、必要に応じてサービスやその他のインフラストラクチャをグループ化し、一貫したポリシーを適用できます。

始める前に

このガイドは、以下のものがあることを前提としています。

インストールを開始する前に:

要件

  • サービス メッシュに含めるには、サービスポートに名前を付ける必要があります。名前には、name: protocol[-suffix] の構文でポートのプロトコルを含める必要があります。角かっこは、ダッシュで始まるオプションの接尾辞です。詳細については、サービスポートの命名をご覧ください。

制限事項

1 つの Google Cloud プロジェクトにインストールできる Anthos Service Mesh は 1 つだけです。1 つのプロジェクトで複数のメッシュ デプロイはサポートされていません。

証明書データ

Mesh CA からの証明書には、アプリケーションのサービスに関する次のデータが含まれます。

  • Google Cloud プロジェクト ID。
  • GKE 名前空間
  • GKE サービス アカウント名

環境変数を設定する

  1. クラスタが作成されたプロジェクト ID を取得します。

    gcloud

    gcloud projects list
    

    Console

    1. Cloud Console で [ダッシュボード] ページに移動します。

      [ダッシュボード] ページに移動する

    2. ページ上部の [選択元] プルダウン リストをクリックします。表示された [選択元] ウィンドウで、プロジェクトを選択します。

      プロジェクト ID は、プロジェクト ダッシュボードの [プロジェクト情報] カードに表示されます。

  2. プロジェクト ID の環境変数を作成します。

    export PROJECT_ID=YOUR_PROJECT_ID

  3. プロジェクト番号の環境変数を作成します。

    export ENVIRON_PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")

    これは、クラスタが作成されたプロジェクトのプロジェクト番号ですが、このプロジェクト番号は、クラスタと Anthos Service Mesh に設定されたメッシュ ID として使用されます。このプロジェクト番号は、environクラスタを登録する場合にも使用します。

  4. クラスタ名の環境変数を作成します。

    export CLUSTER_NAME=YOUR_CLUSTER_NAME

    クラスタ名に使用できるのは、英小文字、数字、- のみです。先頭は英字、末尾は英数字を使用し、40 文字以下にする必要があります。

  5. クラスタのゾーンまたはリージョンのいずれかに環境変数を作成します。

    export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION

リソース構成ファイルの準備

  1. asm パッケージ リソース構成ファイルのディレクトリを作成します。クラスタ名をディレクトリ名として使用することをおすすめします。

  2. asm パッケージをダウンロードするディレクトリに変更します。

  3. asm パッケージを現在の作業ディレクトリにダウンロードします。

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.6-asm .
    
  4. プロジェクト ID を設定します。

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. クラスタ名を設定します。

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  6. クラスタのロケーションを設定します。

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    

    デフォルトでは、kpt セッターは、gcloud config で構成されているプロジェクトとクラスタゾーン(またはリージョン)を使用します。

  7. プロジェクト番号を設定します。

    kpt cfg set asm gcloud.project.environProjectNumber ${ENVIRON_PROJECT_NUMBER}
    
  8. また、リソース構成ファイルを Cloud Source Repositories などの独自のソース管理システムにチェックインして、ファイルの変更をトラッキングすることもできます。

マシンタイプまたはノード数の変更

Anthos CLI によって、Anthos Service Mesh で必要なノード数と最小マシンタイプで新しいクラスタが作成されます。これらの値は、nodepool.yaml で指定されます。4 つ以上の vCPU が存在する限り、nodepool.yaml のローカルコピーを変更して別のマシンタイプを指定できます。

次のセッターを使用して、システム要件に応じてノード数を増やすことができます。

kpt cfg set asm gcloud.container.nodepool.max-nodes NUMBER_OF_NODES

Anthos Service Mesh を新しいクラスタにインストールする

Anthos CLI では、Anthos Service Mesh が必要とする以下のオプションがクラスタで有効になります。

  • proj-ENVIRON_PROJECT_NUMBER の形式でクラスタに mesh_id ラベルを追加します。ここで ENVIRON_PROJECT_NUMBER はクラスタが作成されるプロジェクトのプロジェクト番号です。mesh_id ラベルは、指標を Cloud Console の Anthos Service Mesh ダッシュボードに表示するために必要です。Anthos CLI は、クラスタの既存のラベルを保持します。

  • Workload Identity を有効にします。

  • Kubernetes Engine Monitoring を有効にします。

  • クラスタをリリース チャンネルの概要に登録します。

次のコマンドを実行して、新しいクラスタを作成し、以前にカスタマイズした構成ファイルを使用して Anthos Service Mesh をインストールします。

gcloud beta anthos apply asm

コントロール プレーン コンポーネントの確認

istio-system のコントロール プレーン Pod が稼働していることを確認します。

kubectl get pod -n istio-system

予想される出力は次のようになります。

NAME                                   READY   STATUS      RESTARTS   AGE
istio-ingressgateway-cff9f5c7d-qg4ls   1/1     Running   0          7m5s
istio-ingressgateway-cff9f5c7d-vlkzb   1/1     Running   0          7m20s
istiod-66b587859c-886gx                1/1     Running   0          7m33s
istiod-66b587859c-dfs2j                1/1     Running   0          7m33s

クラスタの登録

Cloud Console で統合ユーザー インターフェースにアクセスするには、クラスタをプロジェクトの Environ に登録する必要があります。Environ は、Google Cloud 外のクラスタを含むクラスタとそのワークロードを表示して管理するために統合された方法を提供します。

クラスタの登録については、Environ へのクラスタの登録をご覧ください。

サイドカー プロキシの挿入

Anthos Service Mesh は、サイドカー プロキシを使用してネットワークのセキュリティ、信頼性、オブザーバビリティを強化します。Anthos Service Mesh では、これらの機能がアプリケーションのプライマリ コンテナから抽出され、同じ Pod 内の個別のコンテナとして提供される共通のプロセス外プロキシに実装されます。

ワークロードをデプロイする前に、Anthos Service Mesh がトラフィックをモニタリングおよび保護できるように、サイドカー プロキシ インジェクションを構成します。

Anthos Service Mesh のインストール前にクラスタで実行されていたワークロードの場合、現在の Anthos Service Mesh バージョンを使用するように、サイドカー プロキシを挿入または更新する必要があります。新しいワークロードをデプロイする前に、Anthos Service Mesh がトラフィックをモニタリングおよび保護できるように、サイドカー プロキシ インジェクションを構成します。

自動サイドカー インジェクションは、次のように 1 つのコマンドで有効にできます。

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

ここで、NAMESPACE はアプリケーションのサービスの名前空間の名前です。名前空間を明示的に作成していない場合は default です。

詳細については、サイドカー プロキシの挿入をご覧ください。

Anthos Service Mesh のページの表示

このセクションの内容は、asm-gcp 構成プロファイルを使用して Anthos Service Mesh がインストールされている場合にのみ適用されます。asm-gcp-multiproject プロファイルを使用して Anthos Service Mesh をインストールした場合、テレメトリー データは Cloud Console の Anthos Service Mesh ダッシュボードに表示されません。

サイドカー プロキシが挿入されたクラスタにワークロードをデプロイすると、Cloud Console の Anthos Service Mesh ページで、Anthos Service Mesh が提供するすべてのオブザーバビリティ機能を確認できます。ワークロードをデプロイした後、Cloud Console にテレメトリー データが表示されるまでに 1~2 分ほどかかることがあります。

Cloud Console での Anthos サービス メッシュへのアクセスは、Identity and Access Management(IAM)によって制御されます。Anthos Service Mesh ページにアクセスするには、プロジェクト オーナーがユーザーに対して、プロジェクト編集者または閲覧者のロール、または、より限定的なロール(Cloud Console での Anthos Service Mesh へのアクセスの制御を参照)を付与する必要があります。

  1. Google Cloud Console で、[Anthos Service Mesh] に移動します。

    Anthos Service Mesh に移動する

  2. メニューバーのプルダウン リストから Cloud プロジェクトを選択します。

  3. 複数のサービス メッシュがある場合は、[サービス メッシュ] プルダウン リストからメッシュを選択します。

詳細については、Cloud Console での Anthos Service Mesh の確認をご覧ください。

Anthos Service Mesh ページに加えて、サービスに関連する指標(特定のサービスで受信したリクエストの数など)が Cloud Monitoring に送信され、Metrics Explorer に表示されます。

指標を表示するには:

  1. Google Cloud Console で、[Monitoring] ページに移動します。

    [モニタリング] に移動

  2. [リソース] > [Metrics Explorer] を選択します。

指標の完全なリストについては、Cloud Monitoring のドキュメントの Istio 指標をご覧ください。

次のステップ