문서 목차
ORKESTRIX설치
Knative Serving
트래픽 기반 자동 스케일링(Zero Scaling) 을 지원하는 서버리스 애플리케이션 실행 환경을 구성합니다. 요청이 없으면 파드 수를 0으로 줄이고, 요청이 들어오면 자동으로 다시 기동합니다.
QUANTUM C&S
트래픽 기반 자동 스케일링(Zero-Scaling)을 지원하는 서버리스 애플리케이션 실행 환경을 구성합니다. 요청이 없으면 파드 수를 0으로 줄이고, 요청이 들어오면 자동으로 다시 기동합니다.
네트워킹 레이어로 Istio를 사용합니다. Istio 설치가 선행되어 있어야 합니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
qks_knative_serving_operator_enabled: true
qks_knative_serving_version: 1.14.0
실행
./install.sh ubuntu plays/qks-knative-serving.yaml
설치 흐름
./install.sh ubuntu plays/qks-knative-serving.yaml
├─ 1. Knative Operator 배포
├─ 2. KnativeServing 초기화 리소스 생성
└─ 3. KnativeServing 구성 적용(Istio 네트워킹 레이어 연동)
설치 확인
kubectl get pods -n knative-operator
kubectl get pods -n knative-serving
모든 파드가 Running이어야 합니다(storage-version-migration-* Job은 Completed가 정상).
실제 동작 확인
테스트 서비스를 배포하고 실제 요청 · 자동 스케일링을 확인합니다:
kubectl apply -f - <<EOF
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: test-ksvc
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "test"
EOF
kubectl get ksvc test-ksvc # READY: True 확인
Istio ingressgateway를 통해 실제 요청을 보냅니다:
curl -s -H "Host: test-ksvc.default.example.com" http://<노드IP>:31080/
정상 응답이 오면 서비스가 동작하는 것입니다.
일정 시간 트래픽 없이 대기하면 파드가 자동으로 0개로 줄어듭니다:
kubectl get pods -n default -l serving.knative.dev/service=test-ksvc
파드가 사라진 뒤 다시 위 curl 명령을 실행하면, 새 파드가 자동으로 기동되며 정상 응답합니다. 확인 후 정리:
kubectl delete ksvc test-ksvc -n default