좋아요, GCP에서의 Knative에 대해 설명드릴게요! ☁️🐳
Knative는 Kubernetes 위에서 서버리스(Serverless) 워크로드를 실행할 수 있도록 해주는 플랫폼이에요.


🚀 Knative란?

Knative (케이네이티브)는 Google이 주도하고 있는 오픈소스 프로젝트로,
Kubernetes 기반의 서버리스 앱 실행 플랫폼이에요.

즉,

컨테이너 기반 앱을 “필요할 때만 실행되게”, “자동 스케일링”, “이벤트 기반 실행” 등을 가능하게 해주는 K8s 확장 기능!


🧱 Knative의 구성요소 (크게 2가지)

구성 요소 설명
Knative Serving 앱을 서버리스로 실행. 요청 없을 때 0으로 스케일 다운도 가능
Knative Eventing 이벤트 기반으로 앱을 실행 (Pub/Sub, CloudEvents 등 트리거 지원)

선택적으로 사용할 수 있어요. Serving만 쓰는 경우도 많아요.


💡 GCP + Knative = Cloud Run for Anthos

GCP에서는 Knative를 다음 두 가지 방식으로 제공해요:

사용 방법 설명
Cloud Run (Fully Managed) GCP가 Knative를 관리 (Knative 추상화됨, 가장 간단함)
Cloud Run for Anthos 사용자 Kubernetes (GKE)에 Knative 설치하여 운영

즉, Knative를 직접 설치해서 쓰고 싶으면 GKE + Anthos 환경에서 Cloud Run for Anthos를 사용하거나,
직접 Knative를 설치해서 쓸 수 있어요.


✨ Knative의 주요 기능 요약

기능 설명
자동 스케일링 (scale-to-zero) 요청 없으면 컨테이너를 완전히 종료 → 리소스 절약
컨테이너 기반 배포 Docker 이미지만 있으면 배포 가능
즉시 실행 / 빠른 스케일 업 트래픽 발생 시 컨테이너 빠르게 시작
간단한 HTTP 라우팅 버전 관리, 트래픽 분할도 가능
이벤트 기반 트리거 Kafka, Pub/Sub, HTTP 이벤트 등으로 함수 실행

📦 Knative 설치 (GKE에서 직접 운영 시)

GKE 클러스터에 직접 설치할 수도 있어요. 예:

kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.13.0/serving-crds.yaml
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.13.0/serving-core.yaml

그 후 Istio 혹은 Kourier 등의 Ingress Controller도 설정해야 해요.


🧪 Hello World 예시 (Serving)

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld
spec:
  template:
    spec:
      containers:
        - image: gcr.io/YOUR_PROJECT/helloworld

이렇게 간단한 설정으로도 배포 가능!
→ 접근 URL은 Knative가 자동 생성해줍니다.


☁️ GCP에서 Knative 쓸 때 추천 조합

목적 방법
빠른 서버리스 배포 Cloud Run (Fully managed)
자체 클러스터에서 서버리스 Cloud Run for Anthos + Knative on GKE
고급 이벤트 기반 구성 Knative Eventing + Pub/Sub + CloudEvents 활용

🔥 Knative vs Cloud Run vs Cloud Functions

항목 Cloud Functions Cloud Run Knative (on GKE)
코드만 배포 ❌ (컨테이너 필요)
컨테이너 배포
이벤트 기반 일부 지원
커스터마이징 제한적 중간 매우 높음
자체 클러스터 운영 ✅ (GKE)

필요하시면 Knative + Eventing + Pub/Sub을 이용한 아키텍처 다이어그램이나 샘플도 그려드릴 수 있어요!
혹시 지금 GCP에서 Cloud Run과 비교해서 Knative 직접 설치해보고 싶은 계획이신가요, 아니면 개념적으로만 보고 계신가요? 😊

Read Count