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 エージェントはデフォルトでインストールされなくなりました。

  • 登録済みのクラスタを Google Cloud に接続するように Connect ゲートウェイを設定します。

    ゲートウェイは、必ず 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 リソース識別子では、次の要素を使用します。

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

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

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

    location の場合、すべての GKE Enterprise クラスタ メンバーシップは global であるため、このリソース識別子の /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

次のステップ