自動デプロイの設定

Google Kubernetes Engine(GKE)のワークロードに自動デプロイを構成できます。

このページでは、ワークロードにシンプルな継続的インテグレーション / 継続的デリバリー(CI / CD)パイプラインを設定する方法について説明します。リポジトリに変更を push すると、Cloud Build がコンテナを自動的にビルドして GKE クラスタにデプロイします。

自動デプロイの仕組み

GKE で単一コンテナ イメージを参照するワークロードがある場合、このワークロードに自動デプロイを構成できます。自動デプロイを構成すると、コードの変更がリポジトリにチェックインされるたびに、アプリケーションが再ビルドされ、デプロイされます。

自動デプロイでは、ワークロードを YAML ファイルとして定義し、この YAML ファイルをリポジトリに保存します(ベスト プラクティスに準拠)。GKE はこの目的で使用できる YAML を生成します。

YAML ファイルを使用する方法には、次の 2 つがあります。

  • ワークロードを定義する YAML ファイルがない場合は、生成された YAML ファイルを使用できます。YAML ファイルをリポジトリに保存します。Cloud Build は毎回、これを使用してワークロードをデプロイします。

  • ワークロードを定義する YAML ファイルがすでにある場合は、リポジトリ内の場所を GKE に指定できます。リポジトリの YAML ファイルと推奨の YAML ファイルを比較することで、正しいワークロードを適切な方法でデプロイしていることを確認できます。

始める前に

作業を始める前に、次のことを確認してください。

次のいずれかの方法で gcloud のデフォルトの設定を指定します。

  • gcloud init。デフォルトの設定全般を確認する場合に使用します。
  • gcloud config。プロジェクト ID、ゾーン、リージョンを個別に設定する場合に使用します。

gcloud init の使用

エラー One of [--zone, --region] must be supplied: Please specify location を受信した場合は、このセクションの内容を実施します。

  1. gcloud init を実行して、次の操作を行います。

    gcloud init

    リモート サーバーで SSH を使用している場合は、--console-only フラグを指定して、コマンドがブラウザを起動しないようにします。

    gcloud init --console-only
  2. 手順に従って gcloud を承認し、Google Cloud アカウントを使用します。
  3. 新しい構成を作成するか、既存の構成を選択します。
  4. Google Cloud プロジェクトを選択します。
  5. デフォルトの Compute Engine ゾーンを選択します。

gcloud config の使用

  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project project-id
  • ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone compute-zone
  • リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region compute-region
  • gcloud を最新バージョンに更新します。
    gcloud components update

要件

自動デプロイには次の要件があります。

  • 自動デプロイは、単一のコンテナ イメージを指定する Deployment タイプのワークロードでのみ使用できます。マルチコンテナ ワークロードと他のワークロード タイプ(ReplicaSet など)はサポートされていません。

  • ソースコード リポジトリには、イメージのビルドに使用する Dockerfile が必要です。

    このリポジトリは、次のいずれかのプロダクトでホストできます。

    GitHub または Bitbucket を使用する場合は、リポジトリに Google Cloud へのアクセス権を付与する必要があります。

  • コンテナ イメージは、GKE クラスタと同じ Google Cloud プロジェクトの Container Registry に保存します。イメージを Container Registry に配置し、少なくとも 1 回はデプロイする必要があります。これにより、ワークロードが GKE で処理されます。

Deployment を作成する

自動デプロイで Deployment を作成するには、次の手順に従います。

  1. Google Cloud Console の [ワークロード] メニューに移動します。

    [ワークロード] メニューに移動

  2. デプロイするワークロードの名前をクリックします。

    ワークロードのデプロイの詳細ページが開きます。

  3. [操作] メニューをクリックして、[自動デプロイ] を選択します。

    自動デプロイの設定画面が表示されます。

  4. このワークロードのビルドに使用するソースコードを含むリポジトリを選択します。

    1. [リポジトリ プロバイダ] プルダウンからリポジトリのプロバイダを選択します。

      自動デプロイは次のソース管理ホストに対応しています。

      • Cloud Source Repositories
      • GitHub
      • Bitbucket

      GitHub または Bitbucket を使用する場合は、ユーザー名とパスワードで認証を行います。

    2. [リポジトリ] プルダウンから、ワークロードのソースコードを含むリポジトリの名前を選択します。

  5. [続行] をクリックして、ビルド構成情報を指定します。

    1. ビルド元のブランチの名前か、ブランチに一致する正規表現(RegExp2)を入力します。デフォルトのブランチは master です。このブランチに push すると、Cloud Build がアプリケーションをビルドします。

    2. Dockerfile のディレクトリを指定し、リポジトリのルートからの相対パスを入力します。

    3. ビルド情報を含む Dockerfile のファイル名を指定します。

  6. [続行] をクリックします。

  7. 構成の YAML ファイルの場所を指定します。

    YAML ファイルが自動的に生成されます。これにより、YAML ファイルをリポジトリに格納できます。

    1. [Google 推奨の YAML を表示] をクリックすると、生成された YAML ファイルが表示されます。

    2. 独自の YAML ファイルがある場合はそれと比較し、その結果に基づいて更新を行います。

      それ以外の場合は、新しいファイルを作成し、生成された YAML を入力します。これにより、デプロイされたワークロードと現在実行中のワークロードが一致します。ファイルには任意の名前を付けることができますが、拡張子は .yaml または .yml にする必要があります。

    3. YAML が配置されているディレクトリを、リポジトリのルートからの相対パスで指定します。

      指定したディレクトリに複数の YAML ファイルがある場合、GKE はそのすべてを使用します。

  8. [設定] をクリックして、自動デプロイの構成を完了します。

    Cloud Build サービス アカウントに権限を付与するように求められる場合があります。この権限は必須です。

次のステップ

選択したワークロードの自動デプロイを設定すると、リポジトリの特定のブランチへの push 後に、コンテナ イメージをビルドする Cloud Build トリガーが作成されます。Cloud Build は、元のイメージがデプロイされているクラスタにワークロードの新しいリビジョンをデプロイします。

ワークロードの詳細については、デプロイの詳細ページ([変更履歴] タブ)をご覧ください。