openfaas deployment.kubernetes.io/max-replicas vs com.openfa



我有一个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文档中找到的)装饰部署的函数。但是,如果我查看控制函数pod的副本集,就会发现它带有以下注释:
deployment.kubernetes.io/max-replicas=2

后一个注释对函数的复制集在实际函数的缩放上有什么影响?如果我设置

com.openfaas.scale.max: 3

作为我的函数的标签?

我想确保真正控制我的函数的水平缩放。我该怎么做?

OpenFaas本身配备了自动缩放器和自己的警报管理器:

OpenFaaS附带一个自动缩放规则,该规则定义在已挂载的AlertManager配置文件。AlertManager读取使用情况(每秒请求数)指标,以便知道何时执行向API网关发送一个警报。

在阅读之后,我发现OpenFaas的autoscaler/alertmanager更关注API命中率,而Kubernetes的HPA更关注CPU和内存使用,所以这一切都取决于你到底需要什么。

你有两个不同的注释用于两个不同的缩放工具。deployment.kubernetes.io/max-replicas=2用于Kubernetes HPA,com.openfaas.scale.max: 1用于OpenFaas自动缩放器。

OpenFaas有一个很好的例子,说明如何使用HPA代替内置的scaler。您还可以使用自定义Prometheus指标与HPA,如下所述。

相关内容

  • 没有找到相关文章

最新更新