今度はSpinnakerに興味を持ったので、ローカルのminikubeでやろうとしたけどできなくて、GKEのチュートリアルでやってみたメモ。さくっと終わるつもりだったのにいつも通り色々あったかな。
minikubeでやってみよう→失敗
ローカルのminikubeで動かしてみようと思って、ここを見ながらhelm入れるところまでいって、その後Spinnaker入れようとしたらできなかった。もうエラーの内容も覚えてないけど、バージョンの違いとかなんだろうかな。
ここで時間かけて原因をチェックするより、とりあえず動かしてみたいので、GKEでやってみることにした。
GKEでやってみよう→できた
GKE + Spinnakerのチュートリアル。
(Image from: https://cloud.google.com/solutions/continuous-delivery-spinnaker-kubernetes-engine )
この手順でやったら、Spinnakerが動くところまでできた。(∩´∀`)∩ワーイ
Spinnaker動かしたー(チュートリアル通りにコマンド打っただけ)。なんかかっこいい(∩´∀`)∩ワーイ pic.twitter.com/mc8bCxNjQZ
— しーば (@bufferings) 2018年2月4日
そして
勉強の時間を取ることができずにいたら
一切覚えてない・・・ちくしょう・・・ https://t.co/FCrcHkAyC3
— しーば (@bufferings) 2018年2月15日
ということで気を取り直して、最初からやりなおしてみた。
だいたいこんな感じだった:
はまったところ
最初にSpinnakerをデプロイしてから「まだ無料期間中だからいいか」って思ってしばらく放置しておいてから昨日久しぶりに触ったんだけど、そしたらSpinnakerがGCRのタグを取得できないってエラーになってて。ぐぐったらこれっぽい。
Spinnakerの部品の一つのCloudDriverが起動してから2,3日たつと、認証エラーになるっぽい。ので、とりあえずPodを2日に1回再起動してるーって。ので、Podを落として勝手に再起動されるのを待ってたらタグとってこれて動いたや。(∩´∀`)∩ワーイ
デプロイメントパイプライン
パイプラインの流れは、イメージのpushをトリガーにして→機能テストを実施→問題なければカナリア環境にデプロイ。
んで、動作確認がOKだったら手動で本番化するかどうかを選ぶ。って感じ。(下側の赤いところが中断を選んだ場合。)
カナリアリリース
チュートリアルの本番環境には本番Podが8個、カナリアPodが1個デプロイされるようになってるから、8:1の割合でカナリアPodにリクエストが流れる。
8:1のカナリアリリースできた。へー。 pic.twitter.com/3ANJMy9hgk
— しーば (@bufferings) 2018年2月17日
問題なければ、本番化すると本番Podが新しいバージョンになるっぽい。
面白かったー
次はもう少し詳しくSpinnakerを見ていこうかな。クッキーでカナリア環境に振り分けたりとかとか。