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 ファイルを比較することで、正しいワークロードを適切な方法でデプロイしていることを確認できます。
始める前に
作業を始める前に、次のことを確認してください。
- Google Kubernetes Engine API が有効になっていることを確認します。 Google Kubernetes Engine API の有効化
- Cloud SDK がインストール済みであることを確認します。
次のいずれかの方法で gcloud
のデフォルトの設定を指定します。
gcloud init
。デフォルトの設定全般を確認する場合に使用します。gcloud config
。プロジェクト ID、ゾーン、リージョンを個別に設定する場合に使用します。
gcloud init の使用
エラー One of [--zone, --region] must be supplied: Please specify
location
を受信した場合は、このセクションの内容を実施します。
-
gcloud init
を実行して、次の操作を行います。gcloud init
リモート サーバーで SSH を使用している場合は、
--console-only
フラグを指定して、コマンドがブラウザを起動しないようにします。gcloud init --console-only
- 手順に従って
gcloud
を承認し、Google Cloud アカウントを使用します。 - 新しい構成を作成するか、既存の構成を選択します。
- Google Cloud プロジェクトを選択します。
- デフォルトの 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
次の追加 API を有効にします。
Cloud Build
Cloud Source Repositories
要件
自動デプロイには次の要件があります。
自動デプロイは、単一のコンテナ イメージを指定する
Deployment
タイプのワークロードでのみ使用できます。マルチコンテナ ワークロードと他のワークロード タイプ(ReplicaSet
など)はサポートされていません。ソースコード リポジトリには、イメージのビルドに使用する Dockerfile が必要です。
このリポジトリは、次のいずれかのプロダクトでホストできます。
- Cloud Source Repositories
- GitHub
- Bitbucket
GitHub または Bitbucket を使用する場合は、リポジトリに Google Cloud へのアクセス権を付与する必要があります。
コンテナ イメージは、GKE クラスタと同じ Google Cloud プロジェクトの Container Registry に保存します。イメージを Container Registry に配置し、少なくとも 1 回はデプロイする必要があります。これにより、ワークロードが GKE で処理されます。
Deployment を作成する
自動デプロイで Deployment を作成するには、次の手順に従います。
Google Cloud Console の [ワークロード] メニューに移動します。
デプロイするワークロードの名前をクリックします。
ワークロードのデプロイの詳細ページが開きます。
[操作] メニューをクリックして、[自動デプロイ] を選択します。
自動デプロイの設定画面が表示されます。
このワークロードのビルドに使用するソースコードを含むリポジトリを選択します。
[リポジトリ プロバイダ] プルダウンからリポジトリのプロバイダを選択します。
自動デプロイは次のソース管理ホストに対応しています。
- Cloud Source Repositories
- GitHub
- Bitbucket
GitHub または Bitbucket を使用する場合は、ユーザー名とパスワードで認証を行います。
[リポジトリ] プルダウンから、ワークロードのソースコードを含むリポジトリの名前を選択します。
[続行] をクリックして、ビルド構成情報を指定します。
ビルド元のブランチの名前か、ブランチに一致する正規表現(RegExp2)を入力します。デフォルトのブランチは
master
です。このブランチに push すると、Cloud Build がアプリケーションをビルドします。Dockerfile のディレクトリを指定し、リポジトリのルートからの相対パスを入力します。
ビルド情報を含む Dockerfile のファイル名を指定します。
[続行] をクリックします。
構成の YAML ファイルの場所を指定します。
YAML ファイルが自動的に生成されます。これにより、YAML ファイルをリポジトリに格納できます。
[Google 推奨の YAML を表示] をクリックすると、生成された YAML ファイルが表示されます。
独自の YAML ファイルがある場合はそれと比較し、その結果に基づいて更新を行います。
それ以外の場合は、新しいファイルを作成し、生成された YAML を入力します。これにより、デプロイされたワークロードと現在実行中のワークロードが一致します。ファイルには任意の名前を付けることができますが、拡張子は
.yaml
または.yml
にする必要があります。YAML が配置されているディレクトリを、リポジトリのルートからの相対パスで指定します。
指定したディレクトリに複数の YAML ファイルがある場合、GKE はそのすべてを使用します。
[設定] をクリックして、自動デプロイの構成を完了します。
Cloud Build サービス アカウントに権限を付与するように求められる場合があります。この権限は必須です。
次のステップ
選択したワークロードの自動デプロイを設定すると、リポジトリの特定のブランチへの push 後に、コンテナ イメージをビルドする Cloud Build トリガーが作成されます。Cloud Build は、元のイメージがデプロイされているクラスタにワークロードの新しいリビジョンをデプロイします。
ワークロードの詳細については、デプロイの詳細ページ([変更履歴] タブ)をご覧ください。