PaaS-TA-5.5.0
Search…
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. 참고 자료

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
1
Using environment '10.0.1.6' as client 'admin'
2
3
Name Version OS CPI CID
4
bosh-aws-xen-hvm-ubuntu-xenial-go_agent 315.64* ubuntu-xenial - ami-0297ff649e8eea21b
5
6
(*) Currently deployed
7
8
1 stemcells
9
10
Succeeded
Copied!

2.3. Deployment 다운로드

서비스 설치에 필요한 Deployment를 Git Repository에서 받아 서비스 설치 작업 경로로 위치시킨다.
1
# Deployment 다운로드 파일 위치 경로 생성 및 설치 경로 이동
2
$ mkdir -p ~/workspace/paasta-5.0/deployment
3
$ cd ~/workspace/paasta-5.0/deployment
4
5
# Deployment 파일 다운로드
6
$ git clone https://github.com/PaaS-TA/service-deployment.git -b v5.0.3
Copied!

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
1
Using environment '10.0.1.6' as client 'admin'
2
3
azs:
4
- cloud_properties:
5
availability_zone: ap-northeast-2a
6
name: z1
7
- cloud_properties:
8
availability_zone: ap-northeast-2a
9
name: z2
10
11
... ((생략)) ...
12
13
disk_types:
14
- disk_size: 1024
15
name: default
16
- disk_size: 1024
17
name: 1GB
18
19
... ((생략)) ...
20
21
networks:
22
- name: default
23
subnets:
24
- az: z1
25
cloud_properties:
26
security_groups: paasta-security-group
27
subnet: subnet-00000000000000000
28
dns:
29
- 8.8.8.8
30
gateway: 10.0.1.1
31
range: 10.0.1.0/24
32
reserved:
33
- 10.0.1.2 - 10.0.1.9
34
static:
35
- 10.0.1.10 - 10.0.1.120
36
37
... ((생략)) ...
38
39
vm_types:
40
- cloud_properties:
41
ephemeral_disk:
42
size: 3000
43
type: gp2
44
instance_type: t2.small
45
name: minimal
46
- cloud_properties:
47
ephemeral_disk:
48
size: 10000
49
type: gp2
50
instance_type: t2.small
51
name: small
52
53
... ((생략)) ...
54
55
Succeeded
Copied!
  • Deployment YAML에서 사용하는 변수 파일을 서버 환경에 맞게 수정한다.
$ vi ~/workspace/paasta-5.0/deployment/service-deployment/container-service/{IAAS}-vars.yml (e.g. {IAAS} :: openstack)
1
# BOSH NAME
2
director_name: "micro-bosh" # bosh name (caas_cluster_name에 필요.)
3
4
# IAAS
5
auth_url: 'http://<IAAS-IP>:5000/v3' # auth url
6
openstack_domain: '<OPENSTACK_DOMAIN>' # openstack domain
7
openstack_username: '<OPENSTACK_USERNAME>' # openstack username
8
openstack_password: '<OPENSTACK_PASSWORD>' # openstack password
9
openstack_project_id: '<OPENSTACK_PROJECT_ID>' # openstack project id
10
region: '<OPENSTACK_REGION>' # region
11
ignore-volume-az: true # ignore volume az (default : true)
12
13
# STEMCELL
14
stemcell_os: "ubuntu-xenial" # stemcell os
15
stemcell_version: "315.64" # stemcell version
16
stemcell_alias: "xenial" # stemcell alias
17
18
# VM_TYPE
19
vm_type_small: "small" # vm type small
20
vm_type_small_highmem_16GB: "small-highmem-16GB" # vm type small highmem
21
vm_type_small_highmem_16GB_100GB: "small-highmem-16GB" # vm type small highmem_100GB
22
vm_type_caas_small: "small" # vm type small for caas's etc
23
vm_type_caas_small_api: "small" # vm type small for caas's api
24
25
# NETWORK
26
private_networks_name: "default" # private network name
27
public_networks_name: "vip" # public network name
28
29
# IPS
30
caas_master_public_url: "<CAAS_MASTER_PUBLIC_URL>" # caas master's public IP
31
haproxy_public_url: "<HAPROXY_PUBLIC_URL>" # haproxy's public IP
32
33
# CREDHUB
34
credhub_admin_client_secret: "<CREDHUB_ADMIN_CLIENT_SECRET>" # credhub admin secret ('$(bosh int <creds.yml FILE_PATH> --path /credhub_admin_client_secret)' 명령어를 통해 확인 가능 )
35
36
# CAAS UAAC CLIENT
37
paasta_uaa_oauth_client_id: "<PAASTA_UAA_OAUTH_CLIENT_ID>" # Container service's UAA Client Id (e.g. caasclient)
38
paasta_uaa_oauth_client_secret: "<PAASTA_UAA_OAUTH_CLIENT_SECRET>" # Container service's UAA Client secret (e.g. clientsecret)
39
40
# HAPROXY
41
haproxy_http_port: 8080 # haproxy port
42
haproxy_azs: [z7] # haproxy azs
43
44
# MARIADB
45
mariadb_port: "13306" # mariadb port (e.g. 13306)-- Do Not Use "3306"
46
mariadb_azs: [z5] # mariadb azs
47
mariadb_persistent_disk_type: "10GB" # mariadb persistent disk type
48
mariadb_admin_user_id: "<MARIADB_ADMIN_USER_ID>" # mariadb admin user name (e.g. root)
49
mariadb_admin_user_password: "<MARIADB_ADMIN_USER_PASSWORD>" # mariadb admin user password (e.g. paasta!admin)
50
mariadb_role_set_administrator_code_name: "Administrator" # administrator role's code name (e.g. Administrator)
51
mariadb_role_set_administrator_code: "RS0001" # administrator role's code (e.g. RS0001)
52
mariadb_role_set_regular_user_code_name: "Regular User" # regular user role's code name (e.g. Regular User)
53
mariadb_role_set_regular_user_code: "RS0002" # regular user role's code (e.g. RS0002)
54
mariadb_role_set_init_user_code_name: "Init User" # init user role's code name (e.g. Init User)
55
mariadb_role_set_init_user_code: "RS0003" # init user role's code (e.g. RS0003)
56
57
# DASHBOARD
58
caas_dashboard_instances: 1 # caas dashboard instances
59
caas_dashboard_port: 8091 # caas dashboard port
60
caas_dashboard_azs: [z6] # caas dashboard azs
61
caas_dashboard_management_security_enabled: false # caas dashboard management security (default : false)
62
caas_dashboard_logging_level: "INFO" # caas dashboard logging level
63
64
# API
65
caas_api_instances: 1 # caas api instances
66
caas_api_port: 3333 # caas api port
67
caas_api_azs: [z6] # caas api azs
68
caas_api_management_security_enabled: false # caas api management security (default : false)
69
caas_api_logging_level: "INFO" # caas api logging level
70
71
# COMMON API
72
caas_common_api_instances: 1 # caas common api instances
73
caas_common_api_port: 3334 # caas common api port
74
caas_common_api_azs: [z6] # caas common api azs
75
caas_common_api_logging_level: "INFO" # caas common api logging level
76
77
# SERVICE BROKER
78
caas_service_broker_instances: 1 # caas service broker instances
79
caas_service_broker_port: 8888 # caas service broker port
80
caas_service_broker_azs: [z6] # caas service broker azs
81
82
# PRIVATE IMAGE REPOSITORY
83
private_image_repository_azs: [z7] # private image repository azs
84
private_image_repository_port: 15001 # private image repository port (e.g. 15001)-- Do Not Use "5000"
85
private_image_repository_root_directory: "/var/vcap/data/private-image-repository" # private image repository root directory
86
private_image_repository_public_url: "<PRIVATE_IMAGE_REPOSITORY_PUBLIC_URL>" # private image repository's public IP
87
private_image_repository_persistent_disk_type: "10GB" # private image repository's persistent disk type
88
89
# ADDON
90
caas_apply_addons_azs: [z5] # caas apply addons azs
91
92
# MASTER
93
caas_master_backend_port: "8443" # caas master backend port (default : 8443)
94
caas_master_port: "8443" # caas master port (default : 8443)
95
caas_master_azs: [z7] # caas master azs
96
caas_master_persistent_disk_type: "50GB" # caas master's persistent disk type
97
98
# WORKER
99
caas_worker_instances: 3 # caas worker node instances (N)
100
caas_worker_azs: [z4,z5,z6] # caas worker node azs
101
102
# JENKINS
103
jenkins_broker_instances: 1 # jenkins broker instances
104
jenkins_broker_port: 8787 # jenkins broker port
105
jenkins_broker_azs: [z6] # jenkins broker azs
106
jenkins_namespace: "paasta-jenkins" # jenkins namespace
107
jenkins_secret_file: "/var/vcap/jobs/container-jenkins-broker/data/docker-secret.yml" # docker file directory for create jenkins's secret
108
jenkins_namespace_file: "/var/vcap/jobs/container-jenkins-broker/data/create-namespace.yml" # docker file directory for create jenkins's namespace
Copied!

2.5. 서비스 설치

  • 서버 환경에 맞추어 Deploy 스크립트 파일의 VARIABLES 설정을 수정한다.
$ vi ~/workspace/paasta-5.0/deployment/service-deployment/container-service/deploy-{IAAS}.sh
1
#!/bin/bash
2
3
# VARIABLES
4
BOSH_NAME="<BOSH_NAME>" # bosh name (e.g. micro-bosh)
5
IAAS="openstack" # IaaS (e.g. aws/azure/gcp/openstack/vsphere)
6
COMMON_VARS_PATH="<COMMON_VARS_FILE_PATH>" # common_vars.yml File Path (e.g. /home/ubuntu/paasta-5.0/common/common_vars.yml)
7
DEPLOYMENT_NAME="container-service" # deployment name
8
9
# DEPLOY
10
bosh -e ${BOSH_NAME} -n -d ${DEPLOYMENT_NAME} deploy --no-redact container-service.yml \
11
-l ${COMMON_VARS_PATH} \
12
-l ${IAAS}-vars.yml \
13
-o operations/paasta-container-service/${IAAS}-network.yml \
14
-o operations/iaas/${IAAS}/cloud-provider.yml \
15
-o operations/rename.yml \
16
-o operations/misc/single-master.yml \
17
-o operations/misc/first-time-deploy.yml \
18
-v deployment_name=${DEPLOYMENT_NAME}
Copied!
  • 서비스 설치 전 remove-all-addons.sh 을 환경에 맞게 수정한 뒤 실행한다.
    1
    $ cd ~/workspace/paasta-5.0/deployment/service-deployment/container-service/operations
    2
    $ vim remove-all-addons.sh
    3
    $ sh ./remove-all-addons.sh
    Copied!
  • 서비스를 설치한다.
    1
    $ cd ~/workspace/paasta-5.0/deployment/service-deployment/container-service
    2
    $ sh ./deploy-{IAAS}.sh
    Copied!

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

1
# 릴리즈 다운로드 파일 위치 경로 생성
2
$ mkdir -p ~/workspace/paasta-5.0/release/service
3
4
# 릴리즈 파일 다운로드(paasta-container-service-projects-release-2.0.tgz) 및 파일 경로 확인
5
$ ls ~/workspace/paasta-5.0/release/service
6
paasta-container-service-projects-release-2.0.1.tgz
Copied!
  • 서버 환경에 맞추어 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
1
#!/bin/bash
2
3
# VARIABLES
4
BOSH_NAME="<BOSH_NAME>" # bosh name (e.g. micro-bosh)
5
IAAS="openstack" # IaaS (e.g. aws/azure/gcp/openstack/vsphere)
6
COMMON_VARS_PATH="<COMMON_VARS_FILE_PATH>" # common_vars.yml File Path (e.g. /home/ubuntu/workspace/paasta-5.0/deployment/common/common_vars.yml)
7
DEPLOYMENT_NAME="container-service" # deployment name
8
9
# DEPLOY
10
bosh -e ${BOSH_NAME} -n -d ${DEPLOYMENT_NAME} deploy --no-redact container-service.yml \
11
-l ${COMMON_VARS_PATH} \
12
-l ${IAAS}-vars.yml \
13
-o operations/use-compiled-releases.yml \
14
-o operations/paasta-container-service/${IAAS}-network.yml \
15
-o operations/iaas/${IAAS}/cloud-provider.yml \
16
-o operations/rename.yml \
17
-o operations/misc/single-master.yml \
18
-o operations/misc/first-time-deploy.yml \
19
-v deployment_name=${DEPLOYMENT_NAME} \
20
-v inception_os_user_name="ubuntu"
Copied!
  • 서비스 설치 전 remove-all-addons.sh 을 환경에 맞게 수정한 뒤 실행한다.
    1
    $ cd ~/workspace/paasta-5.0/deployment/service-deployment/container-service/operations
    2
    $ vim remove-all-addons.sh
    3
    $ sh ./remove-all-addons.sh
    Copied!
  • 서비스를 설치한다.
    1
    $ cd ~/workspace/paasta-5.0/deployment/service-deployment/container-service
    2
    $ sh ./deploy-{IAAS}.sh
    Copied!

2.7. 서비스 설치 확인

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

3. Container 서비스 관리 및 신청

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

3.1. Container 서비스 브로커 등록

Container 서비스팩 배포가 완료되었으면 PaaS-TA 포탈에서 서비스 팩을 사용하기 위해서 먼저 Container 서비스 브로커를 등록해 주어야 한다. 서비스 브로커 등록 시 개방형 클라우드 플랫폼에서 서비스 브로커를 등록할 수 있는 사용자로 로그인이 되어있어야 한다.
  • 서비스 브로커 목록을 확인한다.
1
$ cf service-brokers
2
Getting service brokers as admin...
3
4
name url
5
mysql-service-broker http://10.0.121.71:8080
Copied!
  • Container 서비스 브로커를 등록한다.
$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩 URL}
  • 서비스팩 이름 : 서비스 팩 관리를 위해 개방형 클라우드 플랫폼에서 보여지는 명칭
  • 서비스팩 사용자 ID/비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID/비밀번호
  • 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL
1
$ cf create-service-broker container-service-broker admin cloudfoundry http://xxx.xxx.xxx.xxx:8888
Copied!
  • 등록된 Container 서비스 브로커를 확인한다.
1
$ cf service-brokers
2
Getting service brokers as admin...
3
4
name url
5
container-service-broker http://xxx.xxx.xxx.xxx:8888
6
mysql-service-broker http://10.0.121.71:8080
Copied!
  • 접근 가능한 서비스 목록을 확인한다.
1
$ cf service-access
2
Getting service access as admin...
3
broker: container-service-broker
4
service plan access orgs
5
container-service Advanced all
6
container-service Micro all
7
container-service Small all
8
9
broker: mysql-service-broker
10
service plan access orgs
11
Mysql-DB Mysql-Plan1-10con all
12
Mysql-DB Mysql-Plan2-100con all
Copied!
  • 특정 조직에 해당 서비스 접근 허용을 할당한다.
1
$ cf enable-service-access container-service
2
Enabling access to all plans of service container-service for all orgs as admin...
3
OK
Copied!
  • 접근 가능한 서비스 목록을 확인한다.
1
$ cf service-access
2
Getting service access as admin...
3
broker: container-service-broker
4
service plan access orgs
5
container-service Advanced all
6
container-service Micro all
7
container-service Small all
8
9
broker: mysql-service-broker
10
service plan access orgs
11
Mysql-DB Mysql-Plan1-10con all
12
Mysql-DB Mysql-Plan2-100con all
Copied!

3.2. Container 서비스 UAA Client 등록

UAA 포털 계정 등록 절차에 대한 순서를 확인한다.
  • Container 서비스 대시보드에 접근이 가능한 IP를 알기 위해 haproxy IP 를 확인한다.
1
Deployment 'container-service'
2
3
Instance Process State AZ IPs VM CID VM Type Active Stemcell
4
container-jenkins-broker/129ad9e6-3fb9-48f4-a876-9bd1aeb2793d running z2 10.0.41.135 4a7c6cd6-d338-424d-ab30-66b563c0f0c5 small true -
5
container-service-api/f7902066-0978-4de3-bf2d-e432b0c14199 running z5 10.0.161.127 ab210e7e-af10-476e-8dfa-4d6081fd494c small true -
6
container-service-broker/e193844e-6d47-4477-a73c-b5014d4573e7 running z6 10.0.201.141 e31e74a9-a567-4b38-9e21-b796492f3466 small true -
7
container-service-common-api/b2b5e67b-0a5f-4943-a3da-6e9826a6f8fa running z5 10.0.161.128 03ad70ab-b2c1-4791-b8fb-5903b6b680ba small true -
8
container-service-dashboard/300fead4-4487-4a65-b77c-5e3487818453 running z6 10.0.201.140 fec06a82-df4c-4c00-b8e8-bd646ad4e1cc small true -
9
haproxy/cd60739e-a6b7-436d-9fe9-a515d28629fd running z7 10.0.0.126 b8bad420-e726-41c8-9aae-f7d45c2f2679 small true -
10
101.55.50.201
11
mariadb/9755e6a4-243f-4350-a6d8-517566c6dcbf running z5 10.0.161.126 ef081b0a-7c1a-4854-a695-200d80194db2 small true -
12
master/68782774-455e-43f7-95a4-20d09fa4936c running z7 10.0.0.125 0da12a95-9f2b-4fa7-9079-d4c59b573c3a small-highmem-16GB true -
13
101.55.50.204
14
private-image-repository/1a416603-ced1-4b1c-8090-5f3962309456 running z7 10.0.0.127 895010f1-ae53-457f-bd8d-138a68ca847c small true -
15
101.55.50.202
16
worker/23886843-ab6b-4ae1-a676-89f7307d5b01 running z5 10.0.161.125 e4eaa60c-084c-4384-ab3f-915aca22dc4c small-highmem-16GB true -
17
worker/3c37840f-c743-410e-81c7-f6754afb60f7 running z6 10.0.201.139 7a44994c-b833-4b6c-a6dd-f314d048b171 small-highmem-16GB true -
18
worker/d6ef01d8-d783-40a6-a8f7-b43f8fd4c52f running z4 10.0.121.122 ab557f46-57b7-480c-8826-ce9aac256f9f small-highmem-16GB true -
19
20
12 vms
21
22
Succeeded
Copied!
  • uaac server의 endpoint를 설정한다.
1
# endpoint 설정
2
$ uaac target https://uaa.<DOMAIN> --skip-ssl-validation
3
4
# target 확인
5
$ uaac target
6
Target: https://uaa.<DOMAIN>
7
Context: uaa_admin, from client uaa_admin
Copied!
  • uaac 로그인을 한다.
1
$ uaac token client get <UAA_ADMIN_CLIENT_ID> -s <UAA_ADMIN_CLIENT_SECRET>
2
Successfully fetched token via client credentials grant.
3
Target: https://uaa.<DOMAIN>
4
Context: admin, from client admin
Copied!
  • Container 서비스 계정 생성을 한다.
$ uaac client add caasclient -s {클라이언트 비밀번호} --redirect_uri {컨테이너 서비스 대시보드 URI} --scope {퍼미션 범위} --authorized_grant_types {권한 타입} --authorities={권한 퍼미션} --autoapprove={자동승인권한}
  • : uaac 클라이언트 id
  • : uaac 클라이언트 secret
  • : 성공적으로 리다이렉션 할 Logging 서비스 접근 URI (http://)
  • <퍼미션 범위> : 클라이언트가 사용자를 대신하여 얻을 수있는 허용 범위 목록
  • <권한 타입> : 서비스가 제공하는 API를 사용할 수 있는 권한 목록
  • <권한 퍼미션> : 클라이언트에 부여 된 권한 목록
  • <자동승인권한> : 사용자 승인이 필요하지 않은 권한 목록
1
# e.g. Container 서비스 계정 생성
2
$ uaac client add caasclient -s clientsecret --redirect_uri "http://xxx.xxx.xxx.xxx:8091" --scope "cloud_controller_service_permissions.read , openid , cloud_controller.read , cloud_controller.write , cloud_controller.admin" --authorized_grant_types "authorization_code , client_credentials , refresh_token" --authorities="uaa.resource" --autoapprove="openid , cloud_controller_service_permissions.read"
3
4
# e.g. Container 서비스 계정 생성 확인
5
$ uaac clients
6
caasclient
7
scope: cloud_controller.read cloud_controller.write cloud_controller_service_permissions.read openid cloud_controller.admin
8
resource_ids: none
9
authorized_grant_types: refresh_token client_credentials authorization_code
10
redirect_uri: http://101.55.50.201:8091
11
autoapprove: cloud_controller_service_permissions.read openid
12
authorities: uaa.resource
13
name: caasclient
14
lastmodified: 1592962300888
Copied!

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
1
<br>
2
3
> $ bosh -e micro-bosh -d container-service vms
4
>> haproxy 의 IP 를 찾아 CaaS_Api_Uri 에 입력한다.
Copied!
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
1
Copied!
ex)
  • NAME : PaaS-TA 5.0 (Openstack)
  • Portal_Api_Uri : http://:2225
  • UAA_Uri : https://api.
  • 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
1
Deployment 'container-service'
2
3
Instance Process State AZ IPs VM CID VM Type Active Stemcell
4
container-jenkins-broker/129ad9e6-3fb9-48f4-a876-9bd1aeb2793d running z2 10.0.41.135 4a7c6cd6-d338-424d-ab30-66b563c0f0c5 small true -
5
container-service-api/f7902066-0978-4de3-bf2d-e432b0c14199 running z5 10.0.161.127 ab210e7e-af10-476e-8dfa-4d6081fd494c small true -
6
container-service-broker/e193844e-6d47-4477-a73c-b5014d4573e7 running z6 10.0.201.141 e31e74a9-a567-4b38-9e21-b796492f3466 small true -
7
container-service-common-api/b2b5e67b-0a5f-4943-a3da-6e9826a6f8fa running z5 10.0.161.128 03ad70ab-b2c1-4791-b8fb-5903b6b680ba small true -
8
container-service-dashboard/300fead4-4487-4a65-b77c-5e3487818453 running z6 10.0.201.140 fec06a82-df4c-4c00-b8e8-bd646ad4e1cc small true -
9
haproxy/cd60739e-a6b7-436d-9fe9-a515d28629fd running z7 10.0.0.126 b8bad420-e726-41c8-9aae-f7d45c2f2679 small true -
10
101.55.50.201
11
mariadb/9755e6a4-243f-4350-a6d8-517566c6dcbf running z5 10.0.161.126 ef081b0a-7c1a-4854-a695-200d80194db2 small true -
12
master/68782774-455e-43f7-95a4-20d09fa4936c running z7 10.0.0.125 0da12a95-9f2b-4fa7-9079-d4c59b573c3a small-highmem-16GB true -
13
101.55.50.204
14
private-image-repository/1a416603-ced1-4b1c-8090-5f3962309456 running z7 10.0.0.127 895010f1-ae53-457f-bd8d-138a68ca847c small true -
15
101.55.50.202
16
worker/23886843-ab6b-4ae1-a676-89f7307d5b01 running z5 10.0.161.125 e4eaa60c-084c-4384-ab3f-915aca22dc4c small-highmem-16GB true -
17
worker/3c37840f-c743-410e-81c7-f6754afb60f7 running z6 10.0.201.139 7a44994c-b833-4b6c-a6dd-f314d048b171 small-highmem-16GB true -
18
worker/d6ef01d8-d783-40a6-a8f7-b43f8fd4c52f running z4 10.0.121.122 ab557f46-57b7-480c-8826-ce9aac256f9f small-highmem-16GB true -
19
20
12 vms
Copied!
2) Jenkins 서비스 브로커를 등록한다.
  • 서비스 브로커 목록을 확인한다.
1
$ cf service-brokers
2
Getting service brokers as admin...
3
4
name url
5
delivery-pipeline-service-broker http://xxx.xxx.xxx.xxx:8080
Copied!
  • Jenkins 서비스 브로커를 등록한다.
$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩 URL}
  • 서비스팩 이름 : 서비스 팩 관리를 위해 개방형 클라우드 플랫폼에서 보여지는 명칭
  • 서비스팩 사용자 ID/비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID/비밀번호
  • 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL
1
$ cf create-service-broker jenkins-service-broker admin cloudfoundry http://xxx.xxx.xxx.xxx:8787
Copied!
  • 등록된 Jenkins 서비스 브로커를 확인한다.
1
$ cf service-brokers
2
Getting service brokers as admin...
3
4
name url
5
jenkins-service-broker http://xxx.xxx.xxx.xxx:8787
6
delivery-pipeline-service-broker http://xxx.xxx.xxx.xxx:8080
Copied!
  • 접근 가능한 서비스 목록을 확인한다.
1
$ cf service-access
2
Getting service access as admin...
3
broker: jenkins-service-broker
4
service plan access orgs
5
container-jenkins-service jenkins_20GB limit
6
7
broker: delivery-pipeline-service-broker
8
service plan access orgs
9
delivery-pipeline-v2 delivery-pipeline-shared all
10
delivery-pipeline-v2 delivery-pipeline-dedicated all
Copied!
  • 특정 조직에 해당 서비스 접근 허용을 할당한다.
1
$ cf enable-service-access container-jenkins-service
2
Enabling access to all plans of service container-jenkins-service for all orgs as admin...
3
OK
Copied!
  • 접근 가능한 서비스 목록을 확인한다.
1
$ cf service-access
2
Getting service access as admin...
3
broker: jenkins-service-broker
4
service plan access orgs
5
container-jenkins-service jenkins_20GB all
6
7
broker: delivery-pipeline-service-broker
8
service plan access orgs
9
delivery-pipeline-v2 delivery-pipeline-shared all
10
delivery-pipeline-v2 delivery-pipeline-dedicated all
Copied!

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

쿠버네티스 마스터 노드의 IP가 변경되어 재설치를 하는 경우 해당 IP를 포함한 인증서를 삭제해주어야 신규 인증서가 생성되므로 이 경우 설치 스크립트는 자동으로 인증서를 삭제 후 배포를 진행한다. 만약 CredHub에 로그인이 되어 있지 않으면 아래와 같은 메세지가 나타나며 CredHub 로그인 이후 다시 시도해야 한다.
1
$ ./deploy-vsphere.sh
2
You are not currently authenticated to CredHub. Please log in to continue.
3
$
Copied!
  • CredHub 로그인
    CredHub에 로그인이 되어있지 않은 경우 CredHub 가이드를 참조한다.

5. 서비스 삭제

서비스 삭제 시 CredHub에 로그인이 되어 있는 상태 에서 이하의 script를 실행하여 credHub의 credential 삭제 처리를 진행한다.
1
$ sh operations/remove-service-credentials.sh <BOSH NAME> <DEPLOYMENT NAME>
2
3
e.g.
4
$ sh operations/remove-service-credentials.sh micro-bosh container-service
Copied!
Last modified 8mo ago