Azure

Node Auto-Scaling + Kubernetes with ACS-Engine on Azure.

はじめに

くどうです。

Azure上に、ACS-EngineでKubernetesを展開した場合に問題になるのはNode単位でのオートスケールです。
また、NodeのスケールはCPUなどではなく、resourcesを設定しdeploymentした場合など、
podがpendingになった場合スケールします。

現在(2017/12/13)本家のKubernetesが一度サポートしたはずのAzureでのオートスケールを削除しています。
GCPやAWSは対応してるんですが・・・・
その為、別の方法を考える必要があります。

唯一、動作するものとしてwbuchwalter/Kubernetes-acs-engine-autoscaler を紹介します。
基本的な利用方法は同じですので下記をご参考をお願いします。
https://github.com/wbuchwalter/Kubernetes-acs-engine-autoscaler
https://medium.com/@wbuchwalter/autoscaling-a-kubernetes-cluster-created-with-acs-engine-on-azure-5e24ddc6402e
上記のautoscalerは少々癖があります。
1、acs-engineを利用してdeployした場合は動作しません。
2、カスタムVnetに展開されたk8sの場合、autoscaler用のイメージはlatestではありません。

それぞれ説明していきたいと思います。

1、acs-engineを利用してdeployした場合は動作しません。

これはautoscalerがdeploment情報を参照しているためです。
acs-engineでdeployした場合、dnsSaffix+数字になってしまうためこれを利用できません(正確には出来ないわけではい)。

autoscalerはデフォルトでazuredeployという名前のdeploymentを探します。
その為、generateでテンプレートを作成後、az group deployment create などで展開します。
上記の方法で展開することで deployment nameをazuredeployに統一します。

acs-engineの利用方法は割愛します。

2、カスタムVnetに展開されたk8sの場合、autoscaler用のイメージはlatestではありません。

カスタムvnetを利用した場合、nsgが問題でエラーが発生します。
https://github.com/wbuchwalter/Kubernetes-acs-engine-autoscaler/issues/34
以下のイメージが公開されていますので、それを利用します。
emondek/kubernetes-acs-engine-autoscaler:remove-nsg-dependson

投稿日より10日前なのでもう少ししたら、Masterにマージされるかな?
https://github.com/wbuchwalter/Kubernetes-acs-engine-autoscaler/pull/68

まとめ

現状、Nodeのオートスケールは選択肢がwbuchwalter/Kubernetes-acs-engine-autoscaler のみかと思います。
k8sのHorizontal Pod Autoscalerと組み合わせて活用していきましょ。
k8sのslackでもscalingが頻繁にやりとりされているので参考にするのも良いと思います。

Related post

  1. Azure

    Azure App Service Environmentのすすめ。

    はじめにApp Service Environment は仮想ネッ…

  2. Azure

    クラウド間のファイル共有はSMBで暗号化しよう。

    はじめにくどうです。最近は、クラウド間でファイル共有を行う…

  3. Azure

    Azure Database for MySQL PreviewのServer parameters…

    Azure Database for MySQLのServer par…

  4. AlibabaCloud

    Azure、AWS、GCP、Alibaba CloudのCPU脆弱性対応のまとめ

    くどうですCPUの脆弱性が公開されて各クラウドベンダーが対応し…

  5. Azure

    CacooでAzureのステンシル、テンプレートが使えるようになった。

    はじめにヌーラボさんのCacooですがAzureのステンシル、テン…

  1. 未分類

    TeraStationが故障したときにバックアップを復元する方法
  2. Azure

    Azure Active Directory のBasic とかPremium …
  3. Azure

    Azure RemoteApp でローカルのドライブを利用する。
  4. 未分類

    RHEL5とRHEL4ESのベンチマーク  RHEL5もベンチしてみる
  5. セキュリティ

    サイバーセキュリティシンポジウム道後2017に初参加してきました。旅先で出会う人…
PAGE TOP