멀티 클라우드 지속형 딜리버리 플랫폼 "Spinnaker 1.0"을 설치해 보았습니다.

■ 1. 소개



Spinnaker 1.0이 출시되었으므로, 만져 보려고 설치해 보았습니다.
이때 1.0에서 추가된 기능 「Halyard」를 사용했으므로, 순서를 기술합니다.

Spinnaker란?
・Spinnaker 홈페이지
htps //w w. s 핀아케 r. 이오/
・Spinnaker의 설명이 기재되어 있는 페이지
htps : // c ぉ dp t t rm jp. 오 g b b g. 이 m/2017/06/s 핀아케 r-10-안녕하세요 s-로 ゃゔぇry. HTML

■ 2. Halyard란?



간략하게 설명하면 Spinnaker 설치, 업데이트 및 구성 변경을 지원하는 CLI 도구입니다. 후술하지만, Halyard를 이용하여 Spinnaker를 쉽게 설치할 수 있습니다.

■ 3. Halyard에서 설치해보기



이번 설치는 GCP로 시작한 인스턴스에서 수행되었습니다.
이 절차는 Spinnaker가 게시한 문서대로 수행합니다.

· 인스턴스 만들기

영역: 모든 지역
OS: 우분투 14.04
머신 타입:vCPU×4(메모리 26GB, n1-highmem-4)
액세스 범위: 모든 Cloud API에 대한 전체 액세스 권한 허용
방화벽: HTTP 트래픽 허용/HTTPS 트래픽 허용

· Google SDK 인증

자세한 내용은 생략하지만 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는 localhost의 9000번으로 시작합니다. 따라서 9000번 포트로 포트 포워드합니다.
(Spinnaker의 사양상, 8084번, 8087번도 아울러 포트 포워드할 필요가 있습니다.)

한 가지 예로 Google Cloud SDK를 사용하는 방법을 소개합니다.
먼저 로컬 컴퓨터(이번에는 Windows)에 Google Cloud SDK를 설치합니다.
htps : // c ぉ d. 오, ぇ. 이 m/sdk/? hl = 그럼
그런 다음 설치된 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에 연결해 본다



브라우저에 http://localhost:9000을 입력하여 연결합니다.


GUI에 연결할 수 있으면 오른쪽 상단의 Actions 풀 탭에서 Application 등의 설정을 할 수 있습니다.


Bake와 Deploy도 실시할 수 있었습니다!

■ 5. 덤



Halyard를 사용하여 Spinnaker를 모니터링하는 도구 Prometheus를 쉽게
설치할 수도 있습니다. 흥미있는 분은, 꼭 시험해 보세요.
htps //w w. s 핀아케 r. 이오 / 세츠 p / 모토 린 g / p 어리석은 s /

좋은 웹페이지 즐겨찾기