학습일지/Knative
Knative로 배포한 애플리케이션의 동작과정
inspirit941
2022. 1. 24. 13:50
반응형
- 외부의 요청이 External Load balancer로 들어온다. 해당 요청은 Ingress Gateway (Istio)로 포워딩된다.
- istio gateway의 목적은 'destination Service'로 요청을 전달하는 것.
- k8s에서 애플리케이션을 실행하려면 몇 가지 리소스가 필요하다.
- Deployment -> it creates a ReplicaSet that creates pods.
- Horizontal Pod Scaler -> ensure the correct number of Replicas is running.
- Service -> other pod에서 Access하기 위한 통로.
- Ingress Gateway to Service -> 클러스터 외부에서 접근하기 위한 경로.
kn service create로 만들어진 기본 리소스는 이 중 Deployment, Service, Pod AutoScaler.
- Ingress Gateway는 특정 subdomain으로 들어온 모든 요청을 application으로 forwarding해 준다.
- router configuration, istio service 등 다른 리소스도 추가.
이렇게 여러 resource의 조합을 하나로 묶어서 Revision을 생성함. 애플리케이션 배포에 변경사항이 있을 때마다 새로 추가되며, rolling updates / rollbacks / separate 등 여러 기능을 지원한다.
knative 애플리케이션의 특징 중 하나는,
- 해당 revision으로 들어오는 트래픽이 일정 기간동안 없을 경우 자동으로 Scale up to Zero 상태로 변경할 수 있다는 것.
- 하지만 사용자 입장에서는 이게 zero scale되었는지 알 수 없을 만큼 애플리케이션 사용에 지장이 없다.
- Ingress Gateway에서 트래픽을 받았는데 replicaSet이 unavailable인 경우, ingress gateway는 해당 트래픽을 Activator로 보낸다.
- Activator는 autoscaler를 호출하고, autoscaler는 deployment 객체의 replicaset을 변경하도록 명령한다.
- autoScaler는 처음에 podScaler가 생성될 때 구성된 객체.
- replicaset이 복구되면, activator는 받았던 트래픽을 service로 forwarding한다.
Configuration
- Revision 설정과 관련있음
- contains / maintains the desired state of Application.
- 설정을 변경한다 -> Configuration 값이 바뀐다 -> New Revision을 생성한다.
Revision
- service, deployment, podscaler와 같은 k8s 애플리케이션 기본 리소스 + optional resource의 조합.
- knative에게 "which requests goes where" 를 지정해주는 역할.
애플리리케이션을 실행하고 kubectl get services,virtualservices
를 입력하면 아래의 리소스를 확인할 수 있다.
- k8s Service뿐만 아니라 istio virtualservice도 생성한 것을 확인할 수 있음.
- pod autoscaler. 트래픽이 들어오면 pod autoscaler가 작동하는 것을 확인할 수 있다.
scaler의 디폴트 옵션은 incoming traffic이지만, formula based query 기준으로 작동하도록 변경할 수도 있다.
- Router. Mapping Endpoint - 일종의 subDomain 같은 역할. 외부 트래픽을 내부의 application과 연결을 관장한다.
- 특정 revision 또는 여러 개의 revision이 트래픽을 받도록 설정할 수 있다.
- Router. Mapping Endpoint - 일종의 subDomain 같은 역할. 외부 트래픽을 내부의 application과 연결을 관장한다.
반응형