sacloud / autoscaler

さくらのクラウド向けAutoScaler
Apache License 2.0
7 stars 1 forks source link

垂直スケール時の上流リソースからのアタッチ/デタッチのタイミングを改善 #254

Closed yamamoto-febc closed 2 years ago

yamamoto-febc commented 2 years ago

from #253 related?: #192

サーバの垂直スケール時に上流リソースからサーバをアタッチ/デタッチするタイミングを改善する。

問題

現在の処理ではサーバ2台構成の時に503エラーが発生する可能性がある。

サーバの垂直スケールは以下の手順で行われる。

ELBの実サーバ設定を無効にしている間にサーバを更新、その後有効に戻しているが、 有効に戻すタイミングは「APIで取得したサーバの状態が起動となった後」となっている。 APIで取得したサーバの状態はIaaS上でサーバの電源投入をした直後から起動となるため、サーバ上のWebサーバ(など)が起動していないタイミング(電源投入直後〜OS起動〜サーバ起動)が存在することになる。

これにより、実サーバが2台以下で垂直スケールを行うとタイミング次第で全ての実サーバへのアクセスができず503エラーが返されることになる。 これを防ぐオプションはv0.2時点では提供していない。

対応

調査中

yamamoto-febc commented 2 years ago

案: ELB/GSLBだと実サーバのステータス(UP or DOWN)が参照可能なので、有効にする前にステータスがUPになっていることを確認できないか?

-> 実サーバを無効にするとステータスが参照できなくなるため不可能

yamamoto-febc commented 2 years ago

現状だと完全な対応は困難。上流リソースからヘルスチェックの設定内容を読み取り、自前でチェックを実装すれば対応できるかもしれないが、AutoScalerを稼働させているホストからの疎通が必要になるといった制約も出てくる。 また実装ボリュームも小さくない。

このためドキュメントでサービス停止が発生する可能性についての言及や3台以上の構成を推奨することを追記して対応とする。

yamamoto-febc commented 2 years ago

ドキュメント側で対応する。 https://github.com/sacloud/docs.usacloud.jp/issues/110

yamamoto-febc commented 2 years ago

318 により一定の条件下で問題発生を低減できるようになった。