このドキュメントでは、GKE 接続クラスタにアプリケーションをデプロイする方法について説明します。GKE 接続クラスタのサポートにより、AWS、Azure、オンプレミス クラスタへのデプロイが可能になります。
Cloud Deploy を使用すると、Connect Gateway を使用してアクセスできる GKE 接続クラスタにコンテナベースのワークロードをデプロイできます。
始める前に
デプロイ先のユーザー クラスタがある。
クラスタは GKE 接続クラスタとして作成することも、既存の Kubernetes クラスタを登録することもできます。GKE 接続クラスタとして作成したクラスタは、自動的にメンバーシップを受け取ります。フリートに登録する既存のクラスタの場合は、登録時にメンバーシップ名を指定します。このメンバーシップ名は、ターゲットを構成するときに必要になります。
Google Cloud CLI のバージョン 407.0.0 以降を使用している場合は、Google Kubernetes Engine クラスタを登録するときに、
gcloud container fleet memberships registerコマンドで--install-connect-agentフラグを使用する必要があります。Connect エージェントはデフォルトでインストールされなくなりました。登録済みクラスタを Google Cloudに接続するように Connect Gateway を設定します。
Cloud Deploy 実行サービス アカウントとして使用するサービス アカウントを使用して、ゲートウェイを設定してください。そうしないと、実行サービス アカウントにクラスタにデプロイするために必要な権限が付与されません。
GKE 接続クラスタにデプロイするために Cloud Deploy を設定する
ターゲット構成を作成する
ターゲットは、デリバリー パイプライン YAML で構成することも、別のファイルで構成することもできます。また、同じファイルで複数のターゲットを構成できますが、異なる
kind: Targetスタンザに配置する必要があります。実行サービス アカウントに、ゲートウェイを介して接続されたクラスタとやり取りするために必要なロールを付与します。
デフォルトの Cloud Deploy サービス アカウントを使用しているか、カスタム サービス アカウントを使用しているかにかかわらず、この権限は必須です。
基盤となる Kubernetes クラスタで、実行サービス アカウントに RBAC を設定します。
省略可: 基盤となるクラスタが GKE クラスタでない場合は、クラスタが Artifact Registry から pull できるように imagePullSecret を構成する必要がある場合があります。
ターゲット定義で、クラスタを指す
anthosClusterスタンザを作成します。GKE 接続クラスタを指定する構文は次のとおりです。
anthosCluster: membership: projects/[project_name]/locations/global/memberships/[membership_name]この GKE 接続クラスタのリソース ID では、次の要素が使用されます。
[
project_name] は、このクラスタを実行している Google Cloud プロジェクトの名前です。GKE 接続クラスタを含むデプロイ先のクラスタは、デリバリー パイプラインと同じプロジェクトにある必要はありません。
[
membership_name] は、クラスタをフリートに登録したときに選択した名前です。
locationの場合、すべてのクラスタ メンバーシップはglobalであるため、このリソース識別子で/locations/global/を変更する必要はありません。
ターゲット構成の例を次に示します。
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
次のステップ
Cloud Deploy ターゲットの構成の詳細を確認する
Cloud Deploy の実行環境について学習する。
GKE 接続クラスタの詳細を確認する
Connect ゲートウェイについて学習する。