とりあえずサクッと動かせる環境が欲しかったので、ローカルの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コアを設定した。
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
このような画面が表示され
こちらのコンソールに遷移すればSpinnakerの準備が整いました!
あとは設定をしていろいろ使ってみることができます。ですが結構重いです。
ではでは。