Kubernetes水平ポッドautoScalerウォークスルーインチ https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ カスタムメトリックで自動スケールを実行できることを説明します。理解していなかったのは、2つのAPIバージョンを使用することです.v2beta1とv2beta2。誰かが説明できるならば、私は本当にそれを感謝します。
前もって感謝します。
カスタムの外部メトリックで水平POD AutoScalerを運転する必要がある場合は、V2BetA1のみが利用可能です(私はこれがまだGKEに当てはまると思います)、私たちはこの日常的にGKEで行います。必要です:
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用に存在することがわかります。