Post on 26-Mar-2020
쿠버네티스와의 밀결합,
파스-타 5.0
2019. 12. 12
플랫폼 개발환경 PL
현 재 욱
1
목차
Ⅰ
Ⅱ 영역별 쿠버네티스 통합
개요
Ⅲ 파스-타 Container Platform 동작 구조
• 영역별 쿠버네티스 통합 개요
• 쿠버네티스 통합 구조
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와일관성있게
프로비저닝& 바인딩할
수있는오픈서비스브로
커를통한매니지드서비
스제공
통합매니지드서비스
3
Cloud Foundry
쿠버네티스 통합 구조 Ⅰ. 개요
Bosh
Organization
쿠버네티스 Managed Services
UAANamespace
인증권한관리
테넌트
설치/운영/업그레이드
Open Service Broker
Backing Servies서비스바인딩
배포 파이프라인
CF 파이프라인 K8S 파이프라인
앱 배포
사용자 포털
파이프라인서비스 카탈로그
Container Platform 서비스 카탈로그
서비스 프로비저닝
통합 대시보드
파스-타 Cloud Foundry 대시보드
파스-타 쿠버네티스대시보드
사용현황
운영자포털
조직관리 조직
생성
4
목차
Ⅰ
Ⅱ 영역별 쿠버네티스 통합
개요
Ⅲ 파스-타 Container Platform 동작 구조
• 통합 설치/운영
• 테넌트 통합
• 통합 대쉬보드
• 통합 파이프라인
• 통합 매니지드 서비스
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
6
파스-타 테넌트 통합
테넌트 통합 Ⅱ. 영역별 쿠버네티스 통합
• 파스-타 사용조직(테넌트)에는 논리적인 구분 단위를 제공하여 독자적인 사용이 가능
• 논리적 구분 단위는 파스-타 CF 관점에서는 Organization이고 파스-타 쿠버네티스 관점에서는 네임스페이스
• 배포 파이프라인은 테넌트 단위로 서비스 제공
• 통합 포털은 전체 공통 서비스이나 계정의 권한에 의해 사실상 테넌트로 구분하여 사용
파스-타
통합 포털
테넌트1 테넌트2 테넌트N
CF ORG K8S N/S
배포 파이프라인
CF ORG K8S N/S
배포 파이프라인
CF ORG K8S N/S
배포 파이프라인
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
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와 쿠버네티스에 배포 가능한 배포 파이프라인 서비스 제공
• 파이프라인 콘솔을 통합 포털에서 제공하여 개발팀 요건에 따른 설정 가능
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
10
목차
Ⅰ
Ⅱ 영역별 쿠버네티스 통합
개요
Ⅲ 파스-타 Container Platform 동작 구조
• 서비스 프로비저닝 구조
• App 배포 구조
• 배포 파이프라인 구조
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
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 동작 구조
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 동작 구조
14