GKE Enterprise ユーザー クラスタにデプロイする

このドキュメントでは、GKE Enterprise クラスタにアプリケーションをデプロイする方法について説明します。GKE Enterprise ターゲットのサポートにより、AWS、Azure、オンプレミス クラスタへのデプロイが可能になります。

Cloud Deploy を使用すると、Connect ゲートウェイを使用してアクセスできる任意の GKE Enterprise ユーザー クラスタにコンテナベースのワークロードをデプロイできます。

始める前に

  • デプロイ先の GKE Enterprise ユーザー クラスタがあること。

    このクラスタは、GKE Enterprise ユーザー クラスタとして作成したクラスタでも良いですし、既存の Kubernetes クラスタを登録することもできます。GKE Enterprise 用に作成したクラスタは、自動的にメンバーシップを受け取ります。フリートに登録する既存のクラスタの場合は、登録時にメンバーシップ名を指定します。このメンバーシップ名は、移行先の構成で必要になります。

    Google Cloud CLI のバージョン 407.0.0 以降を使用している場合は、Google Kubernetes Engine クラスタを登録するときに、gcloud container fleet memberships register コマンド--install-connect-agent フラグを使用する必要があります。Connect エージェントはデフォルトでインストールされなくなりました。

  • Connect Gateway を設定して、登録済みのクラスタを Google Cloud に接続します。

    Cloud Deploy 実行サービス アカウントとして使用するサービス アカウントを使用して、必ずゲートウェイを設定してください。権限を付与しない場合、実行サービス アカウントには GKE Enterprise クラスタにデプロイするために必要な権限がありません。

GKE Enterprise にデプロイするために Cloud Deploy を設定する

  1. ターゲット構成を作成する

    ターゲットは、デリバリー パイプライン YAML で構成することも、別のファイルで構成することもできます。また、同じファイルで複数のターゲットを構成することもできますが、異なる kind: Target スタンザに配置する必要があります。

  2. 実行サービス アカウントに、ゲートウェイを介して接続されたクラスタとやり取りするために必要なロールを付与します。

    デフォルトの Cloud Deploy サービス アカウントを使用しているか、カスタム サービス アカウントを使用しているかにかかわらず、この権限は必須です。

  3. Anthos クラスタの基礎となる Kubernetes クラスタで、実行サービス アカウントRBAC を設定します。

  4. 省略可: 基盤となるクラスタが GKE クラスタでない場合は、クラスタが Artifact Registry から pull できるように imagePullSecret を構成する必要があります。

  5. ターゲット定義で、GKE Enterprise クラスタを参照する anthosCluster スタンザを作成します。

    GKE Enterprise クラスタを指定する構文は次のとおりです。

    anthosCluster:
     membership: projects/[project_name]/locations/global/memberships/[membership_name]
    

    この GKE Enterprise リソース ID では、次の要素が使用されます。

    • [project_name] は、このクラスタを実行する Google Cloud プロジェクトの名前です。

      GKE Enterprise クラスタを含むデプロイ先のクラスタは、デリバリー パイプラインと同じプロジェクトにある必要はありません

    • [membership_name] は、フリートにクラスタを登録するときに選択した名前です。

    location の場合、すべての GKE Enterprise クラスタ メンバーシップは global であるため、このリソース ID の /locations/global/ を変更する必要はありません。

次の例は、GKE Enterprise ユーザー クラスタを参照するターゲット構成です。

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: qsdev
      description: development cluster
      anthosCluster:
       membership: projects/my-app/locations/global/memberships/my-app-dev-cluster

次のステップ