IDCFクラウド コンテナ for IDCFクラウド、IDCFクラウド コンテナ for IDCFプライベートクラウドでは、Cluster Autoscalerを有効化することで、ノードのオートスケーリングが可能です。
また、HPA (Horizontal Pod Autoscaler) を設定していると、リソースの使用率に応じたオートスケーリングが可能です。
以下では、Kubernetes クラスター上で動作する Pod の要求リソースに応じて Node の台数を自動で増減させる Cluster Autoscaler の有効化するための手順を説明します。
■利用条件
本機能を利用する場合、以下の条件を満たしている必要があります。
Kubernetes のバージョンが 1.19, 1.20 であること(1.21は準備中です)
作成されたクラスターがマスターノード、ワーカーノードと分離されていること
a.Cluster Autoscaler では、ワーカーノードが増減する形となります。
b.そのため、ロールの “etcd”, “Control Plane”, “Worker” は下図のように構成されている必要があります。
また、以下の情報が必要となります。
作成したクラスターのID
ノードプールのID ※ワーカーノードを指定する場合
a.ワーカーノード(ロールが”Worker”のみのNode)が複数個存在しており、かつIDを指定しない場合は、全てのワーカーノードがオートスケールの対象となります。
API URL & トークンキー
a.クラスター内部へのアクセスを行うために必要となります
上記の取得方法は以下のとおりです。
1.作成したクラスター名をクリックし、クラスターの詳細画面に移動します。
2.クラスター詳細画面から”ツール” → “ノード” を選択します。
3.ノードの一覧から作成したワーカーノードに割り当てられたノード名を確認します。
a.下図の場合、”c-XXXXX” がクラスター名になります
b.続けて、”np-XXXXX” がノードプール名になります
1.ダッシュボード右側のユーザをクリックし、”API & キー”を選択します
2.“API & キー”の画面右側にある、”キーを追加”を選択し、キーを作成します。
a.キーの名前は任意です。
b.スコープは必ず、”スコープなし” を選択してください。
3.キーの作成が終了すると、以下の図のように表示されます。これらの情報は、Cluster Autoscalerをインストールする際に必要となりますので、メモなどをとっておいてください。
■カタログを確認する
1.作成したクラスター名をクリックし、クラスターの詳細画面に移動します。
2.クラスター詳細画面から”ツール” → “カタログ” を選択します。
3.カタログの一覧に、”idcf-charts”があることを確認します。
■Cluster Autoscaler をインストールする
1.カタログに”idcf-charts”があることが確認できましたら、次にクラスターの選択画面から、”プロジェクト”→“Default” を選択します。
2.“Default”プロジェクトの画面から、”App”を選択します。選択後、右下の”起動”を選択することでアプリケーションの一覧画面に遷移します。
3.アプリケーションの一覧画面から、”idcf-library”→“cluster-autoscaler-rancher” を選択します。
4.選択すると、Cluster Autoscalerに関する設定画面が表示されます。
a.“設定オプション”の以下の項目は、お客様の任意で変更が可能です。
(基本的にはデフォルト値の設定で変更は不要です。)
ⅰ.名前
ⅱ.テンプレートバージョン
ⅲ.名前空間
ⅳ.Helm Wait
ⅴ.Helm Timeout
※ 右下部の”YAMLで編集”を選択し、全ての項目をYAMLから設定することも可能です。
5.次にイメージの設定、およびデプロイ時の設定をおこないます。以下の表がそれぞれのパラメーターとその説明になります。
イメージの設定
|
項目
|
説明
|
Image
|
デプロイ時に使用するイメージ名
|
Image Tag
|
デプロイ時に使用するイメージのタグ
|
ImagePullPolicy
|
コンテナイメージをPullするポリシーを指定する
|
※ デフォルトで値が設定されていますので、変更する必要はありません。
デプロイの設定
|
項目
|
説明
|
Deployment Replicas
|
デプロイ時のレプリカ数
※ Leader Election はデフォルトで有効化されています
|
Scan Interval
|
Cluster Autoscaler のメインループの間隔
(例: 10s/1m/1h)
|
klog Verbose Ievel
|
klogのログ出力の詳細レベル
※ klogのログレベルに関してはこちらを参照してください
(弊社管理外サイトです)
|
Rancher Client Debug
|
trueにした場合、ログ出力時にデバッグ内容も出力されます
|
※ デフォルトで値が設定されていますが、任意で変更が可能です。
6.最後にCluster Autoscalerの設定をおこないます。以下の表がそれぞれのパラメーターとその説明になります。全てのワーカーノードに対して、設定を行う場合は、 ”Min Size (Common)”, “Max Size (Common)” を設定してください。
Cluster Autoscalerの設定
|
項目
|
説明
|
ClusterId
|
クラスターID
※「利用準備①」を確認してください
|
API URL
|
APIのURL
|
Token Key
|
APIのトークンキー
※ 「利用準備②」で生成された Bearerトークンを使用します
|
Timeout
|
API Serverへのリクエストのタイムアウト時間 (必要な場合)
|
Min Size (Common)
|
スケールするノードの最小値 (全てのワーカーノードに適用)
|
Max Size (Common)
|
スケールするノードの最大値 (全てのワーカーノードに適用)
|
7.個別にノードを指定する場合は、次項目である”CLUSTER AUTOSCALER SETTINGS(TARGETNODEPOOLS)”に設定を行います。
Cluster Autoscalerの設定 (ノードプールの指定)
|
項目
|
説明
|
NodePool Name
|
ノードプール名
※「利用準備①」を確認してください
|
Min Size
|
スケールするノードの最小値 (指定したワーカーノードに適用)
|
Max Size
|
スケールするノードの最大値 (指定したワーカーノードに適用)
|
8.上記のパラメータを設定後、”起動”を押すとインストールが開始されます。以下の状態が表示されたら、インストールは完了です。
デフォルトの設定でインストールした場合、”Default” プロジェクト内に、以下のように登録されていることが確認できます。