GCPにSpinnakerをインストールするための手順を整理しました
はじめに
前回でようやくSpinnakerが生まれてきた背景やできることを大まかにつかめました。
ここからは実際にインストールしてみたいと思います。
検証環境
項目 | 選定 |
---|---|
クラウド | GCP ( Google Cloud Platform ) |
デプロイ環境 | GKE ( Google Kubernetes Engine ) |
Spinnakerインストール環境 | GCE ( Google Compute Engine ) |
前提条件
- 作業用PCで
gcloud
コマンド ( Google Cloud SDK ) が実行できること - GCP 上に GKEクラスタ が構築済みであること
作業用PC での作業
まずは自分の作業用PCで作業を行います。
1. コマンドラインから各種作業を実行するための準備
コマンドラインで作業を進めていくに当たり、いくつかのAPIを 有効化 します。
以下の2つの Google APIを有効にします。
Google Cloud Console Webページから有効にしても良いですが、ここでは gcloud
コマンドで有効化します。
2. Halyardをインストールする Compute Engine インスタンスを作成
Halyard をインストールする Compute Engineインスタンス を作成します。
その前にまずはインスタンスに割り当てる サービスアカウト を作成し、 以下の2つの ロール を割り当てます。
- roles/iam.serviceAccountKeyAdmin
- roles/container.admin
次に サービスアカウント を使って、 Compute Engine インスタンス を作成します。
3. GCS(Storage)とGCR(Container Registry)へアクセスするためのサービスアカウントを作成
今度は Halyard ではなく、 Spinnaker のための設定です。
GKE 上にインストールされる Spinnaker は、 GCS と GCR の利用を行うため、 Spinnaker 用のサービスアカウントとロールの割当を行います。
サービスアカウント を作成し、 以下の2つの ロール を割り当てます。
- roles/storage.admin
- roles/browser
4. Spinnaker用の永続化ストレージを作成
Spinnaker は永続化ストレージを必要とします。
WebのUIからいろいろ操作した際の設定情報などを保存する領域でしょうか?
ともかく必要ということなので、事前に作成しておきましょう。
GCSのバケット名はGCP内の全ユーザで一意な名前をつける必要があります。重複しないようにプロジェクト名を付与しておきました。
ようやく、作業用PCで必要な作業は終了です。大変ですが次へ進みましょう。。。。
Compute Engine インスタンス での作業
1. Compute Engine インスタンス にssh接続
先程作成したインスタンスにssh接続します。
変わったオプションとして、sshのポートフォワーディング設定を行っています。
これは、セットアップの最期でSpinnakerのWeb UIにブラウザで接続するためです。
少しややこしいですが、セットアップの最期で以下のようなポートフォワーディングが設定され、作業用PCのの9000ポート、8084ポートがSpinnakerの9000ポート、8084ポートに直結されます。
詳細はまた後ほど。
2. Halyard のインストール
ようやく Halyard サーバのセットアップに進みます。
当面は何も考えずコマンドをターミナルに貼り付けていけばOKです。
kubectl
コマンドのインストール
JDK のインストール
Halyard はどうやらJavaのアプリケーションのようです。
実行には Java
が必要です。
Halyard のインストール
Halyard のインストールスクリプトをダウンロードして実行します。
実行時に Halyard の実行用ユーザ( root
以外)を指定する必要があるため、 halyard
というLinuxユーザを作成し指定しました。
Halyard のバージョンを確認すると、以下のようになっていました。
3. Halyard がGKEクラスタへ接続できるようにする
以下の2つの環境変数は、ご自分のインストール先クラスタの設定に従ってください。
- GKE_CLUSTER_NAME
- GKE_CLUSTER_ZONE
わからない場合には 作業用PC にて gcloud container clusters list | awk '{ print $1, $2 }' | column -t
を実行し、結果から探すことができます。
4. Spinnaker が GKE にリソースをデプロイするための権限を付与
Halyard と Spinnaker の設定が行ったり来たりですが、ここでは Spinnaker の設定を。
Spinnaker は GKE クラスタを操作してカナリアデプロイ、ブルーグリーンデプロイの機能を提供sルウため、大きな権限を付与してやる必要があります。
5. Spinnaker 用のサービスアカウント設定ファイルを作成
先程作成した、GCS + GCRアクセス用のサービスアカウント設定をjsonファイルとして書き出しておきましょう。
6. Spinnaker デプロイのための設定
もう一息です。
Spinnaker デプロイのための最終設定です。
最新バージョンのHalyardを利用するように設定
Spinnaker内部で利用する永続化ストレージとしてGCSを利用するように設定
永続化ストレージとして利用するバケットの設定と、それにアクセスするための認証ファイルを登録します。
Spinnaker内部でDocker RegistryからPullできるように設定
7. Spinnaker をデプロイする
8. 正しくデプロイされたかを確認
正しく Spinnaker がデプロイされたかを、 spinnaker
ネームスペース内のポッドを一覧表示することで確認してみます。
すべてのポッドの "READY" フィールドが "1/1" になるまで待ちましょう。6分ぐらいかかります。
9. ブラウザでWeb UIにアクセスする
最期に、 Compute Engine インスタンス から Spinnaker ポッドへのポートフォワードを設定します。
この状態で、作業用PCで以下のURLをブラウザ表示します。
http://localhost:9000/
以下のようなページが表示されればセットアップ成功です。
ひとこと
おそらく何度もハマることと思います。
僕は何度もハマりました。
実はこのエントリも何度か書き直しています。
そのかわり、Spinnakerのセットアップの手助けになるエントリに仕上がったという自負があります!
ディスカッション
コメント一覧
まだ、コメントがありません