메인 콘텐츠로 건너뛰기
블로그컨테이너(Kubernetes, Docker)Knative로 서버리스 Kubernetes 애플리케이션 관리하기

Knative로 서버리스 쿠버네티스 애플리케이션 관리하기

Knative 블로그 이미지로 서버리스 쿠버네티스 애플리케이션 관리하기

서버리스 아키텍처는 간단히 말해 개발자가 서버를 관리할 필요가 없습니다. 서버는 여전히 백그라운드에서 실행되지만 인프라 유지 관리 및 확장에 대한 부담은 클라우드 제공업체로 이전됩니다. 개발자는 특정 기능으로 코드를 대폭 간소화할 수 있으며, 일반적으로 기능이 실행될 때만 리소스에 대한 비용을 지불하는 '온디맨드' 비용 모델을 활용할 수 있습니다.

함수는 API 엔드포인트가 이벤트를 트리거할 때 실행되며, 이를 통해 예측할 수 없거나 급변하는 상태를 가진 애플리케이션이 기본 애플리케이션에서 추상화된 함수를 사용하여 수평적으로 확장할 수 있습니다. 실제로 구매자가 이커머스 사이트에서 제품을 선택하면 해당 제품의 재고가 있는지 데이터베이스를 확인하고 가장 최신 가격 정보를 가져오도록 설계된 함수가 트리거될 수 있습니다.

Knative는 서버리스 애플리케이션을 관리하기 위해 Kubernetes를 기반으로 구축된 강력한 기능 도구 세트입니다. Knative를 사용하면 Kubernetes 클러스터에서 파드를 0으로 확장하는 동시에 필요할 때 파드를 확장할 수 있도록 리소스를 계속 사용할 수 있습니다.

Knative는 애플리케이션의 응답 방식을 제어하도록 사용자 정의할 수 있는 이벤트와 트리거를 지원합니다. 이 도구는 벤더 중립적인 휴대용 도구이므로 선호하는 관리형 Kubernetes 서비스(예: 자체 Linode Kubernetes 엔진)와 함께 사용하거나 로컬 클러스터에 설치할 수 있습니다. Kubernetes와 이 설치형 함수 플랫폼을 함께 사용하면 Kubernetes에서 애플리케이션을 실행할 때 얻을 수 있는 상태 관리 및 자가 복구 이점을 최적화할 수 있습니다.

Knative가 제공합니다:

  • 자동 확장: Knative는 트래픽과 수요에 따라 파드를 자동으로 확장하며, 0으로 확장하는 기능도 제공합니다. 이를 통해 리소스 활용도를 개선하고 비용을 절감할 수 있습니다.
  • 이벤트 중심 컴퓨팅: Knative를 사용하면 서버리스 워크로드가 이벤트 및 트리거에 응답할 수 있습니다.
  • 이식성: Knative는 다양한 클라우드 제공업체와 환경에서 작동하도록 설계되었습니다. 따라서 개발자는 코드를 수정하지 않고도 서버리스 애플리케이션을 다양한 환경에 배포할 수 있습니다.
  • 확장성: Knative는 특정 애플리케이션 요구 사항을 충족하도록 사용자 지정할 수 있는 빌딩 블록 세트를 제공합니다.
  • 엔터프라이즈 확장성: Knative는 Puppet 및 Outfit7과 같은 기업에서 신뢰하고 있습니다.

작동 방식

Knative의 기능은 Knative Eventing과 Knative Serving으로 나뉩니다.

  • 이벤트: 이벤트싱크: HTTP POST 요청을 통해 이벤트 생산자에서 이벤트 소비자로 이벤트를 라우팅하거나 싱크를 활성화하는 API 모음입니다.
  • 서빙: 오브젝트 집합을 쿠버네티스 CRD(사용자 정의 리소스 정의)로 정의하거나 쿠버네티스 API 의 확장을 생성합니다. 이는 서버리스 워크로드가 다음 리소스를 사용하여 Kubernetes 클러스터와 상호 작용하는 방식을 결정합니다.
    • 경로: 네트워크 엔드포인트에서 Revisions 엔드포인트로의 매핑 및 트래픽 관리. 
    • 구성: 원하는 상태를 코드와 별도의 레이어로 유지합니다.
    • 개정: 모든 변경 및 수정 사항에 대한 코드 및 구성의 스냅샷입니다.
    • 서비스: 객체 생성을 제어하고 앱이 최신 버전 또는 특정 버전에 대한 경로, 구성 및 리비전을 지속적으로 갖도록 하는 워크로드 관리입니다. Knative는 기본적으로 Istio 게이트웨이 서비스를 사용합니다.
Kubernetes 클러스터의 계층을 보여주는 다이어그램. Istio는 쿼리 라우팅과 로드 밸런싱을 처리하는 서비스 메시입니다. Knative는 이벤트 및 서빙 기능을 통해 중간에 위치하며, Kubernetes 클러스터는 그 밑에 있습니다.
Knative는 Kubernetes를 오케스트레이터로 사용하고 Istio는 쿼리 라우팅 및 로드 밸런싱을 처리합니다.

YAML 또는 쿠버네티스용 Knative 오퍼레이터를 사용하여 클러스터에 Knative를 설치할 수 있다. 쿠버네티스 커뮤니티 멤버가 제출한 Knative 헬름 차트도 있다. Knative에는 빠른 시작 환경이 있지만 이는 테스트 목적으로만 권장된다.

Akamai 클라우드 시작하기

Knative는 클러스터의 노드 풀 내에서 최소 및 최대 노드를 쉽게 제어할 수 있는 LKE의 내장형 오토스케일러를 훌륭하게 보완합니다. Knative와 오토스케일러를 함께 사용하면 포드 및 인프라 수준에서 세밀하게 조정된 관리가 가능합니다.

시작을 돕기 위해 새로운 온디맨드 강좌를 준비했습니다! 2023년 2월 28일부터 제공되는 새로운 시도해 보기 온디맨드 코스를 위해 기업가를 위한 코딩의 저스틴 미첼과 함께 팀을 구성했습니다. 이 비디오 시리즈에는 Terraform 를 사용하여 Kubernetes 클러스터 만들기, Knative 서비스 구성하기, 컨테이너화된 애플리케이션 배포하기 등이 포함되어 있습니다.


댓글 (1)

  1. Author Photo

    It was helpful

댓글 남기기

이메일 주소는 게시되지 않습니다. 필수 필드가 표시됩니다 *