Using Kubernetes on GCP
Use Kubernetes on GCP
Springboot on ContainerとUsing JNR on Containerの続きの内容です。
構成図の通り、GCP
のGKE(Google Kubernetes Engine
)を使ってみようと思います。
今回はGUIでボタンを押していくだけで出来ました。
1. Technical Elements
- Spring Boot
- Spring Framework ベースのアプリケーションを手軽に作成することができるフレームワーク
- Docker
- コンテナ仮想化を用いた OS レベルの仮想環境の構築ツール
- GoogleContainerTools/jib: 🏗
- jib-gradle-plugin
- Java アプリケーションを実行する Docker コンテナイメージを簡単に作成するためのツール
- GCP(Google Cloud Platform)
- Google が提供しているクラウドコンピューティングサービス
- Google 検索や YouTube などでも同じインフラストラクチャーが利用されている。
- Google が提供しているクラウドコンピューティングサービス
- GKE(Google Kubernetes Engine)
- Google が開発した、現在オープンソース化されている Kubernetes をベースとしたコンテナ環境です。
- jnr/jnr-ffi
- Javaから簡単にCのライブラリを呼び出せるフレームワーク
2. Settings of Each Technical Element
2.1. Cluster
以下のような事項を決めていきます。
(参考:クラスタの作成 | Kubernetes Engine のドキュメント | Google Cloud)
- 名前
- ロケーション タイプ
- ノードのマシンタイプ
- ブートディスクの種類/サイズ
- スケーリングの設定
- 最低ノード数/最大ノード数
- 垂直ポッド自動スケーリングの可否
- 各GCPのAPIに対してのアクセス権限の設定
- Compute Engine
- ストレージ
- タスクキュー
- BigQuery
- Cloud SQL
2.2. Workload
以下のような事項を決めていきます。
(参考:ワークロードのデプロイの概要 | Kubernetes Engine のドキュメント | Google Cloud)
- コンテナイメージの選択
Google Container Registry
にimageを登録してあれば、そこから選択できる。- 今回は、
SpringBoot/JNR/Cライブラリ(.so)/JDBC(MySQL)
を含むイメージを選択した。
- 環境変数の設定
- アプリケーション名の設定
2.3. Ingress
以下のような事項を決めていきます。
(参考:Ingress を使用した HTTP(S) 負荷分散 | Kubernetes Engine のドキュメント | Google Cloud)
- Ingressタイプの設定
- ホストとパスルールの構成の設定
2.4. Logging
AWSのCloudWatchやAzureのAzure Monitorと同じように、 各サービスや、K8Sの各podのログをかき集めてくれる。