首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openfaas部署.kubernetes.io/max-副本与com.openfaas.scale.max

openfaas部署.kubernetes.io/max-副本与com.openfaas.scale.max
EN

Stack Overflow用户
提问于 2021-02-06 17:00:17
回答 1查看 390关注 0票数 0

我有一个k8s集群,我已经通过以下方式安装了openfaas:

代码语言:javascript
复制
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

代码语言:javascript
复制
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文件中找到了这些标签。但是,如果我查看控制函数荚的副本集,就会发现它是由以下注释装饰的:

代码语言:javascript
复制
deployment.kubernetes.io/max-replicas=2

后一个注释对函数的副本集对实际函数的缩放有什么影响?如果我把

代码语言:javascript
复制
com.openfaas.scale.max: 3

作为我功能的标签?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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度量,如这里所描述的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66079490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档