1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、GKEのコンテナCI/CDの実装について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、GKEのセキュアなCI/CDを実装したいときに、参考になる情報やプラクティスをまとめています。
3. セットアップ
前提として、GKEとGitHubのリポジトリは存在するものとします。
まずは、Cloud BuildとContainer Registryをセットアップしていきます。
①GitHubとの接続
「Cloud Build」→「トリガー」→「リポジトリの管理」→「リポジトリの接続」
GitHubアカウントにログインし、リポジトリを選択します。
②トリガーの設定
「Cloud Build」→「トリガー」→「トリガーの作成」
トリガーとなるイベントを、「ブランチにPushする」、「新しいタグをPushする」、「pullリクエスト」から選びます。
また、ソースとなるリポジトリとブランチを選択します。
構成は、「Cloud Build構成ファイル」とします。
③Google Container Registryの作成
ビルド済みイメージを保存するレジストリを作成します。
GCPコンソールから「Google Container Registry」画面に移動し、新規作成をしてください。
4. Cloud BuildでのCI/CDパイプライン構築
続いて、Cloud BuildのCI/CDを設定していきます。
①ビルドの設定
Cloud Buildの設定ファイルであるcloudbuild.yamlに、ビルド部分を記載していきます。
以下のようなファイルを使用しました。
steps:
- name: 'node:11.10.0'
id: 'Install'
args: ['npm', 'install']
dir: 'test-api'
- name: 'node:11.10.0'
id: 'Build'
args: ['npm', 'run', 'staging-build']
dir: 'test-api'
- name: 'gcr.io/cloud-builders/docker'
id: 'Build Image'
args: ['build', '-t', '${GCRレジストリのID}', '.', '-f', 'Dockerfile']
dir: 'test-api'
- name: 'gcr.io/cloud-builders/docker'
id: 'PushR'
args: ['push', '${GCRレジストリのID}']
dir: 'test-api'
②GKEでのGCRイメージの指定
GKEで使用しているマニフェストファイルでGCRレジストリのイメージを指定します。
③デプロイの設定
最後に、cloudbuild.yamlにデプロイ部分を記載していきます。
これで、GitHubのPushをトリガーにGCRへビルドされ、GKEにデプロイされるパイプラインが構築できました!
steps:
- name: 'gcr.io/cloud-builders/kubectl'
id: 'Deploy'
args: ['apply', '-f', '${manifest file path}']
env:
- 'CLOUDSDK_COMPUTE_ZONE=asia-northeast1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=gcp-test-sandbox'
dir: 'test-api'
5. 引用・参考記事
6. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
7. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。