8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kubernetes2Advent Calendar 2017

Day 10

Spinnaker使ってGoogle Kubernetes Engineで継続的デリバリをする 前編

Last updated at Posted at 2017-12-10

ドーモ、読者=サン。DTB(どうぶつタワーバトル)面白いですね。まだ未プレイであれば、是非プレイして見て下さい。これがe-Sportsです。

では早速、本題にはいると今回は、Spinnakerを使ってGoogle Kubernetes Engineのクラスタにアプリケーションを継続的デリバリ出来るようにする方法についてご紹介します。Spinnakerは継続的デリバリを行うためのツールです。

今回はこんな感じの継続的デリバリのフローをSpinnakerを使って実現します。

Untitled Diagram (1).png

ユーザー(アプリケーション開発者)はレポジトリにPushするだけでアプリケーションがデプロイされます。デプロイ後に今度は、ユーザーが手動でデプロイしたアプリケーションに対して動作確認を行い、問題なければ本番環境のLBを切り替えてデプロイしたアプリケーションをリリースする想定です。

Spinnakerの概要などは今回は紹介しないので、知りたい人は公式を御覧ください。
Spinnaker Concepts

手順

  • Container Builderの設定(Docker buildとDocker push)
  • Spinnakerのデプロイ

手順としては、大きく分けて2つになります。今回の記事ではSpinnakerのデプロイまでを行い、次の記事でSpinnakerのパイプラインの設定の解説を行う予定です。

Container Builderの設定

Container BuilderではDockerコンテナイメージのビルドとプッシュを行います。設定方法に関しては公式ドキュメントのDockerfileによるクイックスタートを読んで下さい!
Dockerfile によるクイックスタート
ちなみにDockerfileのビルドだけであれば、UIポチポチで設定出来ます!

Spinnakerのデプロイ

Spinnakerをデプロイして、その後に動作確認も兼ねて新しいアプリケーションを作るところまでを行います。アプリケーションはSpinnakerのトップレベルの概念です。

Spinnakerのデプロイ

SpinnakerのデプロイはGCPのCLOUD LAUNCHERを使います。CLOUD LAUNCHERのページからポチポチするだけでGCEにSpinnakerのインスタンスがデプロイされてめっちゃ楽です。

公式 CLOUD LAUNCHER

ではデプロイしていきましょう。GCPのコンソールからCloud Launcherのページに移動して、Cloud Launcherの検索窓にspinnakerと入力して、検索結果にSpinnakerにが表示されたらそれをクリックして下さい。

スクリーンショット 2017-12-10 20.53.01.png

スクリーンショット 2017-12-10 20.51.52.png

クリックしたら下記の画面に移動するので、COMPUTE ENGINE 上で起動をクリックして下さい。

スクリーンショット 2017-12-10 21.02.41.png

クリックすると新しいSpinnaker のデプロイというページが表示されます。今回はKubernetesにデプロイしたいので、Kubernetes Enabledにチェックを付けて、Cluster Nameなどを入力して下さい。入力が終わったらデプロイを押してデプロイしましょう。

スクリーンショット 2017-12-10 21.05.51.png

デプロイが上手く行けば、下記の様な画面が表示されると思います。緑のチェックが付いてあれば成功しています。
スクリーンショット 2017-12-10 21.49.09.png
ちなみに、ここでデプロイにコケてるとエラーの内容が表示されるのですが、場合によっては何も伝わってこないエラーが表示されるので結構地獄です・・・

Spinnakerのアップデート

 2017/12/14現在でCLOUD LAUNCHERで構築するとSpinnakerのGateというソフトが、起動しないことがあるみたいなので、SpinnakerのVMにSSHで入ってSpinnakerのアップデートをしましょう。

手順

  1. sshでログイン
  2. apt-get update && apt-get upgrade spinnakerを実行

1. sshでログイン

gcloud compute ssh --project={プロジェクト名} --zone={ゾーン} spinnaker-1

2. apt-get update && apt-get upgrade spinnakerを実行

sudo apt-get update
sudo apt-get upgrade spinnaker

upgradeの時の質問には全部、yで問題ないかと思います。

Spinnakerの画面にアクセス

それでは、Spinnakerのパイプラインの設定を行っていきましょう。まず最初にSSHトンネルを使って先程デプロイしたSpinnakerにブラウザからアクセスします。SSHトンネルはgcloud コマンドを使って行います。コマンドはSpinnakerデプロイ直後に表示されるWebページのSpinnkarを使ってみるAccessing Spinnaker through SSH Tunnelに表示されているコマンドをコピペしてターミナルで実行して下さい。

スクリーンショット 2017-12-10 21.53.41.png

コマンド例


gcloud compute ssh --project={プロジェクト名} --zone={ゾーン} spinnaker-1 -- -L 9000:localhost:9000  -L 8084:localhost:8084

コマンドを実行したらブラウザからlocalhost:9000にアクセスしてみて下さい。下記にようなロード画面が表示されるはずです。

spinnaker起動画面.png

新しいアプリケーションを作る

Spinnakerではまず最初にアプリケーションというものを作る必要があります。アプリケーションはSpinnakerのトップレベルの概念で、アプリケーションの中にパイプライン、クラスタ、ロードバランサがあります。
それでは、アプリケーションを作っていきましょう。Spinnakerのトップページから右下のActionsをクリックしてCreate Applicationをクリックして下さい。

スクリーンショット 2017-12-10 23.25.34.png

クリックするとNew Applicationというページに飛ばされるので必要な情報を入力します。今回は、kubernetesにデプロイするのでCloudProvidersでkubernetesを選択して下さい。

スクリーンショット 2017-12-10 22.30.18.png

入力が終わったら、Createを押して作成しましょう。

正常にCreateされたら下記のような画面が表示されるはずです!
スクリーンショット 2017-12-11 0.03.41.png

さいごに

今回はこれで、最後になります。次回の記事でSpinnakerでLBの作成とパイプラインの構築について解説します。

8
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?