当第一个请求到达时,如何动态启动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:

假设我的应用程序中有多个端点,它们通过入口控制器公开为不同的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: /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如何知道服务的呼叫数?