寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

minikubeでspinnakerを動かすまで(Macのローカルでspinnakerを動かす)

とりあえずサクッと動かせる環境が欲しかったので、ローカルのminikubeでも一応spinnakerを動かすことはできそうだったので試す。

事前準備

  • helmがインストールが完了していること (brew install kubernetes-helm)
  • kubectlのインストールが完了していること
  • minikubeのインストールが済んでいること

注 : Spinnakerをminikubeで動かす場合にはかなりタフなマシンスペックが必要になります。メモリが16GB程度は搭載されているMacでもだいぶ厳しいです。

minikubeを起動する

minikubeを新たなまっさらな状態で起動します。
Spinnakerがリソースを大量に必要とするためです。

minikubeを起動する前にminikubeのupdateをしておくことをおすすめします。
brew caskでインストールしている場合には brew cask reinstall minikube でupdateされると思います。
すでにminikubeの環境を作成したことがある場合には、 minikube delete を実行し、minikubeのVMを削除しておくと良いと思います。

以下のコマンドでminikubeを起動します。

minikube start

minikubeのVMのパラメータを変更する

minikubeのデフォルトだとメモリもCPUも足りないため、spinnakerが起動することすらできないので、VirtualBoxのパラメータを変更する必要がある。

minikubeを止める

以下のコマンドで起動したばかりのVMを停止しましょう

minikube stop

VirtualBoxの設定からcpu/memoryの設定を更新する

メモリは8192MB、CPUは4コアを設定した。

f:id:chidakiyo:20181001191348p:plain

f:id:chidakiyo:20181001191431p:plain

minikubeを改めて起動する

minikube start

kubectlが期待するクラスタ(minikube)に向いているかチェック

minikube startを実行した時点で設定が変更されているはずだが一応確認する

kubectl get node

以下のような感じでminikubeと出れば大丈夫

NAME       STATUS    ROLES     AGE       VERSION
minikube   Ready     master    5m        v1.10.0

helmをクラスタに対して設定する

以下のコマンドでクラスタに対してhelmを有効化する

helm init

Spinnakerをインストールする

helmコマンドを利用し、Spinnakerをインストールする

helm install stable/spinnaker --namespace spinnaker --timeout 6000

少しタイムアウトを伸ばしたほうが良いです。

インストールが完了すると以下のような表示が出ます。

NOTES:
1. You will need to create 2 port forwarding tunnels in order to access the Spinnaker UI:
  export DECK_POD=$(kubectl get pods --namespace spinnaker -l "cluster=spin-deck" -o jsonpath="{.items[0].metadata.name}")
  kubectl port-forward --namespace spinnaker $DECK_POD 9000

2. Visit the Spinnaker UI by opening your browser to: http://127.0.0.1:9000

To customize your Spinnaker installation. Create a shell in your Halyard pod:

  kubectl exec --namespace spinnaker -it jazzy-shrimp-spinnaker-halyard-0 bash

For more info on using Halyard to customize your installation, visit:
  https://www.spinnaker.io/reference/halyard/

For more info on the Kubernetes integration for Spinnaker, visit:
  https://www.spinnaker.io/reference/providers/kubernetes-v2/

表示がされてもすぐにPodが完全に起動しておらず、ポートフォワードの設定が失敗するので、以下のコマンドでPodのデプロイ状況を確認します。

watch -d -n 2 kubectl get pods --namespace spinnaker

STATUS がすべてRunningになるまでじっと待ちましょう・・・

Spinnakerに接続するためのポートフォワード設定をする

export DECK_POD=$(kubectl get pods --namespace spinnaker -l "cluster=spin-deck" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward --namespace spinnaker $DECK_POD 9000

ブラウザでアクセスする

ポートフォワードの設定がエラーなく実施できたらブラウザからいかのURLへアクセスします。

http://localhost:9000

f:id:chidakiyo:20181001191529p:plain

このような画面が表示され

f:id:chidakiyo:20181001191555p:plain

こちらのコンソールに遷移すればSpinnakerの準備が整いました!
あとは設定をしていろいろ使ってみることができます。ですが結構重いです。

ではでは。