Community

Knative

Kubernetes 기반에서 서버리스 애플리케이션을 쉽게 구축, 배포, 실행할 수 있도록 도와주는 오픈소스 플랫폼입니다.

Knative란?

Knative는 Kubernetes 기반의 오픈소스 플랫폼으로, 서버리스 애플리케이션 및 컨테이너 기반 워크로드를 쉽게 구축, 배포, 실행할 수 있도록 지원합니다. 특히 이벤트 기반 애플리케이션과 마이크로서비스 아키텍처를 지원하며, 자동 스케일링, 이벤트 관리, 간편한 배포 기능 등을 제공합니다.

Knative는 Apache License 2.0에 따라 배포되는 오픈소스 소프트웨어입니다.

Tekton Pipelines

Knative 구성 요소

Serving

  • 서버리스 애플리케이션을 배포하고, 버전 관리 및 트래픽 라우팅을 지원하며 자동 스케일링을 제공합니다.

Eventing

  • 이벤트 기반 애플리케이션 설계를 위한 표준화된 이벤트 전달 메커니즘을 제공합니다.

Autoscaler

  • 트래픽 변화에 따라 자동으로 리소스를 확장하거나 축소하는 기능을 제공합니다.

CLI (Command Line Interface)

  • Knative 리소스를 관리하고 배포를 간편하게 수행하기 위한 명령줄 도구를 제공합니다.

Build

  • 컨테이너 이미지를 생성하고 애플리케이션 배포를 자동화하는 데 필요한 기능을 제공합니다.

Custom Resource Definitions (CRDs)

  • Kubernetes에서 Knative 기능을 통합적으로 관리할 수 있도록 정의된 리소스입니다.

Knative 블로그

더보기 »

Knative 리소스

더보기 »

Knative 쉽게 이해하기

Knative클라우드 네이티브 애플리케이션을 쉽게 만들고 관리할 수 있도록 도와주는 서버리스 플랫폼입니다. 쉽게 말해, 개발자가 복잡한 인프라를 신경 쓰지 않고 애플리케이션 개발에만 집중할 수 있도록 지원하는 도구입니다.

Knative는 클라우드 환경에서 유연한 배포와 자동 확장을 가능하게 만들어주는 스마트한 서버리스 플랫폼입니다!

Knative 시작과 배경

Tekton Pipelines는 2018년 Google이 주도하여 처음 개발한 오픈소스 프로젝트입니다. 이후 Cloud Native Computing Foundation (CNCF)의 프로젝트로 채택되어, 현재는 오픈소스 커뮤니티와 여러 기업이 협력하여 발전시키고 있습니다. Tekton Pipelines의 개발 목적은 Kubernetes 네이티브 CI/CD 시스템을 제공하여 현대 소프트웨어 개발에서 CI/CD 워크플로를 간소화하고, 클라우드 네이티브 환경에 최적화된 CI/CD를 구현하는 데 있습니다.

Knative 시작

Knative 배경

Knative 주요 특징

Knative는 Kubernetes 환경에서 서버리스 애플리케이션과 이벤트 기반 아키텍처를 손쉽게 구축할 수 있도록 설계된 도구로, 유연한 확장성과 효율적인 리소스 사용을 지원합니다. 이를 통해 개발자와 운영자는 복잡한 인프라 관리의 부담을 줄이고, 애플리케이션 개발과 배포에 더욱 집중할 수 있습니다.

특징 설명 이점
자동 스케일링  트래픽 변화에 따라 워크로드의 인스턴스 수를 자동으로 조정합니다 리소스 사용을 최적화하고, 비용을 절감하며, 트래픽 급증에도 안정적으로 대응 가능
서버리스 이벤트 처리 CloudEvents 표준을 지원하여 다양한 이벤트 소스를 연결하고 처리합니다 다양한 환경에서 이벤트 기반 아키텍처를 쉽게 구현 가능
트래픽 분배 및 버전 관리 리비전 기반 트래픽 분배를 통해 새로운 버전을 점진적으로 배포하거나 롤백할 수 있습니다 안전한 애플리케이션 배포 및 신뢰성 높은 업데이트 가능
멀티 클라우드 지원 특정 클라우드 플랫폼에 종속되지 않으며, Kubernetes가 지원되는 어디서나 실행 가능 멀티 클라우드 및 하이브리드 클라우드 환경에서 유연하게 활용 가능
개발자 친화적 설계 복잡한 Kubernetes 설정 없이 서버리스 애플리케이션을 쉽게 배포할 수 있도록 설계 개발자가 애플리케이션 개발에만 집중할 수 있어 생산성 향상
웹 애플리케이션 지원 HTTP 기반 웹 애플리케이션을 손쉽게 배포하고 관리할 수 있도록 설계 웹 서비스 운영의 복잡성을 줄이고 빠른 배포 가능
확장성 높은 아키텍처 Kubernetes 기반으로 설계되어 대규모 애플리케이션 배포와 관리에 적합 애플리케이션이 성장하면서 요구되는 확장성을 쉽게 충족 가능
CI/CD 통합 Tekton과 같은 CI/CD 도구와 원활하게 통합하여 지속적인 배포 가능 자동화된 배포로 개발 주기를 단축하고, 효율적 운영 가능
플러그인 및 커스터마이징 지원 플러그인을 통해 추가 기능을 쉽게 확장 가능하며, 요구에 맞게 설정 커스터마이징 가능 사용자 요구 사항에 맞춘 유연한 애플리케이션 구성 가능
컨테이너 기반 애플리케이션 지원 컨테이너화된 애플리케이션을 손쉽게 배포하고 서버리스 방식으로 실행 가능 기존 컨테이너 워크로드를 서버리스 환경으로 마이그레이션 가능

Knative 경쟁 제품

Knative는 다양한 서버리스 및 컨테이너 기반 경쟁 제품과 비교했을 때 Kubernetes와의 긴밀한 통합과 풍부한 기능으로 두각을 나타냅니다. 그러나 각 제품은 특정 환경과 요구 사항에 따라 더 적합할 수 있으므로, 프로젝트 목표에 맞는 솔루션을 선택하는 것이 중요합니다.

제품명 주요 기능 장점 단점 주요 사용 사례
OpenFaaS 함수 기반 애플리케이션의 손쉬운 배포와 관리, Docker 이미지 사용 지원 간단한 배포 프로세스와 다양한 언어 지원, Kubernetes 및 Docker Swarm과의 통합 복잡한 워크플로우에 적합하지 않음, 대규모 트래픽 처리에 한계 소규모 애플리케이션 배포 및 관리
AWS Lambda 이벤트 기반 서버리스 컴퓨팅 제공, AWS 클라우드 서비스와의 긴밀한 통합 AWS 서비스와의 원활한 통합, 다양한 트리거 이벤트와 높은 확장성 제공 AWS 클라우드에 종속적, 요금 체계가 복잡하고 장기 사용 시 비용 증가 서버리스 애플리케이션 개발, 클라우드 기반 워크로드 처리
Google Cloud Functions 이벤트 기반 서버리스 컴퓨팅, Google Cloud 서비스와의 통합 제공 빠른 실행 시간과 Google Cloud 생태계와의 강력한 통합 Google Cloud 서비스에 종속적, 복잡한 프로그래밍 모델의 이식성이 낮음 클라우드 이벤트 처리 및 서버리스 애플리케이션 개발
Azure Functions 다양한 언어와 트리거 지원, Azure 클라우드 생태계와의 통합 지원 Microsoft Azure와의 강력한 통합, 비용 효율적이고 간단한 배포 프로세스 제공 Azure 클라우드 환경에 의존적, 특정 시나리오에서 성능 문제가 발생할 수 있음 대규모 애플리케이션 배포, IoT 데이터 처리
Kubeless Kubernetes 네이티브 서버리스 프레임워크, 이벤트 기반 함수 실행 지원 Kubernetes와의 완벽한 통합, 서버리스 애플리케이션의 간소화된 배포 프로세스 커뮤니티 지원 부족, Knative에 비해 성숙도가 낮음 Kubernetes 환경에서 서버리스 워크로드 실행
Apache OpenWhisk 이벤트 기반 서버리스 플랫폼, 다양한 프로그래밍 언어와 이벤트 소스 지원 오픈소스 기반으로 확장 가능, 다양한 클라우드 및 온프레미스 배포 옵션 제공 설정과 관리가 복잡하며, Kubernetes 통합 성능이 부족 분산 애플리케이션 관리, 이벤트 기반 컴퓨팅 처리
Red Hat OpenShift Serverless Knative 기반 서버리스 워크로드 실행 지원 엔터프라이즈 환경에서 안정성과 추가적인 DevOps 도구 제공 OpenShift 라이선스 필요, 높은 초기 도입 비용 엔터프라이즈 서버리스 애플리케이션 개발
IBM Cloud Code Engine IBM Cloud에서 서비스와 컨테이너 워크로드 통합 관리 제공 컨테이너 및 서비스 워크로드 통합, IBM 클라우드 생태계와의 원활한 연동 IBM 클라우드 환경에 종속적, 클라우드 전환 시 이식성 제한 데이터 집약적인 클라우드 애플리케이션 배포
AWS App Runner AWS에서 컨테이너 및 애플리케이션의 간편한 배포와 확장 지원 AWS 클라우드와의 원활한 통합, 자동 확장 및 빠른 배포 프로세스 제공 AWS 클라우드 종속성과 높은 비용, 특정 워크로드에 대한 커스터마이징 제한 클라우드 기반 웹 및 백엔드 애플리케이션 배포

Knative 레퍼런스

Red Hat
IBM

Google

VMware

LG전자

KT

네이버

카카오