https://wlsdn3004.tistory.com/81
https://knative.dev/docs/concepts/#what-is-knative
개발자가 간단한 웹서비스를 쿠버네티스에 구축하려면 Ingress, Deplyment, Service와 같은 쿠버네티스 리소스를 정의하고, 필요한 스펙을 설정해야 한다. 또한 오토스케일링을 위한 별도의 설정, Canary나 Blue-Green같은 고급 배포 전략을 위해선 추가적인 솔루션을 설치해야 함.
이 모든게 상당한 부담이다.
여기에 서버리스 이용해 간단한 이벤트 기반 서비스를 구축하려 할때는 AWS lambda나 GCP의 Clud function등을 이용해야하는데 이는 또 해당 클라우드 플랫폼에 대한 종속성이 된다.
이런 문제들을 해결하기 위해 만들어진 서버리스 솔루션이 knative이다.
결론만 말하면 쿠버네티스 기반 서버리스 도구로, 배포의 복잡성을 줄여 개발자가 서비스 개발에 집중할수 있도록 하고, 특정 클라우드 종속성도 없다.
왜 서버리스인가?
Knative는 Ingress, Deployment, Service 리소스를 자동로 생성해 주고, 리소스 요청이 있을때만 실행시키며 특정 시간 요청이 없으면 종료까지 시킨다.
크게 다음의 구성요소가 있고, 각각의 역할이 다르다.
Knative Serving은 CRD(k8s custom resource definition)으로 객체 집합을 정의함. 이 리소스들이 클러스터에서 서버리스 워크로드의 동작을 정의 / 제어한다.