Skip to content

Latest commit

 

History

History
653 lines (519 loc) · 27.3 KB

cp-portal-service-guide.md

File metadata and controls

653 lines (519 loc) · 27.3 KB

Index > CP Install > 싱글 클러스터 서비스 형 컨테이너 플랫폼 포털 배포 가이드


Table of Contents

  1. 문서 개요
    1.1. 목적
    1.2. 범위
    1.3. 시스템 구성도
    1.4. 참고 자료

  2. Prerequisite
    2.1. 주요 소프트웨어
    2.2. 방화벽 정보

  3. 컨테이너 플랫폼 포털 배포
    3.1. 컨테이너 플랫폼 포털 배포
    3.1.1. 컨테이너 플랫폼 포털 Deployment 파일 다운로드
    3.1.2. 컨테이너 플랫폼 포털 변수 정의
    3.1.3. 컨테이너 플랫폼 포털 배포 스크립트 실행
    3.1.4. (참고) 컨테이너 플랫폼 포털 리소스 삭제

  4. 컨테이너 플랫폼 포털 사용자 인증 서비스 구성
    4.1. 컨테이너 플랫폼 포털 사용자 인증 구성 Deployment 다운로드
    4.2. 컨테이너 플랫폼 포털 사용자 인증 구성 변수 정의
    4.3. 컨테이너 플랫폼 포털 사용자 인증 구성 스크립트 실행
    4.4. (참고) 컨테이너 플랫폼 포털 사용자 인증 구성 해제

  5. 컨테이너 플랫폼 포털 서비스 브로커
    5.1. 컨테이너 플랫폼 포털 서비스 브로커 등록
    5.2. 컨테이너 플랫폼 포털 서비스 조회 설정
    5.3. 컨테이너 플랫폼 포털 사용 가이드

  6. 컨네이너 플랫폼 포털 참고
    6.1. Kubernetes 리소스 생성 시 주의사항

1. 문서 개요

1.1. 목적

본 문서(싱글 클러스터 서비스 형 컨테이너 플랫폼 포털 배포 가이드)는 쿠버네티스 클러스터를 설치하고 서비스 형 컨테이너 플랫폼 포털 배포 방법을 기술하였다.

1.2. 범위

설치 범위는 쿠버네티스 클러스터 배포를 기준으로 작성하였다.


1.3. 시스템 구성도

시스템 구성은 Kubernetes Cluster(Master, Worker) 환경과 데이터 관리를 위한 스토리지 서버로 구성되어 있다. Kubespray를 통해 설치된 Kubernetes Cluster 환경에 컨테이너 플랫폼 포털 이미지 및 Helm Chart를 관리하는 Harbor, 컨테이너 플랫폼 포털 사용자 인증을 관리하는 Keycloak, 인증 데이터를 관리하는 Vault, 메타 데이터를 관리하는 MariaDB(RDBMS) 등 미들웨어 환경을 컨테이너로 제공한다. 총 필요한 VM 환경으로는 Master VM: 1개, Worker VM: 3개 이상이 필요하고 본 문서는 Kubernetes Cluster에 컨테이너 플랫폼 포털 환경을 배포하는 내용이다.


1.4. 참고 자료

https://kubernetes.io/ko/docs
https://goharbor.io/docs
https://www.keycloak.org/documentation


2. Prerequisite

본 설치 가이드는 Ubuntu 22.04 환경에서 설치하는 것을 기준으로 작성하였다.

2.1. 주요 소프트웨어

주요 소프트웨어 버전
Spring Boot 2.7.3
Gradle 6.9.2
Java 1.8
Vault 1.14.0
Harbor 2.6.0
MariaDB 10.5.15
Keycloak 19.0.0

2.2. 방화벽 정보

IaaS Security Group의 열어줘야할 Port를 설정한다.

  • Master Node
프로토콜 포트 비고
TCP 111 NFS PortMapper
TCP 2049 NFS
TCP 2379-2380 etcd server client API
TCP 6443 Kubernetes API Server
TCP 10250 Kubelet API
TCP 10251 kube-scheduler
TCP 10252 kube-controller-manager
TCP 10255 Read-Only Kubelet API
UDP 4789 Calico networking VXLAN
  • Worker Node
프로토콜 포트 비고
TCP 111 NFS PortMapper
TCP 2049 NFS
TCP 10250 Kubelet API
TCP 10255 Read-Only Kubelet API
TCP 30000-32767 NodePort Services
UDP 4789 Calico networking VXLAN

3. 컨테이너 플랫폼 포털 배포

3.1. 컨테이너 플랫폼 포털 배포

3.1.1. 컨테이너 플랫폼 포털 Deployment 파일 다운로드

컨테이너 플랫폼 포털 배포를 위해 컨테이너 플랫폼 포털 Deployment 파일을 다운로드 받아 아래 경로로 위치시킨다.
💡 해당 내용은 Kubernetes Master Node에서 진행한다.

# Deployment 파일 다운로드 경로 생성
$ mkdir -p ~/workspace/container-platform
$ cd ~/workspace/container-platform

# Deployment 파일 다운로드 및 파일 경로 확인
$ wget --content-disposition https://nextcloud.k-paas.org/index.php/s/2Sy2jzoJRx4aToM/download

$ ls ~/workspace/container-platform
  cp-portal-deployment-v1.5.1.tar.gz

# Deployment 파일 압축 해제
$ tar -xvf cp-portal-deployment-v1.5.1.tar.gz
  • Deployment 파일 디렉토리 구성
cp-portal-deployment
├── script          # 싱글 클러스터 컨테이너 플랫폼 포털 배포 관련 변수 및 스크립트 파일 위치
├── script_mc       # 멀티 클러스터 컨테이너 플랫폼 포털 배포 관련 변수 및 스크립트 파일 위치
├── images          # 컨테이너 플랫폼 포털 이미지 파일 위치
├── charts          # 컨테이너 플랫폼 포털 Helm Charts 파일 위치
├── values_orig     # 컨테이너 플랫폼 포털 Helm Charts values 파일 위치
├── vault_orig      # 컨테이너 플랫폼 포털 인증 데이터 관리를 위한 Vault 배포 파일 위치
├── keycloak_orig   # 컨테이너 플랫폼 포털 사용자 인증 관리를 위한 Keycloak 배포 파일 위치
└── istio_mc        # 서비스 메시 관련 파일 위치 

3.1.2. 컨테이너 플랫폼 포털 변수 정의

컨테이너 플랫폼 포털을 배포하기 전 변수 값 정의가 필요하다. 배포에 필요한 정보를 확인하여 변수를 설정한다.

💡 Keycloak 기본 배포 프로토콜은 HTTP이며 인증서를 통한 HTTPS를 설정하고자 하는 경우 아래 내용을 참조하여 선처리한다.

🔒 Keycloak Ingress TLS 설정 방법

$ cd ~/workspace/container-platform/cp-portal-deployment/script
$ vi cp-portal-vars.sh
# KEYCLOAK (해당 주석 위치로 이동)
KEYCLOAK_URL="https://keycloak.${HOST_DOMAIN}"                 # keycloak url (if apply TLS, https:// )
...
KEYCLOAK_INGRESS_TLS_ENABLED="true"                           # keycloak ingress tls enabled (if apply TLS, true)
KEYCLOAK_TLS_CERT_PATH="/home/ubuntu/tls/tls.crt" (예시)       # keycloak tls cert file path (if apply TLS, cert file path)
KEYCLOAK_TLS_KEY_PATH="/home/ubuntu/tls/tls.key"  (예시)       # keycloak tls key file path (if apply TLS, key file path)

Keycloak 변수 값 변경

  • KEYCLOAK_URL
    http -> https 로 변경

  • KEYCLOAK_INGRESS_TLS_ENABLED
    true로 변경

  • KEYCLOAK_TLS_CERT_PATH
    TLS cert 파일 경로 추가

  • KEYCLOAK_TLS_KEY_PATH
    TLS key 파일 경로 추가


$ cd ~/workspace/container-platform/cp-portal-deployment/script
$ vi cp-portal-vars.sh
# COMMON VARIABLE (Please change the value of the variables below.)
K8S_MASTER_NODE_IP="{k8s master node public ip}"                      # Kubernetes Master Node Public IP
K8S_CLUSTER_API_SERVER="https://${K8S_MASTER_NODE_IP}:6443"           # kubernetes API Server (e.g. https://${K8S_MASTER_NODE_IP}:6443)
K8S_STORAGECLASS="cp-storageclass"                                    # Kubernetes StorageClass Name (e.g. cp-storageclass)
HOST_CLUSTER_IAAS_TYPE="1"                                            # Kubernetes Cluster IaaS Type ([1] AWS, [2] OPENSTACK, [3] NAVER, [4] NHN, [5] KT)
HOST_DOMAIN="{host domain}"                                           # Host Domain (e.g. xx.xxx.xxx.xx.nip.io)
PROVIDER_TYPE="{container platform portal provider type}"             # Container Platform Portal Provider Type (Please enter 'standalone' or 'service')
# Example
K8S_MASTER_NODE_IP="103.xxx.xxx.xxx"
K8S_CLUSTER_API_SERVER="https://${K8S_MASTER_NODE_IP}:6443"
K8S_STORAGECLASS="cp-storageclass"
HOST_CLUSTER_IAAS_TYPE="2"
HOST_DOMAIN="105.xxx.xxx.xxx.nip.io"
PROVIDER_TYPE="service"
변수 설명 상세 내용
K8S_MASTER_NODE_IP Kubernetes Master Node
Public IP 입력
Master Node에 접근하기 어려운 경우
Worker Node Public IP 입력
K8S_CLUSTER_API_SERVER Kubernetes API Server URL 입력 컨테이너 플랫폼을 통해 배포된 클러스터는
기본으로 https://${K8S_MASTER_NODE_IP}:6443이다.
Master Node의 6443번 포트 수신 형식이 아닐 경우 값을 수정한다.
🔹 HA Control Plane 구성일 경우
https://{Load Balancer IP or Domain}:6443 입력
K8S_STORAGECLASS StorageClass 명 입력 컨테이너 플랫폼을 통해 배포된 클러스터는
기본으로 cp-storageclass이다.
다른 StorageClass 사용 시 해당 리소스 명을 입력한다.
HOST_CLUSTER_IAAS_TYPE Kubernetes Cluster IaaS 환경 입력 [1] AWS [2] OPENSTACK [3] NAVER [4] NHN [5] KT 번호 입력
HOST_DOMAIN Host Domain 값 입력 {ingress-nginx-controller 서비스의 EXTERNAL-IP}.nip.io 입력
아래 내용 확인
PROVIDER_TYPE 컨테이너 플랫폼 포털 제공 타입 입력 본 가이드는 포털 서비스 배포 형 설치 가이드로
service 값 입력 필요

조회

# Kubernetes API Server 조회
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://63c4f2d9-xxxx.xxxx.com (입력)

# StorageClass 조회
$ kubectl get storageclass 
NAME                   PROVISIONER
block-storage (입력)   blk.csi...

HOST_DOMAIN

Ingress NGINX Controller 서비스의 EXTERNAL-IP(외부에서 접속 가능 IP)와 무료 wildcard DNS 서비스 nip.io 를 사용

컨테이너 플랫폼 포털은 Kubernetes 리소스 Ingress를 통해 각 서비스를 라우팅하며, 그에 필요한 아래 두 서비스를 클러스터 설치 시 포함한다.

MetalLB (베어메탈 클러스터 환경에서 로드 밸런서 기능 제공)
Ingress NGINX Controller (Kubernetes용 Ingress 컨트롤러)

MetalLB를 통해 할당된 Ingress NGINX Controller 서비스의 EXTERNAL-IP가 외부에서 접속불가인 경우
각 클라우드 서비스에서 해당 IP의 네트워크 인터페이스 생성, 플로팅 IP 연결, 클러스터 노드에 인터페이스 연결 추가 등 작업이 필요하다.

# 'ingress-nginx-controller' 서비스 EXTERNAL-IP 조회 (LoadBalancer 타입)
$ kubectl get svc -n ingress-nginx
NAME                        TYPE           CLUSTER-IP      EXTERNAL-IP            PORT(S)                      AGE
ingress-nginx-controller    LoadBalancer   10.233.49.255   192.168.0.xxx (확인)   80:30465/TCP,443:32226/TCP   26h

# 외부에서 EXTERNAL-IP curl 통신, 연결 불가
$ curl http://192.168.0.xxx
curl: (28) Failed to connect to 192.168.0.xxx port 80

# 클라우드 서비스에서 인터페이스 생성, 플로팅 ip 연결, 클러스터 노드에 인터페이스 연결 추가
192.168.0.xxx -> 105.xxx.xxx.xxx (플로팅 ip)

# 연결된 플로팅 ip로 외부에서 curl 통신, 404 에러 반환 시 정상 
$ curl http://105.xxx.xxx.xxx
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

# 연결된 플로팅 ip의 nip.io로 호스트 도메인 값 입력
HOST_DOMAIN="105.xxx.xxx.xxx.nip.io"

3.1.3. 컨테이너 플랫폼 포털 배포 스크립트 실행

컨테이너 플랫폼 포털 배포를 위한 스크립트를 실행한다.

$ chmod +x deploy-cp-portal.sh
$ ./deploy-cp-portal.sh

컨테이너 플랫폼 포털 관련 리소스가 정상적으로 배포되었는지 확인한다.
리소스 Pod의 경우 Node에 바인딩 및 컨테이너 생성 후 Running 상태로 전환되기까지 몇 초가 소요된다.

  • Vault Pod 조회

$ kubectl get pods -n vault

$ kubectl get pods -n vault
NAME                                       READY   STATUS    RESTARTS   AGE
cp-vault-0                                 1/1     Running   0          17m
cp-vault-agent-injector-5944578cff-sxzvc   1/1     Running   0          17m
  • Harbor Pod 조회

$ kubectl get pods -n harbor

$ kubectl get pods -n harbor
NAME                                       READY   STATUS    RESTARTS   AGE
cp-harbor-chartmuseum-679675fbbc-8pfwk     1/1     Running   0          17m
cp-harbor-core-786dfcdf7c-2vwlk            1/1     Running   0          17m
cp-harbor-database-0                       1/1     Running   0          17m
cp-harbor-jobservice-6c94c7b985-4vggq      1/1     Running   0          17m
cp-harbor-notary-server-6d98997757-gm4kw   1/1     Running   0          17m
cp-harbor-notary-signer-68d755b86b-l5m8j   1/1     Running   0          17m
cp-harbor-portal-8649c6cffc-jnhrp          1/1     Running   0          17m
cp-harbor-redis-0                          1/1     Running   0          17m
cp-harbor-registry-8dbf74bd8-6lbkw         2/2     Running   0          17m
cp-harbor-trivy-0                          1/1     Running   0          17m
  • MariaDB Pod 조회

$ kubectl get pods -n mariadb

$ kubectl get pods -n mariadb
NAME           READY   STATUS    RESTARTS   AGE
cp-mariadb-0   1/1     Running   0          13m
  • Keycloak Pod 조회

$ kubectl get pods -n keycloak

$ kubectl get pods -n keycloak
NAME                           READY   STATUS    RESTARTS   AGE
cp-keycloak-66b7df96f9-2p8xm   1/1     Running   0          13m
cp-keycloak-66b7df96f9-qsks4   1/1     Running   0          13m
  • 컨테이너 플랫폼 포털 Pod 조회

$ kubectl get pods -n cp-portal

$ kubectl get pods -n cp-portal
NAME                                                 READY   STATUS    RESTARTS   AGE
cp-portal-api-deployment-77dbcf48dc-vmbnj            1/1     Running   0          13m
cp-portal-common-api-deployment-5974498dfd-9nwwh     1/1     Running   0          13m
cp-portal-metric-api-deployment-8bc77dbf5-svccj      1/1     Running   0          13m
cp-portal-service-broker-deployment-5c7464c5-nlgrh   1/1     Running   0          13m
cp-portal-terraman-deployment-7756c75b86-qmpbt       1/1     Running   0          13m
cp-portal-ui-deployment-867c6c95c6-49lhg             1/1     Running   0          13m

3.1.4. (참고) 컨테이너 플랫폼 포털 리소스 삭제

배포된 컨테이너 플랫폼 포털 리소스의 삭제를 원하는 경우 아래 스크립트를 실행한다.
📢 (주의) 컨테이너 플랫폼 포털이 운영되는 상태에서 해당 스크립트 실행 시, 운영에 필요한 리소스가 모두 삭제되므로 주의가 필요하다.

컨테이너 플랫폼을 통해 설치된 클러스터의 StorageClass 타입이 NFS인 경우 reclaim 정책은 Retain이다.
Retain정책은 Persistent Volume을 삭제하여도 스토리지 NFS 서버에 데이터가 여전히 존재하므로
수동으로 데이터 정리가 필요하다.

$ cd ~/workspace/container-platform/cp-portal-deployment/script
$ chmod +x uninstall-cp-portal.sh
$ ./uninstall-cp-portal.sh
Are you sure you want to delete the container platform portal? <y/n> y

4. 컨테이너 플랫폼 포털 사용자 인증 서비스 구성

컨테이너 플랫폼 포털 사용자 인증은 Keycloak 서비스를 통해 관리된다. K-PaaS의 애플리케이션 플랫폼 포털 사용자 계정(UAA 서비스)으로 컨테이너 플랫폼 포털 접속을 위해 UAA 서비스를 ID 제공자(Identity Provider)로, Keycloak 서비스를 서비스 제공자(Service Provider)로 구성하는 단계가 필요하다.

4.1. 컨테이너 플랫폼 포털 사용자 인증 구성 Deployment 다운로드

UAA 서비스와 Keycloak 서비스 인증 구성을 위한 Deployment 파일을 다운로드 받아 아래 경로로 위치시킨다.
💡 해당 작업은 애플리케이션 플랫폼이 설치된 BOSH Inception에서 진행한다.

# Deployment 파일 다운로드 경로 생성
$ mkdir -p ~/workspace/container-platform
$ cd ~/workspace/container-platform

# Deployment 파일 다운로드 및 파일 경로 확인
$ wget --content-disposition https://nextcloud.k-paas.org/index.php/s/eeDFTGo6CzpGRNq/download

$ ls ~/workspace/container-platform
  cp-saml-deployment-v1.5.0.tar.gz

# Deployment 파일 압축 해제
$ tar -xvf cp-saml-deployment-v1.5.0.tar.gz

4.2. 컨테이너 플랫폼 포털 사용자 인증 구성 변수 정의

UAA 서비스와 Keycloak 서비스 인증 구성을 위한 변수 값 정의가 필요하다. 구성에 필요한 정보를 확인하여 변수를 설정한다.

$ cd ~/workspace/container-platform/cp-saml-deployment
$ vi cp-saml-vars.sh
# COMMON VARIABLE (Please change the value of the variables below.)
SYSTEM_DOMAIN="xx.xxx.xx.xxx.nip.io"                      # K-PaaS System Domain
UAA_CLIENT_ADMIN_ID="admin"                               # UAA Admin Client ID (e.g. admin)
UAA_CLIENT_ADMIN_SECRET="admin-secret"                    # UAA Admin Client Secret (e.g. admin-secret)
KEYCLOAK_URL="http://keycloak.{HOST_DOMAIN}"              # keycloak url (if apply TLS, https:// )
  • SYSTEM_DOMAIN
    애플리케이션 플랫폼 배포 시 지정했던 K-PaaS System Domain 명 입력

  • UAA_CLIENT_ADMIN_ID
    UAAC Admin Client Admin ID 입력, 기본 값 : admin

  • UAA_CLIENT_ADMIN_SECRET
    UAAC Admin Client에 접근하기 위한 Secret 입력, 기본 값 : admin-secret

  • KEYCLOAK_URL
    컨테이너 플랫폼 포털 Keycloak URL 입력


    # Kubernetes Master Node에서 Keycloak URL 조회
    $ kubectl get cm cp-portal-configmap -n cp-portal -o yaml | grep KEYCLOAK_URI
    KEYCLOAK_URI: http://keycloak.xxx.xxx.xxx.xxx.nip.io

4.3. 컨테이너 플랫폼 포털 사용자 인증 구성 스크립트 실행

UAA 서비스와 Keycloak 서비스 인증 구성을 위한 스크립트를 실행한다.

$ chmod +x create-service-provider.sh
$ ./create-service-provider.sh

구성이 정상적으로 처리되었는지 확인한다. (RESPONSE BODY 내 결과 확인)

  • UAAC Service Providers 조회

$ uaac curl /saml/service-providers --insecure

$ uaac curl /saml/service-providers --insecure
GET https://uaa.xx.xxx.xxx.xx.nip.io/saml/service-providers

200 OK
RESPONSE HEADERS:
  Cache-Control: no-cache, no-store, max-age=0, must-revalidate
  Content-Type: application/json
....   
RESPONSE BODY:
[
  {
    "config": "{\"metaDataLocation\": .... }",
    "id": "c86dd09a-2d47-4005-943d-a4fc717efd0e",
    "entityId": "http://keycloak.xxx.xxx.xxx.xxx.nip.io/auth/realms/cp-realm",
    "name": "cp-saml-sp",
    "version": 0,
    "created": 1651815898042,
    "lastModified": 1651815898042,
    "active": true,
    "identityZoneId": "uaa"
  }
]

4.4. (참고) 컨테이너 플랫폼 포털 사용자 인증 구성 해제

UAA 서비스와 Keycloak 서비스 인증 구성 해제를 원하는 경우 아래 스크립트를 실행한다.
📢 (주의) 컨테이너 플랫폼 포털이 운영되는 상태에서 해당 스크립트 실행 시, 사용자 인증 구성이 불가하므로 주의가 필요하다.

해제할 Service Provider ID 조회

UAAC Service Providers 조회 후 RESPONSE BODY 결과 내 아래 조건을 가진 Service Provider ID를 조회한다.

  • entityId : http://keycloak.{HOST_DOMAIN}/auth/realms/cp-realm
  • name : cp-saml-sp
$ uaac curl /saml/service-providers --insecure

....
RESPONSE BODY:
[
  {
    "config": "{\"metaDataLocation\": .... }",
    "id": "c86dd09a-2d47-4005-943d-a4fc717efd0e",  # 해제할 Service Provider ID
    "entityId": "http://keycloak.xxx.xxx.xxx.xxx.nip.io/auth/realms/cp-realm",
    "name": "cp-saml-sp",
    "version": 0,
    "created": 1651815898042,
    "lastModified": 1651815898042,
    "active": true,
    "identityZoneId": "uaa"
  }
....    
]

해제할 Service Provider ID 조회 후 인증 구성 해제 스크립트를 실행한다.

$ cd ~/workspace/container-platform/cp-saml-deployment
$ chmod +x uninstall-service-provider.sh
$ ./uninstall-service-provider.sh {Service_Provider_ID}
$ ./uninstall-service-provider.sh c86dd09a-2d47-4005-943d-a4fc717efd0e
....  
Are you sure you want to delete this service provider? <y/n> y
DELETE https://uaa.xx.xxx.xxx.xx.nip.io/saml/service-providers/c86dd09a-2d47-4005-943d-a4fc717efd0e

200 OK
....    

5. 컨테이너 플랫폼 포털 서비스 브로커

애플리케이션 플랫폼 K-PaaS 포털과 컨테이너 플랫폼 포털 서비스 연동을 위해서 브로커 등록이 필요하다. K-PaaS 운영자 포털을 통해 서비스를 등록하고 공개하면, K-PaaS 사용자 포털에서 서비스를 신청하여 사용할 수 있다.

5.1. 컨테이너 플랫폼 포털 서비스 브로커 등록

💡 해당 작업은 애플리케이션 플랫폼이 설치된 BOSH Inception에서 진행한다.


📍 컨테이너 플랫폼 포털 서비스 브로커 URL : http://portal.{HOST_DOMAIN}/cpbroker


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

$ cf service-brokers

$ cf service-brokers
Getting service brokers as admin...
No service brokers found
컨테이너 플랫폼 포털 서비스 브로커를 등록한다.

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

서비스팩 이름 : 서비스팩 명칭
서비스팩 사용자 ID/비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID/비밀번호
서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL

컨테이너 플랫폼 포털 서비스 브로커 등록

$ cf create-service-broker cp-portal-service-broker admin cloudfoundry http://portal.{HOST_DOMAIN}/cpbroker

$ cf create-service-broker cp-portal-service-broker admin cloudfoundry http://portal.{HOST_DOMAIN}/cpbroker
Creating service broker cp-portal-service-broker as admin...
OK
등록된 컨테이너 플랫폼 포털 서비스 브로커를 확인한다.

$ cf service-brokers

$ cf service-brokers
Getting service brokers as admin...
name                       url
cp-portal-service-broker   http://portal.{HOST_DOMAIN}/cpbroker
특정 조직에 해당 서비스 접근 허용을 할당한다.
컨테이너 플랫폼 운영자 포털 서비스 접근 허용 할당

$ cf enable-service-access cp-portal-service-broker

$ cf enable-service-access cp-portal-service-broker
Enabling access to all plans of service offering cp-portal-service-broker for all orgs as admin...
OK
접근 가능한 서비스 목록을 확인한다.

$ cf service-access

$ cf service-access
Getting service access as admin...

broker: cp-portal-service-broker
   offering                   plan       access   orgs
   cp-portal-service-broker   Advenced   all

5.2. 컨테이너 플랫폼 포털 서비스 조회 설정

해당 설정은 애플리케이션 플랫폼 K-PaaS 포털에서 컨테이너 플랫폼 포털 서비스를 조회하고 신청할 수 있도록 하기 위한 설정이다.

K-PaaS 운영자 포털에 접속한다.

image 007

메뉴 [운영관리]-[카탈로그] 의 '앱 서비스' 목록 중 'Container Platform Portal 서비스' 를 선택한다.

image 008

'Container Platform Portal 서비스' 상세 정보를 아래와 같이 설정 후 저장한다.

'서비스' 항목 : 'cp-portal-service-broker' 로 선택
'공개' 항목 : 'Y' 로 체크

image 009

K-PaaS 사용자 포털에 접속하여 컨테이너 플랫폼 포털 서비스를 생성한다.

image 010


5.3. 컨테이너 플랫폼 포털 사용 가이드


6. 컨네이너 플랫폼 포털 참고

6.1. Kubernetes 리소스 생성 시 주의사항

컨테이너 플랫폼 이용 중 리소스 생성 시 다음과 같은 prefix를 사용하지 않도록 주의한다.

Resource 명 생성 시 제외해야 할 prefix
전체 Resource kube*
Namespace all
kubernetes-dashboard
cp-portal-temp-namespace
Role cp-init-role
cp-admin-role
ResourceQuota cp-low-resourcequota
cp-medium-resourcequota
cp-high-resourcequota
LimitRanges cp-low-limitrange
cp-medium-limitrange
cp-high-limitrange
Pod nodes
resources

Index > CP Install > 싱글 클러스터 서비스 형 컨테이너 플랫폼 포털 배포 가이드