본문 바로가기

Spinnaker

Spinnaker Bake and Deploy Pipeline

728x90

이 문서는 Spinnaker의 Bake and Deploy Pipeline 공식 가이드 문서를 따랐습니다.


1. Spinnaker Application 생성

먼저 Spinnaker 화면에서 Actions를 눌러 Create Application을 누른다.

그러면 Application에 대한 정보를 입력하는 다이알로그가 뜬다.

이름과 이메일을 입력하고 Instance Health에 Consider only cloud provider health when executing tasks 를 체크한 후에 Create를 한다.

생성에 성공한다면 Applications 세부 정보 창으로 넘어간다.



2. Sercurity Group 생성

Application 생성에 성공했으면 우측 상단에 SERCURITY GROUP으로 넘어간다.

그러면 이러한 화면이 뜨고 Create Sercurity Group 버튼을 클릭한다.

Application을 생성할 때와 마찬가지로 Sercurity Group을 생성하는 다이알로그가 나온다.


그러면 값을 Detail에는 test, Description에는 Test environment, VPC는 SpinnakerVPC(이름은 다를 수 있음), 그리고 아래에 Ingress에는

Security Group을 default로 하고 Startport와 Endport를 80으로 해준다.

성공적으로 생성이 되었다면 이렇게 생성된 Security Group을 확인할 수 있다.



3. Load Balancer 생성

이제 Load Balancer를 생성해보자

Load Balancer를 생성하기 위해 우측 상단 LOAD BALANCERS로 이동한다.


저장

저장

당연히 처음엔 아무것도 없으니 이렇게 뜰 것이고 우측 상단에 Create Load Balancer를 클릭한다.

그러면 이렇게 ALB와 ELB 두가지의 Type이 나오는데 우리는 ALB를 선택한 뒤에 Configure Load Balancer를 누른다.

설정 창에서는 Stack에 test를 입력하고 Security Groups를 방금 만들어준 Security Group으로 설정한 뒤 Create 버튼을 누른다.

만드는 도중에 아마 이렇게 오류가 날 것인데, 이 오류는 적어도 2개의 다른 Zone이 있어야 한다는 오류다.

Zone을 만들기 위해 AWS VPC->Subnet으로 이동하자

현재는 이렇게 2개의 서브넷이 존재하는데 서브넷 생성 버튼을 눌러서 하나를 추가해보자

버튼을 누르면 이렇게 다이알로그가 뜨고 Name 태그에 값은 원래 있던 VPC를 복사하여 맨 뒤에 2a를 2b로 고쳐주었다.

그리고 가용영역을 us-west-2b로 설정하고 IPv4 CIDR 블록에 10.100.12.0/24 를 입력하자.

(가용영역과 IPv4 CIDR은 Region과 자신의 설정에 따라 다를 수 있습니다)

그리고 예, 생성 버튼을 눌러 생성한다.


성공적으로 생성이 완료되면 이렇게 하나가 추가되었을 것이다.

그리고 우리는 이제 라우팅 테이블 탭으로 넘어간다

좌측 탭 목록에서 서브넷 밑에 있는 라우팅 테이블로 이동하자.


이렇게 Spinnaker Private와 Spinnaker Public 으로 두개의 라우팅 테이블이 존재한다.

Spinnaker Private Route Table을 클릭한다.

이렇게 밑에 정보가 나오는데 서브넷 연결 탭으로 이동하여 편집 버튼을 누른다.

현재는 아마 us-west-2a 하나만 체크가 되어있었을 것이다.

여기서 사진과 같이 us-west-2b를 체크하고 저장 버튼을 누른다.

이렇게 성공적으로 추가가 되었으면 다시 Spinnaker 화면으로 넘어가자.

이 화면에서 Go back and try to fix this 버튼을 누른다.

그러면 아까와 같이 모든 설정이 그대로 남아있는데 그대로 Create버튼을 누른다.

그런데 만약에

이런 오류가 났다면 Go back and try to fix this 버튼을 클릭한 다음

target group에 이름을 targetgroup에서 targetgroup2 로 이름을 바꾸고 밑에

Listeners에서도 바뀐 이름으로 Target을 적용해준다

저장

그러면 어렵게 어렵게 Load Balancer가 생성된다!



4. Pipeline 생성

이제 본격적으로 테스트를 진행할 Pipeline을 생성해보자

좌측에 Application 이름 옆에 PIPELINES 탭을 선택한다.


아직 아무것도 없으니 이렇게 뜬다.

그러면 이제 하나 만들어보자 우측 상단에 Create 버튼 클릭


그러면 이렇게 다이알로그가 뜰 것이다. Pipeline Name은 Bake & Deploy to Test 로 지정하고 (다른 이름도 상관없음) Create 버튼을 누른다.

저장


저장ㅇ

성공적으로 생성이 되었으면 이렇게 화면이 나오는데 여기서 Add Stage를 눌러 Stage를 하나 추가한다.

그리고 이렇게 Type에 Bake를 설정하고 Package에 redis-server라고 기본 제공 패키지를 적고나서 Add Stage로 하나 더 추가한다.

이번 Stage의 Type은 Deploy로 만들고 가운데에 보이는 Deploy Configuration에서 Add server group 버튼을 누른다.

이렇게 다이알로그가 뜰 것이다.

Stack에 test라고 입력하고 Strategy에 Highlander로 설정한다

그리고 밑에 Load Balancers 에서 Target Groups를 아까 위에서 생성한 example-targetgroup2로 설정한다.

그 후 Security Groups도 아까 위에서 생성한 그룹으로 해주고 Instance Type을 Micro Utility 선택 후 원하는 사이즈를 선택한다.

그리고 Capacity에서 Number of Instances를 2로 설정하고 Advanced Settings에서 Key Name을 설정했던 pem Key 이름으로 한다.

그리고 Done을 누르고 돌아오면 Deploy Configuration에 생성했던 server group이 나오고 페이지 우측 하단에 Save 버튼을 누른다.

그러면 새롭게 server group이 생기고 Cluster에 example-test라고 나온다.

Save Changes버튼을 누리고 PIPELINES으로 돌아온다.

이렇게 생기는데 우측에 Start Manual Excution을 누른다.

좀 시간이 흐르면서 파이프라인을 타면서 테스트를 하는데 진행중인것은 파랑색, 성공한 것은 초록색, 실패한 것은 빨간색 으로 표시되며 실패를 한다면 실패한 구간에서 멈추고 뒤의 테스트를 하지 않는다. 현재는 모든 테스트가 성공하여 전부 초록색으로 표시가 되는 것이다.


반응형

'Spinnaker' 카테고리의 다른 글

Spinnaker Hello Deployment  (2) 2017.10.24
Spinnaker Halyard Setup  (0) 2017.10.24
Spinnaker Quickstart 설치  (0) 2017.10.19
Spinnaker란?  (0) 2017.10.19