当該コンテンツは、ローカリゼーションサービスを準備しております。早急にローカライズサービスをご提供できるよう、努めております。

始める前に

Kubernetesでは、次の機能を使用してクラスタを自動的に拡張したり縮小したりすることができます。

Horizontal Pod Autoscalerは、現在Podが使用中のリソースに応じて、必要なPodの個数を増加させたり減少させます。

Cluster Autoscalerは、クラスタの使用可能な資源とPodを要求する資源量を比較して、Nodeを増加させたり減少させます。

2つのAutoscalerを使用すると、クラスタの負荷に応じてPod、Nodeの数を自動的に調節できるようにすることができます。

このガイドではCluster Autoscalerに対する説明とKubernetes Serviceで使用する方法について説明します。

Cluster Autoscaler

自動調整システム

  • ユーザが要請したPodのリソース量より現在Clusterのリソースが不足している場合、ノード増加
  • 一定時間、特定ノードの使用率が低調な場合、そのノードを減少

Cluster Autoscalerは、現在使用中のリソース基盤で動作しません。 したがって、Podの負荷がどれだけ高くても、要請した資源量がない場合はNodeは増加しません。

ノード減少例外

ノード使用率が低調でもそのノードが減少しない場合は、以下のとおりです。

  • Controller(例:Deployment、StatefulSetなど)によって制御されない場合
  • Local Storageが設定されている場合
  • 他のノードにPodが移動できない場合
  • Annotation "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"が設定されている場合

例外状況の詳細については、リンクを参照してください。

適用する

クラスターの詳細情報から設定したいノードプールを選択し、[修正]ボタンをクリックします。

[設定] をクリックし、ご希望の最小·最大ノード値を指定して変更します。

当該機能が設定されている場合は、手動でノード数を変更できません。

手動での変更は、その機能を未設定にする必要があります。

適用範囲は、クラスタではなくノードプールです。 したがって、ノード増加条件になっても、設定されたノードプールにのみ機能が動作します。

機能の開始停止が適用される時間は、約1分~5分ほどかかることがあります。

正常動作確認

インストールが正しく完了した場合は、Config Mapで現在のCluster Autoscalerの状態を確認することができます。

$ kubectl --kubeconfig $KUBE_CONFIG get cm cluster-autoscaler-status -o yaml -n kube-system

apiVersion: v1
data:
  status: |+
    Cluster-autoscaler status at 2019-09-03 08:59:53.84165088 +0000 UTC:
    Cluster-wide:
      Health:      Healthy (ready=1 unready=0 notStarted=0 longNotStarted=0 registered=1 longUnregistered=0)
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
      ScaleUp:     NoActivity (ready=1 registered=1)
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
      ScaleDown:   NoCandidates (candidates=0)
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787

    NodeGroups:
      Name:        k8s-default-group
      Health:      Healthy (ready=1 unready=0 notStarted=0 longNotStarted=0 registered=1 longUnregistered=0 cloudProviderTarget=1 (minSize=1, maxSize=5))
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
      ScaleUp:     NoActivity (ready=1 cloudProviderTarget=1)
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
      ScaleDown:   NoCandidates (candidates=0)
                   LastProbeTime:      2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
                   LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787

kind: ConfigMap
metadata:
  annotations:
    cluster-autoscaler.kubernetes.io/last-updated: 2019-09-03 08:59:53.84165088 +0000
      UTC
  creationTimestamp: 2019-09-03T08:59:31Z
  name: cluster-autoscaler-status
  namespace: kube-system
  resourceVersion: "426558451"
  selfLink: /api/v1/namespaces/kube-system/configmaps/cluster-autoscaler-status
  uid: 248a8014-ce29-11e9-8a51-f220cd8c2e67

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...