0

次の方法でopenfaasをインストールしたk8sクラスターがあります。

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

私の関数のラベルとして?

関数の水平スケーリングを実際に制御できるようにしたいと思います。どのように進めればよいですか?

4

1 に答える 1

1

OpenFaas には、独自のアラート マネージャーを備えたオートスケーラー自体が装備されています。

OpenFaaS には、AlertManager のマウントされた構成ファイルで定義された単一の自動スケーリング ルールが付属しています。AlertManager は、API ゲートウェイへのアラートをいつ発火するかを知るために、Prometheus から使用状況 (1 秒あたりのリクエスト数) メトリックを読み取ります。

いくつか読んだ後、OpenFaas オートスケーラー/アラートマネージャーは API ヒット率に重点を置いているのに対し、Kubernetes HPA は CPU とメモリの使用に重点を置いていることがわかりました。

したがって、スケーリング用の 2 つの異なるツールに対して 2 つの異なる注釈があります。はdeployment.kubernetes.io/max-replicas=2Kubernetes HPAcom.openfaas.scale.max: 1用であり、OpenFaas オートスケーラー用です。

OpenFaas には、組み込みスケーラーの代わりに HPA を使用する方法の優れた例があります。ここで説明されているように、HPA でカスタム Prometheus メトリクスを使用することもできます。

于 2021-02-08T09:27:10.010 に答える