Knative
좋아요, 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 직접 설치해보고 싶은 계획이신가요, 아니면 개념적으로만 보고 계신가요? 😊
Enjoy Reading This Article?
Here are some more articles you might like to read next: