Container Sevice 설치 가이드

Table of Contents

Deprecated

※ 본 문서는 PaaS-TA 5.0 이하의 버전까지 지원한다.

1. 문서 개요

1.1. 목적

본 문서(Container 서비스팩 설치 가이드)는 개방형 PaaS 플랫폼 고도화 및 개발자 지원 환경 기반의 Open PaaS에서 제공되는 서비스팩인 Container 서비스팩을 Bosh를 이용하여 설치 및 서비스 등록하는 방법을 기술하였다.

PaaS-TA 3.5 버전부터는 Bosh 2.0 기반으로 배포(deploy)를 진행한다. 기존 Bosh 1.0 기반으로 설치를 원할 경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2. 범위

설치 범위는 Container 서비스팩을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3. 시스템 구성도

본 문서의 설치된 시스템 구성도이다. Container 서비스 Server, Container 서비스 브로커, Private Image Registry 로 최소사항을 구성하였다.

VM명

인스턴스수

vCPU 수

메모리(GB)

디스크(GB)

master

1

1

4G

Root 4G + 영구디스크 50G

worker

N

8

16G

Root 4G + 영구디스크 100G

container-service-api

N

1

1G

Root 4G

container-service-common-api

N

1

1G

Root 4G

container-service-broker

N

1

1G

Root 4G

container-service-dashboard

1

1

1G

Root 4G

private-image-repository

1

1

1G

Root 4G + 영구디스크 10G

DBMS (MariaDB)

1

1

2G

Root 4G + 영구디스크 20G

HAProxy

1

1

2G

Root 4G

1.4. 참고 자료

http://bosh.io/docsarrow-up-right http://docs.cloudfoundry.orgarrow-up-right

2. Container 서비스 설치

2.1. Prerequisite

본 설치 가이드는 Linux 환경에서 설치하는 것을 기준으로 하였다. 서비스팩 설치를 위해서는 BOSH 2.0과 PaaS-TA 5.0, PaaS-TA 포털이 설치되어 있어야 한다.

  • ※ Container 서비스팩 설치 전 Bosh 2.0 배포 주의사항

    IaaS 환경이 OPENSTACK 인 경우 bosh deploy 시 /home/{inception_os_user_name}/workspace/paasta-5.0/deployment/bosh-deployment/openstack/disable-readable-vm-names.yml 파일을 옵션으로 추가한 후 배포한다.

2.2. Stemcell 확인

Stemcell 목록을 확인하여 서비스 설치에 필요한 Stemcell이 업로드 되어 있는 것을 확인한다. (PaaS-TA 5.0 과 동일 stemcell 사용)

$ bosh -e micro-bosh stemcells

2.3. Deployment 다운로드

서비스 설치에 필요한 Deployment를 Git Repository에서 받아 서비스 설치 작업 경로로 위치시킨다.

2.4. Deployment 파일 수정

BOSH Deployment manifest는 Components 요소 및 배포의 속성을 정의한 YAML 파일이다. Deployment 파일에서 사용하는 network, vm_type, disk_type 등은 Cloud config를 활용하고, 활용 방법은 BOSH 2.0 가이드를 참고한다.

  • Cloud config 설정 내용을 확인한다.

$ bosh -e micro-bosh cloud-config

  • Deployment YAML에서 사용하는 변수 파일을 서버 환경에 맞게 수정한다.

$ vi ~/workspace/paasta-5.0/deployment/service-deployment/container-service/{IAAS}-vars.yml (e.g. {IAAS} :: openstack)

2.5. 서비스 설치

  • 서버 환경에 맞추어 Deploy 스크립트 파일의 VARIABLES 설정을 수정한다.

$ vi ~/workspace/paasta-5.0/deployment/service-deployment/container-service/deploy-{IAAS}.sh

  • 서비스 설치 전 remove-all-addons.sh 을 환경에 맞게 수정한 뒤 실행한다.

  • 서비스를 설치한다.

2.6. 서비스 설치 - 다운로드 된 PaaS-TA Release 파일 이용 방식

  • 서버 환경에 맞추어 Deploy 스크립트 파일의 VARIABLES 설정을 수정하고 Option file 및 변수를 추가한다.

    (추가) -o operations/use-compiled-releases.yml

    (추가) -v inception_os_user_name=""

$ vi ~/workspace/paasta-5.0/deployment/service-deployment/container-service/deploy-{IAAS}.sh

  • 서비스 설치 전 remove-all-addons.sh 을 환경에 맞게 수정한 뒤 실행한다.

  • 서비스를 설치한다.

2.7. 서비스 설치 확인

설치 된 서비스를 확인한다.

$ bosh -e micro-bosh -d container-service vms

3. Container 서비스 관리 및 신청

PaaS-TA 운영자 포탈을 통해 서비스를 등록하고 공개하면, PaaS-TA 사용자 포탈을 통해 서비스를 신청 하여 사용할 수 있다.

3.1. Container 서비스 브로커 등록

Container 서비스팩 배포가 완료되었으면 PaaS-TA 포탈에서 서비스 팩을 사용하기 위해서 먼저 Container 서비스 브로커를 등록해 주어야 한다. 서비스 브로커 등록 시 개방형 클라우드 플랫폼에서 서비스 브로커를 등록할 수 있는 사용자로 로그인이 되어있어야 한다.

  • 서비스 브로커 목록을 확인한다.

  • Container 서비스 브로커를 등록한다.

$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩arrow-up-right URL}

  • 서비스팩 이름 : 서비스 팩 관리를 위해 개방형 클라우드 플랫폼에서 보여지는 명칭

  • 서비스팩 사용자 ID/비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID/비밀번호

  • 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL

  • 등록된 Container 서비스 브로커를 확인한다.

  • 접근 가능한 서비스 목록을 확인한다.

  • 특정 조직에 해당 서비스 접근 허용을 할당한다.

  • 접근 가능한 서비스 목록을 확인한다.

3.2. Container 서비스 UAA Client 등록

UAA 포털 계정 등록 절차에 대한 순서를 확인한다.

  • Container 서비스 대시보드에 접근이 가능한 IP를 알기 위해 haproxy IP 를 확인한다.

  • uaac server의 endpoint를 설정한다.

  • uaac 로그인을 한다.

  • Container 서비스 계정 생성을 한다.

$ uaac client add caasclient -s {클라이언트 비밀번호} --redirect_uri {컨테이너 서비스 대시보드 URI} --scope {퍼미션 범위} --authorized_grant_types {권한 타입} --authorities={권한 퍼미션} --autoapprove={자동승인권한}

  • : uaac 클라이언트 id

  • : uaac 클라이언트 secret

  • : 성공적으로 리다이렉션 할 Logging 서비스 접근 URI (http://)

  • <퍼미션 범위> : 클라이언트가 사용자를 대신하여 얻을 수있는 허용 범위 목록

  • <권한 타입> : 서비스가 제공하는 API를 사용할 수 있는 권한 목록

  • <권한 퍼미션> : 클라이언트에 부여 된 권한 목록

  • <자동승인권한> : 사용자 승인이 필요하지 않은 권한 목록

3.3. PaaS-TA 포탈에서 Container 서비스 조회 설정

해당 설정은 PaaS-TA 포탈에 Container 서비스 상의 자원들을 간략하게 조회하기 위한 설정이다.

1) PaaS-TA 어드민 포탈에 접속한다.

2) 왼쪽 네비게이션 바에서 [설정]-[설정정보] 를 클릭한 후 나타나는 페이지의 오른쪽 상단 [인프라 등록] 버튼을 클릭하여 해당 정보들을 입력한다.

  • 해당 정보를 입력하기 위해 필요한 값들을 찾는다.

    $ bosh -e micro-bosh -d portal-api vms

    haproxy 의 IP 를 찾아 Portal_Api_Uri 에 입력한다.

    ``` Deployment 'portal-api'

Instance Process State AZ IPs VM CID VM Type Active Stemcell binary_storage/f8b140f0-6061-46a1-99fa-216d124423fe running z6 10.0.201.132 dca829c1-a76f-4771-9ffa-dd734364c6f4 portal_small true - haproxy/c248579f-b7c7-4010-9e6a-b6aab14a0d7b running z6 10.0.201.131 a3c5dca3-6989-46f4-97f0-508b3122aa85 small true - 101.55.50.211 mariadb/fba7cd79-58ba-4e70-a2dc-8fe180058665 running z6 10.0.201.130 13b2c8f8-1a99-46dc-81b1-be3a678580c0 portal_small true - paas-ta-portal-api/f73e323a-c080-407a-ba55-da54e076bc2f running z6 10.0.201.135 48f1801d-cd01-4f19-bbb0-a96f8d36c3cc portal_medium true - paas-ta-portal-common-api/d3479dfb-d6fb-46f4-b879-059eb3ba200d running z6 10.0.201.136 b391fb2f-3b74-43cf-a243-d00968cae836 portal_small true - paas-ta-portal-gateway/1eab2fe3-09ff-48da-9bb2-a4a7f8ba707c running z6 10.0.201.133 617c3f08-3e46-48c5-bb08-c867d7b97466 portal_small true - paas-ta-portal-log-api/6b3407bf-8099-4aa0-a0db-28394f512145 running z6 10.0.201.138 bbcea9e9-81c5-409e-a732-46a8835c5a54 portal_small true - paas-ta-portal-registration/27852b28-92e7-4c11-8201-e0822118e6d8 running z6 10.0.201.134 15e4c4f5-f599-474b-a779-a142943b8e5c portal_small true - paas-ta-portal-storage-api/e92c1252-dc67-43d4-9984-9340fd4fc832 running z6 10.0.201.137 5d3a0ef9-def1-49a1-975b-c4b93985b269 portal_small true -

9 vms

Using environment '10.0.1.6' as client 'admin'

Task 294249. Done

Deployment 'container-service'

Instance Process State AZ IPs VM CID VM Type Active Stemcell container-jenkins-broker/129ad9e6-3fb9-48f4-a876-9bd1aeb2793d running z2 10.0.41.135 4a7c6cd6-d338-424d-ab30-66b563c0f0c5 small true - container-service-api/f7902066-0978-4de3-bf2d-e432b0c14199 running z5 10.0.161.127 ab210e7e-af10-476e-8dfa-4d6081fd494c small true - container-service-broker/e193844e-6d47-4477-a73c-b5014d4573e7 running z6 10.0.201.141 e31e74a9-a567-4b38-9e21-b796492f3466 small true - container-service-common-api/b2b5e67b-0a5f-4943-a3da-6e9826a6f8fa running z5 10.0.161.128 03ad70ab-b2c1-4791-b8fb-5903b6b680ba small true - container-service-dashboard/300fead4-4487-4a65-b77c-5e3487818453 running z6 10.0.201.140 fec06a82-df4c-4c00-b8e8-bd646ad4e1cc small true - haproxy/cd60739e-a6b7-436d-9fe9-a515d28629fd running z7 10.0.0.126 b8bad420-e726-41c8-9aae-f7d45c2f2679 small true - 101.55.50.201 mariadb/9755e6a4-243f-4350-a6d8-517566c6dcbf running z5 10.0.161.126 ef081b0a-7c1a-4854-a695-200d80194db2 small true - master/68782774-455e-43f7-95a4-20d09fa4936c running z7 10.0.0.125 0da12a95-9f2b-4fa7-9079-d4c59b573c3a small-highmem-16GB true - 101.55.50.204 private-image-repository/1a416603-ced1-4b1c-8090-5f3962309456 running z7 10.0.0.127 895010f1-ae53-457f-bd8d-138a68ca847c small true - 101.55.50.202 worker/23886843-ab6b-4ae1-a676-89f7307d5b01 running z5 10.0.161.125 e4eaa60c-084c-4384-ab3f-915aca22dc4c small-highmem-16GB true - worker/3c37840f-c743-410e-81c7-f6754afb60f7 running z6 10.0.201.139 7a44994c-b833-4b6c-a6dd-f314d048b171 small-highmem-16GB true - worker/d6ef01d8-d783-40a6-a8f7-b43f8fd4c52f running z4 10.0.121.122 ab557f46-57b7-480c-8826-ce9aac256f9f small-highmem-16GB true -

12 vms

Succeeded

ex)

  • NAME : PaaS-TA 5.0 (Openstack)

  • Portal_Api_Uri : http://:2225

  • Authorization : Basic YWRtaW46b3BlbnBhYXN0YQ==

  • 설명 : PaaS-TA 5.0 install infra

  • CaaS_Api_Uri : http://

  • CaaS_Authorization : Basic YWRtaW46UGFhUy1UQQ==

    ```

3.4. Jenkins 서비스 설정 (Optional)

해당 설정은 Jenkins 서비스에서 설치된 Jenkins 서비스를 이용하기 위한 설정이다.

1) 배포된 Jenkins 서비스 VM 목록을 확인한다.

$ bosh -e micro-bosh -d container-service vms

2) Jenkins 서비스 브로커를 등록한다.

  • 서비스 브로커 목록을 확인한다.

  • Jenkins 서비스 브로커를 등록한다.

$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩arrow-up-right URL}

  • 서비스팩 이름 : 서비스 팩 관리를 위해 개방형 클라우드 플랫폼에서 보여지는 명칭

  • 서비스팩 사용자 ID/비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID/비밀번호

  • 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL

  • 등록된 Jenkins 서비스 브로커를 확인한다.

  • 접근 가능한 서비스 목록을 확인한다.

  • 특정 조직에 해당 서비스 접근 허용을 할당한다.

  • 접근 가능한 서비스 목록을 확인한다.

4. 쿠버네티스 마스터 노드 IP 변경 시 인증서 갱신 (Optional)

쿠버네티스 마스터 노드의 IP가 변경되어 재설치를 하는 경우 해당 IP를 포함한 인증서를 삭제해주어야 신규 인증서가 생성되므로 이 경우 설치 스크립트는 자동으로 인증서를 삭제 후 배포를 진행한다. 만약 CredHub에 로그인이 되어 있지 않으면 아래와 같은 메세지가 나타나며 CredHub 로그인 이후 다시 시도해야 한다.

5. 서비스 삭제

서비스 삭제 시 CredHub에 로그인이 되어 있는 상태 에서 이하의 script를 실행하여 credHub의 credential 삭제 처리를 진행한다.

Last updated