web-dev-qa-db-ja.com

Kubernetesオートスケーラーを更新するにはどうすればよいですか?

Kubernetes autoscaler を作成しましたが、パラメーターを変更する必要があります。どうすれば更新できますか?

私は以下を試しましたが、失敗します:

✗ kubectl autoscale -f docker/production/web-controller.yaml --min=2 --max=6
Error from server: horizontalpodautoscalers.extensions "web" already exists
12
aknuds1

最初にオートスケーラーを削除してから、再作成します。

✗ kubectl delete hpa web
✗ kubectl autoscale -f docker/production/web-controller.yaml --min=2 --max=6
7
aknuds1

クラスタ内のリソースはいつでもインタラクティブに編集できます。 webというオートスケールコントローラーの場合、次の方法で編集できます。

kubectl edit hpa web

水平ポッドオートスケーラーを更新するためのよりプログラム的な方法を探している場合は、yamlファイルでオートスケーラーエンティティを説明することもできます。たとえば、次は、Horizo​​ntal PodAutoscaleエンティティとペアになっている単純なReplicationControllerです。

 apiVersion: v1
 kind: ReplicationController
 metadata:
   name: nginx
 spec:
   replicas: 2
   template:
     metadata:
       labels:
         run: nginx
     spec:
       containers:
       - name: nginx
         image: nginx
         ports:
         - containerPort: 80
 ---
 apiVersion: autoscaling/v1
 kind: HorizontalPodAutoscaler
 metadata:
   name: nginx
   namespace: default
 spec:
   maxReplicas: 3
   minReplicas: 2
   scaleTargetRef:
     apiVersion: v1
     kind: ReplicationController
     name: nginx

nginx.yamlというファイルにこれらの内容がある場合、オートスケーラーの更新はkubectl apply -f nginx.yamlを介して実行できます。

23
amcelwee

Kubectl patchコマンドを使用して、現在のステータスを確認することもできます。

kubectl get hpa <autoscaler-name-here> -o json

出力例:

{
"apiVersion": "autoscaling/v1",
"kind": "HorizontalPodAutoscaler",
"metadata": {
    ...
    "name": "your-auto-scaler",
    "namespace": "your-namespace",
    ...
},
"spec": {
    "maxReplicas": 50,
    "minReplicas": 2,
    "scaleTargetRef": {
        "apiVersion": "extensions/v1beta1",
        "kind": "Deployment",
        "name": "your-deployment"
    },
    "targetCPUUtilizationPercentage": 40
},
"status": {
    "currentReplicas": 1,
    "desiredReplicas": 2,
    "lastScaleTime": "2017-12-13T16:23:41Z"
}
}

レプリカの最小数を更新する場合:

kubectl -n your-namespace patch hpa your-auto-scaler --patch '{"spec":{"minReplicas":1}}'

同じロジックがオートスケーラー構成にある他のパラメーターにも適用されます。許可されるレプリカの最大数を更新する場合は、minReplicasをmaxReplicasに変更してください。

7
Andre Hahn