当第一个请求到达时,如何动态启动kubernetes吊舱?
假设我的应用程序中有多个端点,它们通过入口控制器公开为不同的Kubernetes服务当第一个请求到达时,如何动态启动kubernetes吊舱?,kubernetes,serverless,kubernetes-ingress,Kubernetes,Serverless,Kubernetes Ingress,假设我的应用程序中有多个端点,它们通过入口控制器公开为不同的Kubernetes服务 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: foo.bar.com http: paths: - path:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /service1
backend:
serviceName: service1
servicePort: 80
- path: /service2
backend:
serviceName: service2
servicePort: 80
假设service2端点在很长时间内不接收请求,因此无服务器策略适合它。我是否可以配置Kubernetes入口控制器,以便在长时间请求到达服务2时动态扩展服务部署,并在长时间没有请求到达时关闭服务2的POD?我认为入口控制器无法自动扩展POD。看看kubernetes autoscalar,它可以用于水平扩展部署的吊舱或其他可以指定副本的资源。Nginx入口不能用于无服务器。您可以用于此用例。检查添加到HorizontalPodAutoscalar的自定义度量支持。 您的应用程序可能会向收集器(例如Prometheus)公开一个自定义度量,例如大量HTTP请求,然后收集器会将这些自定义度量提供给Prometheus适配器和自定义API服务器
不确定是否可以从0个副本开始,并在第一个请求到达时扩展到1或更高。谢谢。knative看起来确实很合适!关于如何将knative配置为使用对服务的调用计数作为自动缩放POD的指标,您是否有任何其他指示?我不清楚knative如何知道服务的呼叫数?