试着安装了多云持续交付平台 「Spinnaker 1.0」
首先
由于Spinnaker 1.0发布了,我有兴趣尝试并安装了它。
这次我使用了新加入的功能”Halyard”,所以我将记录下安装步骤。
Spinnaker是什么?
· Spinnaker的官方网站
https://www.spinnaker.io/
· 包含Spinnaker介绍的页面
https://cloudplatform-jp.googleblog.com/2017/06/spinnaker-10-continuous-delivery.html
■ Halyard是什么?
大致上来说,这是一个用于辅助Spinnaker安装、更新和配置更改的CLI工具。后面会提到,通过使用Halyard,您可以轻松安装Spinnaker。
■ 3. 尝试使用Halyard进行安装
这次的安装是在GCP启动的实例上进行的。
我们将按照Spinnaker公开的文档进行步骤实施。
创建实例
区域:任意的区域
操作系统:Ubuntu 14.04
机型:vCPU×4(内存26GB,n1-highmem-4)
访问范围:允许完全访问所有云 API
防火墙:允许HTTP流量/允许HTTPS流量
・谷歌软件开发工具包的认证
詳細は省略しますが、在安裝Spinnaker的實例中,我們使用以下命令進行身份驗證。
$ gcloud auth login
$ gcloud config set project "GCPのプロジェクト名"
安装Halyard。
$ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/stable/InstallHalyard.sh
$ sudo bash InstallHalyard.sh
"Halyardのバージョンが最新であることを確認"
$ hal -v
$ . ~/.bashrc
$ sudo apt-get update
$ sudo apt-get upgrade spinnaker-halyard
选择Halyard 的安装类型。
"HalyardをインストールしたサーバでSpinnakerをインストールすることを選択"
$ hal config deploy edit --type localdebian
• 存储设置(此次选择了Google Cloud Storage)
$ SERVICE_ACCOUNT_NAME=spinnaker-gcs-account
$ SERVICE_ACCOUNT_DEST=~/.gcp/gcs-account.json
$ gcloud iam service-accounts create \
> $SERVICE_ACCOUNT_NAME \
> --display-name $SERVICE_ACCOUNT_NAME
$ SA_EMAIL=$(gcloud iam service-accounts list \
> --filter="displayName:$SERVICE_ACCOUNT_NAME" \
> --format='value(email)')
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --role roles/storage.admin --member serviceAccount:$SA_EMAIL
$ mkdir -p $(dirname $SERVICE_ACCOUNT_DEST)
$ gcloud iam service-accounts keys create $SERVICE_ACCOUNT_DEST \
> --iam-account $SA_EMAIL
$ hal config storage gcs edit --project "自分のプロジェクト名" \
> --bucket-location "バケットのロケーション" \
> --json-path $SERVICE_ACCOUNT_DEST
$ hal config storage edit --type gcs
:
+ Successfully edited persistent storage.
给予Spinnaker对Google Compute Engine的操作权限。
$ SERVICE_ACCOUNT_NAME=spinnaker-gce-account
$ SERVICE_ACCOUNT_DEST=~/.gcp/gce-account.json
$ gcloud iam service-accounts create \
> $SERVICE_ACCOUNT_NAME \
> --display-name $SERVICE_ACCOUNT_NAME
$ SA_EMAIL=$(gcloud iam service-accounts list \
> --filter="displayName:$SERVICE_ACCOUNT_NAME" \
> --format='value(email)')
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --member serviceAccount:$SA_EMAIL \
> --role roles/compute.instanceAdmin
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --member serviceAccount:$SA_EMAIL \
> --role roles/compute.networkAdmin
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --member serviceAccount:$SA_EMAIL \
> --role roles/compute.securityAdmin
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --member serviceAccount:$SA_EMAIL \
> --role roles/compute.storageAdmin
$ gcloud projects add-iam-policy-binding "自分のプロジェクト名" \
> --member serviceAccount:$SA_EMAIL \
> --role roles/iam.serviceAccountActor
$ mkdir -p $(dirname $SERVICE_ACCOUNT_DEST)
$ gcloud iam service-accounts keys create $SERVICE_ACCOUNT_DEST \
> --iam-account $SA_EMAIL
$ hal config provider google enable
$ hal config provider google account add my-gce-account --project "自分のプロジェクト名" \
> --json-path $SERVICE_ACCOUNT_DEST
:
+ Successfully added account my-gce-account for provider
google.
– 部署
$ hal version list
:
? Options include:
- X.X.X "Spinnakerのバージョンをメモする。"
$ hal config version edit --version "Spinnakerのバージョン"
$ sudo hal deploy apply
:
spinnaker start/running
"Spinnakerプロセスが起動していることを確認"
$ status spinnaker
spinnaker start/running
端口转发
Spinnaker的图形用户界面(GUI)会在本地主机的9000端口启动。因此,需要将9000端口进行端口转发。(根据Spinnaker的规范,还需要将8084和8087端口一并进行端口转发。)
作为一个例子,我将介绍使用Google Cloud SDK的方法。
首先,在本地设备(这里是Windows)上安装Google Cloud SDK。
https://cloud.google.com/sdk/?hl=ja
然后,打开安装好的“Google Cloud SDK Shell”,并输入以下命令。
> gcloud auth login
> gcloud config set project "GCPのプロジェクト名"
> gcloud compute ssh --ssh-flag="-L" --ssh-flag="9000:localhost:9000" --ssh-flag="-L" --ssh-flag="8084:localhost:8084" --ssh-flag="-L" --ssh-flag="8087:localhost:8087" --project="自分のプロジェクト名" --zone="インスタンスのリージョン" "インスタンス名"
4. 尝试连接到Spinnaker
如果能够连接到GUI,则可以通过右上角的”Actions”下拉选项卡进行应用程序等设置。
5. 额外加赠
您可以使用Halyard轻松安装用于监控Spinnaker的工具”Prometheus”。如果您感兴趣,请务必尝试一下。
https://www.spinnaker.io/setup/monitoring/prometheus/