我有一个k8s集群,我已经通过以下方式安装了openfaas:
helm repo add openfaas https://openfaas.github.io/faas-netes/
helm repo update
kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
helm upgrade openfaas --install openfaas/openfaas \
--namespace openfaas \
--set generateBasicAuth=true \
--set serviceType=LoadBalancer \
--set clusterRole=true \
--set functionNamespace=openfaas-fn现在,我有了下面的stack.yml
version: 1.0
provider:
name: openfaas
gateway: http://localhost:31112
functions:
my-function:
lang: csharp
handler: ./MyFunction
image: my-function:my-tag
labels:
com.openfaas.scale.min: 1
com.openfaas.scale.max: 1
com.openfaas.scale.factor: 0然后使用上面提到的标签来修饰已部署的函数,我在openfaas文件中找到了这些标签。但是,如果我查看控制函数荚的副本集,就会发现它是由以下注释装饰的:
deployment.kubernetes.io/max-replicas=2后一个注释对函数的副本集对实际函数的缩放有什么影响?如果我把
com.openfaas.scale.max: 3作为我功能的标签?
我想确保真正控制我的函数的水平缩放。我该怎么做?
发布于 2021-02-08 09:27:10
OpenFaas本身配备了自动分频器,并配备了自己的警报管理器:
OpenFaaS附带了在挂载的AlertManager配置文件中定义的单个自动缩放规则。AlertManager从Prometheus读取使用情况(每秒请求)指标,以便知道何时向API发出警报。
经过一些阅读,我发现OpenFaas自动分配器/警报管理器更关注API命中率,而Kubernetes HPA则更多地关注CPU和内存的使用,因此这一切都取决于您到底需要什么。
因此,对于两个不同的缩放工具,您有两个不同的注释。deployment.kubernetes.io/max-replicas=2用于Kubernetes HPA,com.openfaas.scale.max: 1用于OpenFaas自动分频器。
OpenFaas有一个很好的示例,您可以使用HPA代替定标器。您还可以在HPA中使用自定义Prometheus度量,如这里所描述的那样。
https://stackoverflow.com/questions/66079490
复制相似问题