K-PaaS 로고

  • github
    K-PaaS github
    수백만명의 개발자가 Github을 사용하여 개인 프로젝트를 구축하고 비즈니스를 지원하며 오픈 소스 기술을 함께 사용합니다.
  • K-PaaS incubator
    K-PaaS Incubator
    기업들이 K-PaaS를 활용할 수 있도록 지원 하고 있습니다.
  • cloudfoundry
    Cloud Foundry
    Cloud Foundry는 기업이 애플리케이션을 쉽고 빠르게 개발하고 배포하는데 필요한 속도, 단순성 및 제어 기능을 제공합니다.
  • youtube
    Youtube
    개방형 클라우드 플랫폼 K-PaaS 관련 동영상을 지원하고 있습니다.
닫기
  1. K-PaaS 소개
  2. 아키텍처
  3. 컨테이너 플랫폼
  4. v1.4.0 서비스형 배포

컨테이너 플랫폼 - v1.4.0 서비스형 배포

개방형 클라우드 플랫폼 K-PaaS의 컨테이너 플랫폼 구성도 입니다.

아키텍처

클러스터는 기본 1개의 MasterNode와 n개의 WorkerNode로 구성된다. 구성된 클러스터에는 영구한 볼륨으로 사용할 수 있는 Storage Class에 의해 외부 스토리지가 추가로 연결된다. 컨테이너플랫폼을 구성하는 요소는 클러스터내의 논리적인 그룹인 namespace로 구분하여 Pod로 배포된다. 인증에 필요한 KeyCloak, 머신 러닝 워크플로우를 배포할 수 있는 MI-pipeline을 포함한 Kubeflow, 기밀성이 요구되는 데이터를 저장하는 Vault, 데이터 저장을 위한 Database, Chartmuseum, Core, Portal, JobService, Nginx, Database, Redis 등을 포함한 이미지 및 차트 저장소인 Harbor, 클러스터를 관리할수 있는 구성요소로 Portal-API, Common-API, Web-UI, Terraman, Metrics-API, Portal-Broker를 포함한 Portal,  DevOps를 위한 서비스인 Pipeline-API, Common-API, Web-Pipeline, Inspection-API, Pipeline-Broker, Inspection-Svr, CI-Server, Config-Server, PostgresSQL을 포함한 Pipeline,  DevOps를 위한 서비스인 SC-API, Web-SC, SC-Broker, SCM-Server를 포함한 Source Control로 구성된다. 포탈서비스 및 DevOps서비스에는 서비스 브로커(Portal-Broker, Pipeline-Broker, SC-Broker)가 포함되어 K-PaaS 포탈과 연동되어 동작되도록 구성된다.

구성 요소의 기능 및 역할

쿠버네티스 환경 (Control Plane, Worker Node)
  • 1 kube-apiserver
    쿠버네티스 API를 노출하는 쿠버네티스 컨트롤 플레인 컴포넌트이다.
  • 2 kube-controller-manager
    컨트롤러를 구동하는 마스터 상의 컴포넌트이다.
  • 3 kube-scheduler
    노드가 배정되지 않은 새로 생성된 Pod를 감지하고, 실행할 노드를 선택하는 컨트롤 플레인 컴포넌트이다.
  • 4 etcd
    모든 클러스터 데이터를 담는 쿠버네티스 저장소로 사용되는 고가용성 키-값 저장소이다.
  • 5 kubelet
    클러스터의 각 노드에서 실행되는 에이전트로 Pod에서 컨테이너가 정확하게 동작하도록 관리한다
  • 6 cAdvisor
    쿠버네티스에서 사용하는 기본적인 모니터링 에이전트로 모든 노드에 설치되어 노드에 대한 정보와 Pod에 대한 지표를 수집한다.
  • 7 kube-proxy
    클러스터의 각 노드에서 실행되는 네트워크 프록시이다. 기본적으로 IPVS 모드로 설정되어 있다.
  • 8 Pod
    쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다.
컨테이너플랫폼 어플리케이션
  • 1 Portal-API
    컨테이너플랫폼에서 필요한 REST API를 제공한다.
  • 2 Common-API
    컨테이너플랫폼의 DBMS 메타 데이터 제어에 필요한 REST API를 제공한다.
  • 3 Portal-UI
    컨테이너 플랫폼 포탈은 웹 인터페이스를 통해 컨테이너 플랫폼을 사용할 수 있도록 하는 웹 어플리케이션이다.
  • 4 Portal-Broker
    Portal-UI를 K-PaaS에서 서비스로 등록하여 사용할 수 있게 해주는 Broker이다.
  • 5 Harbor
    Docker 이미지 및 helm Chart를 저장할 수 있는 저장소 이다.
  • 6 NFS-provisioner
    NFS Volume을 자동으로 binding하도록 지원하는 역할을 한다.
  • 7 Mariadb
    컨테이너플랫폼 관련 메타 데이터를 관리하는 MariaDB DBMS 이다.
  • 8 Keycloak
    컨테이너플랫폼 서비스간 SSO를 위한 인증기능을 담당한다.
  • 9 Terraman
    멀티 클러스터 배포 및 관리 기능을 사용할 수 있도록 하는 어플리케이션이다.
  • 10 Metric-API
    클러스터, 노드의 상태를 체크하는데 필요한 REST-API를 제공한다.
  • 11 Ingress-nginx-controller
    인그레스 리소스가 작동하기 위한 Nginx 기반 인그레스 컨트롤러이다.
  • 12 Istio
    컨테이너의 연결, 모니터링 및 보안을 클러스터에서 실행하는 구성 가능한 서비스 메시이다.
  • 13 Kubeflow
    머신러닝 워크플로를 쉽게 배포할 수 있게 해주는 툴킷이다.
  • 14 Vault
    컨테이너플랫폼의 Secret 정보를 안전하게 저장하고 관리한다.
  • 15 Rook
    Ceph 스토리지를 Pod 형태로 구성한다.

배포 흐름도

클러스터는 기본 1개의 MasterNode와 n개의 WorkerNode로 구성된다. 
					구성된 클러스터에는 영구한 볼륨으로 사용할 수 있는 외부 스토리지가 추가로 연결된다.
					컨테이너플랫폼을 구성하는 요소는 클러스터내의 논리적인 그룹인 namespace로 구분하여 Pod로 배포된다.
					인증에 필요한 KeyCloak, 볼륨 프로비져닝을 위한 NFS-Provisioner, 데이터 저장을 위한 MariaDB, 이미지 및 차트 저장소인 Harbor, 클러스터를 관리할수 있는 포탈로 구성된다.

오픈소스 목록

오픈소스 목록
서비스 그룹 서비스 명 오픈소스 명 라이선스 비고
Container
Platform
- kubernetes Apache 2.0  
kubespray Apache 2.0  
harbor Apache 2.0  
mariadb GPL v2  
keycloak Apache 2.0  
terraform MLP 2.0  
ingress-nginx-controller Apache 2.0  
istio Apache 2.0  
kubeflow Apache 2.0  
vault MLP 2.0  
rook Apache 2.0  
대화