本連載について
本連載では、6部構成で以下の機能を持ったWebアプリケーションを構築します。
- オートスケーリング
- 本番環境と開発環境で別のURLを持つ
- アプリケーションのバージョン番号を使った本番環境の切り替え
- アプリケーションのバージョンごとにURLを自動で割り当てる
- ロギング機能
- CPU使用率、メモリー使用率などのモニタリング機能
アプリケーションの構成図
本連載で作成するアプリケーションの構成図です。図1の「Ingress」「Service」「Pod」はKubernetesの用語です。各用語については後ほど説明します。
この構成にすると、以下のURLでそれぞれの環境にアクセスできます。
本番環境用のURL
- https://pro.app.io
開発環境用のURL
- バージョンがr45の場合:https://dev.app.io/versions/r45
- バージョンがr46の場合:https://dev.app.io/versions/r46
この構成には次の利点があります。
- バージョンごとにアプリケーションのテストが可能
- 本番環境で問題が起こった場合も、すぐに別のバージョンに切り替えることができる
連載の構成
本連載は、以下の内容で解説する予定です。
[第1回]Google Container EngineによるKubernetesクラスタを作成
KubernetesおよびKubernetesの概念、Google Container Engineについての解説をします。また、Google Container Engineのクラスタの作成方法と、その上にWebアプリケーションをデプロイする方法を解説します。
[第2回]Webアプリケーションを外部に公開
第1回で構成したクラスタに修正を行い、Webアプリケーションを外部に公開するための手順を解説します。
[第3回]Blue-Green Deployment相当の機能とアプリケーションのバージョンごとにURLを生成する機能を追加
第2回で構成したクラスタに対してさらに修正を行い、Serviceのselector(後述)を使ったBlue-Green Deployment相当の機能の実現方法と、アプリケーションのバージョンごとにURLを自動で割り当てる機能を実現するため、必要な手順を解説します。
[第4回]アプリケーションのデプロイと継続的インテグレーション
アプリケーションを効率的に開発するため、継続的インテグレーションの導入と本番環境および開発環境にデプロイする手順について解説します。
[第5回]モニタリングツールの導入
Google Container Engineでは標準のモニタリングツールである「StackDriver」の説明をします。また、StackDriverに足りないモニタリング機能を補うために「Prometheus」というオープンソースのモニタリングツールの導入方法を解説します。
[第6回目]アプリケーションのログの設定とアラートの設定
CPUやメモリーの使用率がしきい値を超えた場合にアラートやアプリケーションのログのフォーマットを変更して、ログレベルがError以上の場合はアラートを出すように設定します。
対象読者
- Linuxの基本的なコマンドが使える方
- Dockerの使用経験がある方
- Kubernetesを使ったことがない技術者
検証環境
Kubernetes側の環境
- Google Container Engine 1.7.3
- Kubernetes 1.7.3
クライアントの環境
- macOS Sierra 10.12.6
- kubectl 1.7.3
[注意]料金について
本連載では、Google Container Engineの料金と「Google Compute Engine」のVMインスタンス(仮想化インスタンス)の料金が時間に応じて発生します。