15
쿠버네티스와의 밀결합 , 파스 - 5.0 2019. 12. 12 플랫폼 개발환경 PL

쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

쿠버네티스와의 밀결합,

파스-타 5.0

2019. 12. 12

플랫폼 개발환경 PL

현 재 욱

Page 2: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

1

목차

Ⅱ 영역별 쿠버네티스 통합

개요

Ⅲ 파스-타 Container Platform 동작 구조

• 영역별 쿠버네티스 통합 개요

• 쿠버네티스 통합 구조

Page 3: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

2

영역별 쿠버네티스 통합 개요 Ⅰ. 개요

Cloud Foundry와 Kubernetes의 영역별 통합을 통한

파스-타에서의 일관된 개발 프로세스 구현

파스-타 4.0 파스-타 5.0

통합설치/운영 통합테넌트 통합대쉬보드

동일한Bosh 분산시스

템관리소프트웨어를이

용한통합설치및구성

파스-타운영/유지보수,

업그레이드시일관된운

영도구의사용

Cloud Foundry 테넌트

(ORG)와일대일매핑되

는쿠버네티스테넌트

(Namespace) 제공

Cloud Foundry UAA 계

정정보와동일한쿠버네

티스서비스어카운트기

반엑세스제어

Cloud Foundry와쿠버

네티스의통합대쉬보드

를사용자포털에서제공

상세정보제공을위한

Cloud Foundry와쿠버

네티스개별대시보드를

사용자포탈에서제공

Cloud Foundry와쿠버

네티스에앱을배포할수

있는통합파이프라인서

비스제공

파이프라인서버를컨테

이너로제공하여유연성

및확장성보장

통합파이프라인

Cloud Foundry와쿠버

네티스앱을Backing

Services와일관성있게

프로비저닝& 바인딩할

수있는오픈서비스브로

커를통한매니지드서비

스제공

통합매니지드서비스

Page 4: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

3

Cloud Foundry

쿠버네티스 통합 구조 Ⅰ. 개요

Bosh

Organization

쿠버네티스 Managed Services

UAANamespace

인증권한관리

테넌트

설치/운영/업그레이드

Open Service Broker

Backing Servies서비스바인딩

배포 파이프라인

CF 파이프라인 K8S 파이프라인

앱 배포

사용자 포털

파이프라인서비스 카탈로그

Container Platform 서비스 카탈로그

서비스 프로비저닝

통합 대시보드

파스-타 Cloud Foundry 대시보드

파스-타 쿠버네티스대시보드

사용현황

운영자포털

조직관리 조직

생성

Page 5: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

4

목차

Ⅱ 영역별 쿠버네티스 통합

개요

Ⅲ 파스-타 Container Platform 동작 구조

• 통합 설치/운영

• 테넌트 통합

• 통합 대쉬보드

• 통합 파이프라인

• 통합 매니지드 서비스

Page 6: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

5

통합 설치/운영 Ⅱ. 영역별 쿠버네티스 통합

운영도구 Bosh를 이용한 패키지 통합 설치/운영

파스-타어드민

Inception

Bosh CLI

Bosh Deployment

DownloadedPackages

Bosh

Releases

Stemcell

ManifestIa

aS

ApplicationPlatform(CF) VMs

ContainerPlatform(K8S) VMs

파스-타 PortalVMs

BackingServices VMs

1 2

3

4

4

5

① Inception 장비 생성, Bosh CLI 및 Bosh Deployment 설치, 설치 대상 파스-타 패키지 다운로드

② Micro Bosh 생성과 Targeting, 설치 대상 Releases와 Stemcell Upload

③ Manifest 파일에 설치 구성

④ Bosh Deploy를 이용한 파스-타 설치

⑤ Upgrade/Update/Patch

Page 7: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

6

파스-타 테넌트 통합

테넌트 통합 Ⅱ. 영역별 쿠버네티스 통합

• 파스-타 사용조직(테넌트)에는 논리적인 구분 단위를 제공하여 독자적인 사용이 가능

• 논리적 구분 단위는 파스-타 CF 관점에서는 Organization이고 파스-타 쿠버네티스 관점에서는 네임스페이스

• 배포 파이프라인은 테넌트 단위로 서비스 제공

• 통합 포털은 전체 공통 서비스이나 계정의 권한에 의해 사실상 테넌트로 구분하여 사용

파스-타

통합 포털

테넌트1 테넌트2 테넌트N

CF ORG K8S N/S

배포 파이프라인

CF ORG K8S N/S

배포 파이프라인

CF ORG K8S N/S

배포 파이프라인

Page 8: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

7

Cloud Foundry와 쿠버네티스 통합 대시보드

통합 대쉬보드 Ⅱ. 영역별 쿠버네티스 통합

TEST-POD

인스턴스 : 3CPU : 10메모리 : 1280MB상태 : STAGED ●

DiskMemory

50%50%

POP-Dev

+

DiskMemory

50%50%

인스턴스 : 2CPU : 2메모리 : 512MB상태 : STAGED ●

CloudFoudry Container Service

서비스애플리케이션 Deployments Pods Replica Sets

5Apps Started

1Apps Stopped

3Services

7Instances

3G/10GMemory

10G/20GStorage

5Pods

5Deployments

2Replica Sets

2Services

5GMemory

40GStorage

3 4

2

1

CF

K8S

5

Logo Area 대시보드 카탈로그 문서 1. Space 기준 CF 환경에 대한사용량 / 할당량 등의 정보 제공

2. 테넌트 기준 Container Service 환경에 대한 사용량 / 할당량 등의 정보 제공

3. CF – 어플리케이션 및 서비스 현황을 타일 형태로 조회

4. K8S – Deployment, Pod, Replica Set 현황을 목록으로조회(AS-IS CaaS화면- 상세 클릭시 CaaS 팝업

5. 메모리/디스크- CF : 할당량, 사용량 표시- CS : 할당량 표시

PaaS-TA

PaaS-TA

Page 9: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

8

파스-타 배포 타겟을 지원하는 통합 파이프라인

통합 파이프라인 Ⅱ. 영역별 쿠버네티스 통합

파스-타개발자

개발자 PC

IDE

WAS

DBMS

etc

개발자 Portal

배포파이프라인

서비스카탈로그

1

형상관리서버

Pipeline Server

PipelineConsole

Build

Test

Deploy

배포타겟설정

서비스

설정

Cloud Foundry

쿠버네티스

App Instances

App Instances

2

3

4

5

6

7 컨테이너레지스트리

• Cloud Foundry와 쿠버네티스에 배포 가능한 배포 파이프라인 서비스 제공

• 파이프라인 콘솔을 통합 포털에서 제공하여 개발팀 요건에 따른 설정 가능

Page 10: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

9

Cloud Foundry와 쿠버네티스 앱의 일관성 있는 Backing Service 연결을 위한 통합 매니지드 서비스

통합 매니지드 서비스 Ⅱ. 영역별 쿠버네티스 통합

쿠버네티스

Cloud Foundry

App Instances

App Instances

Open Service Broker Managed Services

Backing Service A

Backing Service B

1

Cluster Service Broker

CF Service Broker

Catalog API

Provision API

Bind API

Unbind API

Deprovision API

Update Service API

1

① Open Service Broker를 Cloud Foundry와 쿠버네티스에 등록(CF CLI & Kubectl CLI 사용)

② App에서 사용하는 Backing Service에 대한 프로비저닝 요청

③ 프로비저닝으로 생성된 서비스 인스턴스와 App의 바인딩 요청

④ App과 서비스 인스턴스 바인딩

Service Instance

Service Instance

2 2

3 3

4

4

Page 11: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

10

목차

Ⅱ 영역별 쿠버네티스 통합

개요

Ⅲ 파스-타 Container Platform 동작 구조

• 서비스 프로비저닝 구조

• App 배포 구조

• 배포 파이프라인 구조

Page 12: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

11

파스-타 Container Platform 서비스 프로비저닝 구조

Ⅲ. 파스-타 Container Platform 동작 구조서비스 프로비저닝 구조

Application Platform

Organization

UAA

파스-타운영자

운영자 Portal

조직관리

파스-타개발자

개발자 Portal

Container Platform 서비스

카탈로그

Space

Space

1

Container Platform

쿠버네티스

Container Platform DB

Namespace

Namespace

2

3

4

쿠버네티스Dashboard

5

6① 파스-타 신규 조직 생성

② 신규 조직 조직관리자(개발자) 계정 할당

③ Container Platform 서비스 프로비저닝

요청

④ 쿠버네티스 신규 Namespace 생성

⑤ Container Platform 서비스 신청자 계정

정보 조회

⑥ 조회한 계정정보로 Service Account 생성

통합 Portal

Page 13: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

12

파이프라인을 통한 App 배포 구조

App 배포 구조

Build Test App Deploy

형상관리서버

프로그램저장소

Cloud Foundry

Build Test DockerizeContainer

Deploy

쿠버네티스

ContainerRegistry

① Build: 형상관리 서버로부터 소스코드를 가져와 프로그램 빌드 수행② Test: 테스트 프레임워크 기반 단위/통합 테스트를 수행하고 성공 시 Cloud Foundry의 경우 프로그램 저장소

(Artifactory)에 결과물 저장③ Dockerize: 프로그램 빌드 결과물을 포함한 컨테이너 이미지를 생성하여 컨테이너 레지스트리에 Push④ App Deploy: 프로그램 저장소로부터 결과물을 읽어와 Cloud Foundry Target으로 Deploy⑤ Container Deploy: 컨테이너 레지스트리로부터 결과물을 읽어와 쿠버네티스 Target으로 Deploy

Cloud Foundry 배포용 파이프라인

쿠버네티스 배포용 파이프라인

1

1 2

2

3

4

5

App Instances

App Instances

Jenkins Server

Ⅲ. 파스-타 Container Platform 동작 구조

Page 14: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

13

배포 파이프라인 구조

파스-타 배포 파이프라인 프로비저닝 및 동작 구조

개발자 Portal

배포파이프라인서비스

카탈로그

PipelineConsole

파스-타개발자

Container Platform

쿠버네티스

Container Registry

Pipeline Namespace

JenkinsBase Image

JenkinsMaster Jenkins Slaves동적

확장

1

2

3

4

5

6

① 배포 파이프라인 서비스 프로비저닝 요청

② 배포 파이프라인 서비스 전용 Jenkins 베이스 이미지 Getting

③ Jenkins 베이스 이미지로 쿠버네티스의 파이프라인 네임스페이스로 Jenkins 서버 배포

④ Pipeline 콘솔에서 Jenkins 서버 접속 URL과 계정 정보 확인

⑤ Jenkins 서버로 접속하여 파이프라인 설정 작업 진행

⑥ 파이프라인 실행 시 빌드 Job은 필요에 따라 Slave 에이전트들을 동적으로 생성하여 실행

Ⅲ. 파스-타 Container Platform 동작 구조

Page 15: 쿠버네티스와의밀결 파스 타 5 · 2019-12-13 · (Artifactory)에결과물저장 ③ Dockerize: 프로그램빌드결과물을포한 컨테이너이미지를생성하여컨테이너레지스트리에Push

14