しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Container Services (AKS) のデプロイで苦労した話

ここ数日は AKS のクラスター作成と戦っていたので、ARM ベースでいろいろと調べていました。例によって忘れそうなので、ちゃんとメモしておくことにします。

AKS の最新情報を知りたければ、GitHub を追っかけておけば OK です。

ちなみに以下のエントリで使うために、クラスターを作っていた時の話です。

基本的に Windows と Linux のハイブリッドなクラスターしか作ってないので、話としては偏っているのでそのあたりはあしからず。

West US 2 / UK West は新規デプロイ停止

デプロイ完了していた West US 2 のクラスターが Failed になって止まっていたので、新しくデプロイしようとしても必ず失敗するとか、まあいろいろとはまっていました。

調べていたら GitHub にアナウンスが上がっていました。

https://github.com/Azure/AKS/blob/master/annoucements/service_outage_2017-11-09.md

何らかの障害で West US 2 は新規のクラスター作成を受け付けていません。UK West はおそらくキャパシティの問題で、こちらも作成は出来ない状態となっています。

既に作成済みのクラスターがある場合でも、ステータスが Failed になっている場合は作り直す必要があるかもしれません。自分の場合はどうしても復活しなかったので作り直しました。

失敗後に同じ名前の AKS を作ると挙動が怪しい(気がする)

適当に作成したリソースグループに対して West US 2 に AKS をデプロイしようとして、キャパシティの問題でエラーになった後、再度同じ名前でデプロイすると別のエラーになってました。

リソースグループを新しく作っても変わらなかったですが、AKS を別名にすると通った気がしました。

対応リージョンに East US / West Europe が追加

パブリックプレビューとして公開された時には West US 2 と UK West しか選べませんでしたが、最近 East US と West Europe が追加されました。

https://github.com/Azure/AKS/blob/master/preview_regions.md

Hyper-V Containers が使いたいので Nested Virtualization を有効に出来る Dv3 が使えるリージョンを選ぶ必要がありましたが、East US と West Europe は両方とも対応してるみたいです。

今新しく AKS を作ろうとすると、そもそも UK West は選べなくなってました。

f:id:shiba-yan:20171115223905p:plain

もうちょっと日本に近い場所にデプロイされると嬉しいのですが、時間はかかりそうな気がしています。East Asia か Southeast Asia なら来るかもしれません。

ルートテーブルにルートが追加されない時がある

Windows 限定っぽいですが、VM などのデプロイが完了しているにもかかわらず、ルートテーブルに新規作成した VM 向けのルートが追加されず、ノードとして認識されない現象が発生しました。

しかも、上手くいったりいかなかったりするので非常に厄介です。ほかにも Custom Script Extension の実行に失敗したり、そもそもデプロイが完了しなかったりといろいろありました。

対処方法としては上手くいくまで VM を作り直すぐらいしかないです。

Kubernetes 1.7.9 / 1.8.2 に対応

ポータルからは 1.7.7 と 1.8.1 しか選べない Kubernetes のバージョンですが、内部的には 1.7.9 と 1.8.2 に対応しているようで、ARM を使って設定値を変えるとアップデートされます。

ARM で upgradeprofile を開くと、対応しているバージョンを取得できます。

f:id:shiba-yan:20171115223145p:plain

ちゃんと Windows にも対応していることが分かります。公式発表は近いのかも。

f:id:shiba-yan:20171117230519p:plain

ARM Explorer でバージョンを書き換えたところ、ちゃんと Kubernetes 1.8.2 にアップデートされたことが確認できました。Windows と Linux の両方ともが自動でアップデートされます。

ちなみにアップデートは VM を作り直すという方法なので、多少時間はかかります。