web-dev-qa-db-ja.com

水平POD AutoScalerのAPIバージョンV2BETA1とV2BETA2の違いは?

Kubernetes水平ポッドautoScalerウォークスルーインチ https://kubernetes.io/docs/tasks/run-application/horizo​​ntal-pod-autoscale-walkthrough/ カスタムメトリックで自動スケールを実行できることを説明します。理解していなかったのは、2つのAPIバージョンを使用することです.v2beta1とv2beta2。誰かが説明できるならば、私は本当にそれを感謝します。

前もって感謝します。

12
Ajay Maity

カスタムの外部メトリックで水平POD AutoScalerを運転する必要がある場合は、V2BetA1のみが利用可能です(私はこれがまだGKEに当てはまると思います)、私たちはこの日常的にGKEで行います。必要です:

  1. スタックドライバ監視メトリック、おそらくあなた自身を作成する人
  2. メトリックがSAMPLING LOGをサンプリングすることで派生していない場合は、1分ごとに1回ずつ実行されていないCronJobなどのStackDriver監視メトリックにデータを公開する方法があります(少しpythonスクリプトとGoogle) pythonライブラリ_ライブラリ_ライブラリー)、および
  3. StackDriverモニタリングをHPAに公開するカスタムメトリックアダプタ(例えば、Google、_gcr.io/google-containers/custom-metrics-stackdriver-adapter:v0.10.0_)。このアダプタ ここ を展開する方法については、チュートリアルがあります。 ここ のように、必要なRBACスタッフをアダプタの実行に必要なRBACファイルを付与する必要があります。チュートリアルで説明されているように、構成クラスター管理者ロールを展開するプリンシパルを付与したくない場合があります。 HELM 2 W/Tillerを使用しており、展開する耕作に最小限の特権を付与するように注意してください。

この方法でHPAを設定します。

_kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
 ...
spec:
   scaleTargetRef:
      kind: e.g., StatefulSet
      name: name-of-pod-to-scale
      apiVersion: e.g., apps/v1
   minReplicas: 1
   maxReplicas: ...
   metrics:
     type: External
     external: 
       metricName: "custom.googleapis.com|your_metric_name"
       metricSelector:
          matchLabels:
             resource.type: "generic_task"
             resource.labels.job: ...
             resource.labels.namespace: ...
             resource.labels.project_id: ...
             resourcel.labels.task_id: ...
       targetValue: e.g., 0.7 (i.e., if you publish a metric that measures the ratio between demand and current capacity)
_

HPAオブジェクトにKubectlを尋ねると、自動スケーリング/ v2beta1の設定が表示されませんが、これはうまく機能します。

_kubectl get --raw /apis/autoscaling/v2beta1/namespaces/your-namespace/horizontalpodautoscalers/your-autoscaler | jq
_

これまでのところ、私たちはこれをGKEで行使しただけです。それは明らかにスタックドライバー固有です。 StackDriverが他のパブリックマネージドK8Sプラットフォームに展開できる範囲で、実際には移植可能な場合があります。あるいは、Cronjobの異なるメトリック公開ライブラリー、および異なるカスタムメトリックアダプタを使用して、各プラットフォームにカスタムメトリックを公開するための異なる方法で終わるかもしれません。たとえば、Azure用に存在することがわかります。

0
Eric Schoen