27
파스 - 4.0 오픈소스의 만남 ( CF+K8S = PaaS - TA) 2018. 12. 11 파스 - 서비스 기술개발 비디 현재욱 이사

파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

파스-타 4.0 오픈소스의 만남

(CF+K8S = PaaS-TA)

2018. 12. 11

파스-타 서비스 기술개발

비디

현재욱 이사

Page 2: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

1

목차

Ⅱ 2018년 개발 내용

들어가기

Ⅲ 발전 방향

• Why Kubernetes

• PaaS-TA CaaS 통합 전략

• Kubernetes 소개

Page 3: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

2

Cloud Native와 클라우드 App 실행환경의 필요성

Why Kubernetes Ⅰ. 들어가기

12 Factors App DevOps

Scale-Out Antifragility

Cloud Native

가볍고, 수평 확장이 가능하며, 안정적인 클라우드 App 실행환경(플랫폼) 필요

Page 4: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

3

클라우드 App 실행환경 유형과 PaaS-TA의 수용성 증대 방향

Why Kubernetes Ⅰ. 들어가기

추상 수준, 개발 속도유연성, 개발 자유도

Page 5: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

4

PaaS와 CaaS의 비교

PaaS-TA CaaS 통합 전략 Ⅰ. 들어가기

Cloud Foundry vs. Kubernetes

구분 항목 Cloud Foundry Kubernetes

개념 PaaS 유형 Application PaaS Container PaaS(aka CaaS)

개발환경 주 사용자 인터페이스 CLI CLI

IDE 지원 Eclipse Plug-in 제공 Eclipse Plug-in 제공

실행환경

애플리케이션 배포 단위 애플리케이션 빌드 결과물 컨테이너 이미지

배포 전 이미지 저장소 Artifactory(옵션) Docker Registry(필수)

애플리케이션 인스턴스(컨테이너) 생성 주체

플랫폼 내부 빌드팩 개발자 또는 배포파이프라인

컨테이너 오케스트레이터 플랫폼 내부 Diego Kubernetes 자체

지원 컨테이너 유형 Garden Linux Docker/RunC/OCI

라우팅 기반 DNS IP 주소

컨테이너-스토리지 연결 외부 스토리지와 API 연동 컨테이너-스토리지 직접 연결

서비스환경 서비스 카탈로그 연결 개별 백엔드서비스의 서비스브로커를 통한 연결 Helm을 통한 Helm Chart 연결

서비스 프로비저닝/바인딩 방식 Open Service Broker APIs 이용 Open Service Broker APIs 이용

운영환경인프라 구성 주체 플랫폼 내부 Bosh 운영자 또는 IaaS 자동화 도구

모니터링 방식 Metric 제공, 저장 및 가시화는 별도 구현 Metric 제공, 저장 및 가시화는 별도 구현

미터링 프레임워크 CF Abacus Operator Metering

보안 멀티테넌시 지원 Organization/Space, Quota 관리 Namespace(Virtual Cluster), Quota 관리

Page 6: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

5

Kubernetes를 PaaS-TA에 통합하기 위한 방안 검토(1안, 2안)

① Kubernetes 클러스터에 파스-타 배포 ② 파스-타 Diego Container를 Kubernetes로 변경

• 파스-타를 Kubernetes 클러스터 위에 Bosh로 배포 (bosh kubernetes cpi 활용)

• 모든 kubernetes 클러스터에 BOSH 릴리즈를 배포 할 수 있어파스-타 설치가 가능함

• 현재 기업에서 운영중인 Kubernetes 클러스터에 파스-타를바로 설치하고 운영할 수 있음

• 파스-타에서 사용하는 Diego 대신 Kubernetes를 사용하여container를 관리 (OpenShift 아키텍처와 동일)

• Kubernetes로 변경하기 위해서는 CloudFoundry의 많은 양의소스를 수정하고 테스트해야 함

PaaS-TA CaaS 통합 전략 Ⅰ. 들어가기

Page 7: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

6

Kubernetes를 PaaS-TA에 통합하기 위한 방안 검토(3안, 4안)

③ 서비스 형태로 Kubernetes Cluster를 제공 ④ 파스-타 와 Kubernetes를 융합하여 사용

• 파스-타에서 Kubernetes 클러스터를 서비스 형태로 제공

• 개발자 포탈 기반 서비스 프로비저닝을 통한 손쉬운 활용 지원

• 사용자가 요청한 클러스터 구조로 Kubernetes 자체 제공

• 사용자가 요청한 만큼 Kubernetes 환경을 제공하므로 IaaS 자원이 많이 필요

• 파스-타에서 Kubernetes 클러스터를 서비스 형태로 제공

• 클러스터 자동 확장할 수 있게 서비스를 구성하고 Multi tenancy 기능 제공

• 사용자가 개발하는 최종 어플리케이션은 파스-타에 배포

• 어플리케이션에 필요한 백엔드 서비스가 파스-타에 없는 경우docker 이미지를 통해 필요 서비스 구성

• 기존 docker로 개발한 third-party 서비스를 빠르게 런칭

PaaS-TA CaaS 통합 전략 Ⅰ. 들어가기

Page 8: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

7

PaaS-TA CaaS 설계 원칙

■ Kubernetes Virtual Cluster를 서비스 형태로 제공하여 멀티테넌시 구현

■ Bosh를 이용한 통합적이고 일관성 있는 설치/구성과 운영 관리

■ 테넌트별 별도 계정 생성과 롤 기반의 접근권한 제어

■ Kubernetes 전용 대시보드 제공

■ 애플리케이션 Backing Service 용도로 활용 가능

■ kubectl (CLI) 기반의 컨테이너 배포 및 관리

PaaS-TA CaaS 통합 전략

설치와 운영의 용이성, 사용의 편의성을 제공하고, PaaS/CaaS 각 플랫폼들의 장점들이서로의 플랫폼들이 가진 약점들을 상호 보완하도록 설계원칙을 정의

4가지 안 중 3, 4안을 융합한 형태로 통합전략 수립

Ⅰ. 들어가기

Page 9: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

8

Kubernetes의 구조와 주요 특징

Kubernetes 소개 Ⅰ. 들어가기

• 컨테이너화 된 애플리케이션의 배포, 확장 및 관리를 위한 오픈 소스 플랫폼

• 구글 설계 후, 현재 리눅스 재단에서 관리, Go 언어로 작성, Apache License 2.0

• 자동 배치, 자동 재시작, 자동 복제, 자동 확장으로 애플리케이션 상태 확인 및 셀프 복구 수행

• 컨테이너화 된 애플리케이션과 해당 리소스의 즉시 확장 기능 지원, 스토리지 장착으로 스테이트풀 애플리케이션 실행

• 컨테이너를 Pod으로 분류, 컨테이너 급증 등의 문제 해결

• 효과적인 하드웨어 활용으로 리소스 사용 효율 극대화, 엔터프라이즈 애플리케이션 실행에 용이

Page 10: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

9

Pivotal과 RedHat 배포판

Pivotal Container Service RedHat OpenShift

• 오픈 소스 Kubernetes로 구축 (BOSH 로 배포 및 운영하여안정적인 릴리즈와 지속적인 호환성 제공)

• Production-ready (고 가용성 제공 , Built-in health checks, scaling, auto-healing and rolling upgrade)

• Multicloud

• GCP APIs access (GCP Service Broker를 사용하여 Google Cloud API를 엑세스)

• Fully automated Ops (Fully automated deploy, scale, patch, upgrade. No downtime, CD 파이프 라인 제공)

• Bare-Metal, VM(vSphere, Hyper-V, RHEV 등), Public/Private IaaS 제약없이 설치

• OpenVswitch를 통한 자동 Networking 구성

• 관리 및 모니터링을 위한 Web Console, REST API 및 CLI 제공

• AutoScaler를 통한 Docker 컨테이너 자동 확장/축소(Auto-Scaling)

• Router를 통한 자동 부하 분산(Load-Balancing)

• Wildcard entry를 통한 DNS 연계 제공

• JBoss EAP를 통한 WAS 클러스터링(Session Clustering) 기능

Ⅰ. 들어가기Kubernetes 소개

Page 11: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

10

PRANCHER와 IBM 배포판

RANCHER 2.0 IBM ICP

• Unified Cluster Management (여러 Kubernetes 클러스터를중앙에서 관리)

• Modular infrastructure services

• Application Workload Management (통합 경보 , 로그 수집및 CI/CD 파이프라인을 구현)

• An app catalog you’ll actually use (App 관리가 쉽고, 다중Container 클러스터 App에 반복적으로 배포)

• Role based access control

• High availability

• Kubernetes - Cloud Foundry간 Multi-instance의 다이렉트연동

• WebSphere Liberty, DB2 및 MQ 애플리케이션의 컨테이너최적화

• 다중 클라우드 관리 자동화, 보안 스캐닝, 데이터 암호화 및접근 제어

• VMware, Canonical또는 OpenStack을 사용하여 구축 및인프라를 선택

• 대부분의 DevOps 도구를 지원

Ⅰ. 들어가기Kubernetes 소개

Page 12: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

11

목차

Ⅱ 2018년 개발 내용

들어가기

Ⅲ 발전 방향

• 2018년 구현범위

• PaaS-TA CaaS Kubernetes

• 개발 실적

Page 13: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

12

2018년 구현범위 Ⅱ. 2018년 개발 내용

CaaS 기능을 서비스화

Page 14: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

13

CaaS Bosh Release 개발

Ⅱ. 2018년 개발 내용PaaS-TA CaaS Kubernetes

CaaS 서비스를 하기 위한 추가 개발 영역• Service Broker• Dashboard UI• API Servers• Database Server• Loader balancerAPI 및 Dashboard VM 확장 가능

Kubernetes 엔진 영역• Master 노드• Worker 노드• Docker RegistryMaster 및 Worker 노드 확장 가능

Page 15: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

14

Multi Tenant 지원

• CaaS 서비스 생성시 논리적으로 완전히 격리된 공간(Namespace)을 CF의 조직(Organization) 단위에 제공

• CF의 조직(Organization) 단위로 필요시 CaaS 서비스 생성을 요청할 수 있음

• CF의 할당 조직(Organization)에만 접근이 허용되고, 포탈/PaaS/CaaS와 통합 인증

• Namespace 자원 사용 용량(Quota) 설정 가능

Ⅱ. 2018년 개발 내용PaaS-TA CaaS Kubernetes

PaaS-TA

ORG A

ORG B

Kubernetes

Virtual Cluster A

Virtual Cluster B

Page 16: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

15

롤 기반 접근권한 제어

Namespace Resources

Pod

Deployments

ReplicationController

ReplicaSet

StatefulSets

DaemonSet

Services

Volumes

Other resources

Roles

Role A

Role B

RoleBinding

P

RoleBinding

Q

Role C

Role D

Role E

ServiceAccount

X

ServiceAccount

Y

ServiceAccount

Z

Ⅱ. 2018년 개발 내용PaaS-TA CaaS Kubernetes

Page 17: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

16

포털 및 대시보드

Ⅱ. 2018년 개발 내용PaaS-TA CaaS Kubernetes

Page 18: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

17

Kubectl 을 이용한 Container 관리 제공

• 대시보드의 Access 정보로 kubectl 을 이용하기 위한 환경 설정을 함

Ⅱ. 2018년 개발 내용PaaS-TA CaaS Kubernetes

Page 19: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

18

Multi tenancy 개발 - Github URL : https://github.com/PaaS-TA/PAAS-TA-CAAS-API

개발 실적 Ⅱ. 2018년 개발 내용

Page 20: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

19

서비스 브로커 개발 - Github URL : https://github.com/PaaS-TA/PAAS-TA-CAAS-SERVICE-BROKER

개발 실적 Ⅱ. 2018년 개발 내용

Page 21: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

20

Isolation via Resource Control

개발 실적

사용자 대시보드 개발 - Github URL : https://github.com/PaaS-TA/PAAS-TA-CAAS-DASHBOARD

Ⅱ. 2018년 개발 내용

Page 22: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

21

사용자 대시보드 개발 - 사용자 대시 보드 개발 상세 내용

개발 실적

• Overview와 Access 기능으로 구성

• Overview에서 서비스 프로비져닝으로 할당된 Namespace, Plan 및 Resource 할당량 정보 제공

• Access에서 Kubectl을 이용하여 Container를 관리 할 수있도록, Kubectl 다운로드 및 환경 정보를 설정 방법을 제공

Intro

• Users 메뉴에서는 CaaS 서비스 사용자에게 Role을 할당(Administrator Role 유저만 할당 가능), 파스-타 포탈에서초대한 사용자는 대시보드 최초 접근 시 Init User Role로 할당

• Roles 관리에서는 Administrator, Regular User 및 Init User Role에 대해 resource 할당 관리

Users 및 Roles 관리

Ⅱ. 2018년 개발 내용

Page 23: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

22

개발 실적

사용자 대시보드 개발 - 사용자 대시 보드 개발 상세 내용

• Overview는 deployments, Pods, Replica Sets 상태 정보를보여주는 대시보드로 구성

• Deployments는 애플리이션 인스턴스들의 생성 정보와, Event, Yaml 파일 정보를 제공

• Pods는 애플리케이션이 구동되는 Pod 정보를 제공

• Replica Sets은 지정한 개수로 Pod를 여러 개 복제하여유지하는 역할로, Event와 Yaml 파일 정보를 제공

Workloads

• Services는 Pod의 논리적 집합과 액세스 정책을 정의하는추상화된 개념

• Load balancing, 내부 접근을 위한 port 및 외부 접근 가능한nodePort, 서비스 디스커버리를 제공하는 역할로 서비스 상세, Events와 Yaml 파일 정보를 제공

Services

Ⅱ. 2018년 개발 내용

Page 24: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

23

목차

Ⅱ 2018년 개발 내용

들어가기

Ⅲ 발전 방향

• Tool Set

• 편의성 향상

Page 25: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

24

배포 파이프라인 및 애플리케이션 라이프사이클 관리

배포 파이프라인

• 현재파스-타CI/CD 파이프라인의배포타겟으로Cloud Foundry 외 Kubernetes가가능토록구성

• 빌드후애플리케이션을컨테이너화하여레지스트리에저장하는과정추가

• 블루-그린배포지원

• 배포파이프라인을As-a-Service 형태로제공하고파스-타포털과통합인증처리

• 파스-타포털에서별도제공되는GUI 환경

Ⅲ. 발전 방향Tool Set

어플리케이션 라이프사이클 관리

• 오픈소스 Agile 프로젝트관리 SW 솔루션분석및검증

• 서비스브로커개발 (프로비저닝을통한서비스인스턴스생성및해지기능및서비스정보조회등)

• Bosh2.0 기반의서비스릴리즈형태로개발

• 프로비저닝을통해제공되는서비스의통합인증기능개발

Page 26: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

25

웹 콘솔 및 모니터링 시스템

웹 콘솔 모니터링

• 조회위주의현재대시보드를Operation이가능한수준으로고도화

• 컨테이너배포와운영, 파이프라인구성과운영, 모니터링등이가능한통합웹콘솔

• 파스-타포털통합인증처리

• 파스-타포털과동일한 Look & Feel 제공

• Kubernetes메트릭값을수집하여분석하는클러스터상태모니터링

• 기존파스-타모니터링대시보드와통합

• 파스-타포털통합인증처리

Ⅲ. 발전 방향편의성 향상

Page 27: 파스 타 4.0 오픈소스의만남...컨테이너오케스트레이터 플랫폼내부Diego Kubernetes 자체 지원컨테이너유형 Garden Linux Docker/RunC/OCI 라우팅기반

26