Hybrid cluster configuration automatic elastic scaling

オートスケーリング設定の作成

前提条件

オートスケーリング設定を作成すると、ハイブリッドクラスターに cluster-autoscaler コンポーネント(Deployment)が自動的にデプロイされます。クラウド上でサービスを提供するこのコンポーネントは、クラウド外ノードへのスケジュールを回避する必要があります。また、オートスケーリング対象ノード(自動スケーリング後に削除されるため、Deployment 型のシステムコンポーネントを安定的に提供できないノード)へのスケジューリングも回避する必要があります。そのため、まず共通ノードプールを作成して拡張し、そのノードプールのノードにノードラベル alibabacloud.com/cloud-worker-nodes=true を設定することを推奨します。cluster-autoscaler コンポーネントは、ノードラベル alibabacloud.com/cloud-worker-nodes=true が設定されたクラウドノードに自動的にスケジュールされます。

手順

1. Container Service 管理コンソールにログインします。
2. コンソールの左ナビゲーションバーで、「クラスター」をクリックします。
3. クラスターリストページで、対象クラスターの名前をクリックするか、対象クラスターの右側にある「操作」列の「詳細」をクリックします。
4. クラスター管理ページの左ナビゲーションバーで、「ノードプール」をクリックします。
5. ノードプールページの右上にある「オートスケーリング設定」をクリックします。
6. オートスケーリング設定ページで、オートスケーリング設定を入力して送信します。詳細は以下の通りです。
cluster-autoscaler コンポーネントの設定

オートスケーリング設定が正常に完了すると、以下の通りクラスターに Deployment が自動的にデプロイされます。

kubectl -nkube-system get deploy |grep cluster-autoscaler
cluster-autoscaler 1/1 1 1 5s
cluster-autoscaler コンポーネントには、操作関連クラウドリソースの RAM ポリシーも設定する必要があります。詳細は以下の通りです。
{
"Version": "1",
"Statement": [
{
"Action": [
"ess:DescribeScalingGroups",
"ess:DescribeScalingInstances",
"ess:DescribeScalingActivities",
"ess:DescribeScalingConfigurations",
"ess:DescribeScalingRules",
"ess:DescribeScheduledTasks",
"ess:DescribeLifecycleHooks",
"ess:DescribeNotificationConfigurations",
"ess:DescribeNotificationTypes",
"ess:DescribeRegions",
"ess:CreateScalingRule",
"ess:ModifyScalingGroup",
"ess:RemoveInstances",
"ess:ExecuteScalingRule",
"ess:ModifyScalingRule",
"ess:DeleteScalingRule",
"ecs:DescribeInstanceTypes",
"ess:DetachInstances",
"vpc:DescribeVSwitches"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}

上記の RAM ポリシーで認可されたアクセスキー情報を使用して、alibaba-addon-secret という名前の Secret リソースを作成する必要があります。詳細は以下の通りです。
$ export ACCESS_KEY_ID=xxxx
$ export ACCESS_KEY_SECRET=xxxx
$ kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=${ACCESS_KEY_ID}' --from-literal='access-key-secret=${ACCESS_KEY_SECRET} '

オートスケーリングノードプールの作成

手順

1. オートスケーリング設定ページで、「ノードプールを作成」をクリックします。

2. ノードプール作成ページで、ノードプール作成の設定項目を設定します。設定項目の詳細説明については、一部の設定項目を以下に示します。

自動スケーリングのテスト

オートスケーリングノードプールを作成する際、ノードプールのノードに自動ノードラベル(workload=auto など)を設定できます。その後、以下のコマンドを使用して、ノードプールがノードを正しくエジェクトできるかをテストできます。
kubectl run nginx --image nginx -l workload=auto

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.