Compute Engine のオートスケール機能を使用してみました。
Compute Engine Autoscalerは、現在Limit Preview機能ですので、デフォルトでは使用することができませんので、ここからリクエストを申請する必要があります。 |
まずは、Autoscaler機能は現在Limit Previewですので、CLI(gcloud)初期状態はpreview機能は使えませんので以下コマンドを有効にしておきます。
gcloud components update preview
Replica Poolファイルを作成します。AWSでいうLaunch Configurationに相当すると思われます。
vi replica.template
{ "template": { "vmParams": { "machineType": "n1-standard-1", "baseInstanceName": "my-replica", "disksToCreate": [{ "boot": "true", "initializeParams": { "sourceImage": "https://www.googleapis.com/compute/v1/projects/centos- cloud/global/images/centos-7-v20140903", "diskSizeGb": "10" } }], "networkInterfaces": [{ "network": "default", "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }] }] } } }
上記で作成したReplica Pool configでReplica Poolを作成します。
gcloud preview replica-pools --zone asia-east1-a create --size 1 --template replica.template asia-east1a-pool Replica pool asia-east1a-pool is being created.
replia数を最小値、最大値を1にしてオートスケールの設定をします。
gcloud preview autoscaler --zone asia-east1-a create aisa-east-aurtoscaler --max-num-replicas 1 --min-num-replicas 1 --target-cpu-utilization 0.6 --target https://www.googleapis.com/replicapool/v1beta1/projects/skillful-fx-531/zones/asia-east1-a/pools/asia-east1a-pool
VMインスタンスが起動することが確認できます。そこで、replica数の最小値、最大値を2にしてみます。時間をたたずにもう1つ VMインスタンスが起動できることが確認できます。Replica数を2から1にしても、1 VMインスタンスがterminateされます。
gcloud preview autoscaler --zone asia-east1-a update aisa-east-aurtoscaler --target https://www.googleapis.com/replicapool/v1beta1/projects/skillful-fx-531/zones/asia-east1-a/pools/asia-east1a-pool --max-num-replicas 2 --min-num-replicas 2
ただ、Replica数を0にすることはできないようです。Autoscalerを発動しないようにしておくことはできなそう。
gcloud preview autoscaler --zone asia-east1-a update aisa-east-aurtoscaler --target https://www.googleapis.com/replicapool/v1beta1/projects/skillful-fx-531/zones/asia-east1-a/pools/asia-east1a-pool --max-num-replicas 0 --min-num-replicas 0
<pre>{ "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Required field not specified: autoscaling_policy.max_num_replicas." } ], "code": 400, "message": "Required field not specified: autoscaling_policy.max_num_replicas." } }
SSD Persistent diskに対応していないゾーンで、disk typeにSSD diskを指定するとエラーになります。SSD Persistent diskに対応していないゾーンは、us-central1-aになります。
VMインスタンスを障害をみたてて、「nmcli c down eth0」でインスタンスに接続できない状況を発生させて、自動復旧できるか試してみました。
が、自動復旧されない。Replica PoolにHealthChecksがある。→ここ
使おうとすると、Unknown field nameとなる。???