Azure Kubernetes

AzureにKubernetesを展開する5つの方法

はじめに

くどうです。

今回は、AzureにKubernetesを展開する方法についていくつか紹介したいと思います。
それぞれドキュメントがしっかりしているのでサクッとできます。

Azure Container Service (ACS)

(ドキュメントしか残ってません)
https://docs.microsoft.com/ja-jp/azure/container-service/
従来のサービスではAzure Container Service (ACS)があります。
オーケストレーションとしてSwarm、DC/OS、Kubernetesを選択できるようになっています。

ACSのドキュメントを参照すると下記のように古いバージョンですと表示されます。
警告
現在ご覧になっているのは、古いバージョンの Azure Container Service のドキュメントです。 Azure Container Service (AKS) は、新しいデプロイ オプション、強化された管理機能、およびコスト面でのメリットを Azure での Kubernetes に追加するために更新されています。 これらのプレビュー機能の使用を開始するには、AKS のドキュメントを参照してください。

Azure Container Service (AKS)

https://azure.microsoft.com/ja-jp/services/container-service/
ん?ちょっと待った。A「K」S? そう「K」とはKubernetesの「K」です。Containerどこいったw
こちらはKubernetesのマネージドサービスです。まだ、プレビューです。
結局、ACSには古いバージョンと表示され、AKSはプレビュー・・・どっち使えば良いんですかね?

上記二つ、ACS、AKSはマネージドサービスですが、SLAはVirtul MachinesのSLAになります。
https://azure.microsoft.com/en-us/support/legal/sla/container-service/v1_0/
正直、出来ることはportalやコマンドで、AgentNodeを増やしたり減らしたりすることぐらいです。
多分ここを見ていらっしゃる方々、いやいやもっとカスタマイズしたいんだって方もいると思います。

その場合はACS Engineを利用します。

ACS Engine

https://github.com/Azure/acs-engine
ACS Engineはその名の通りACSの大元です。オープンソースで公開されており自由にみれます。
特徴として任意のVNETに展開が行えたり、大規模な1200Nodeのクラスターが構築できたり様々な展開方法が行えます。
オーケストレーションもSwarm、DC/OD、Kubernetesが選択できます。ディスクの展開方法もVMASからVMSSに変更できたりします。
(Kubernetesは仕様上VMSSでの展開がまだ難しいようで対応されていません)

ACS Engineを利用してAzure上にkubernetesをdeploy!
Node Auto-Scaling + Kubernetes with ACS-Engine on Azure.

CoreOS Tectonic

https://github.com/coreos/tectonic-installer
CoreOS Tectonicという選択肢もあります。
CoreOSがDocker用にLinuxディストリビューションじゃなかった?と思う方も多いかと思いますが、
悟ったのかKubernetesをデプロイするツールを作っています。
利用するにはCoreOS account とTerraform 、DNSが必須です。
ドキュメントはまとまっているので苦ではありませんが少々手間がかかりますね。

Kubernetes on Ubuntu

https://kubernetes.io/docs/getting-started-guides/ubuntu/
手動で全部構築!?ではありません。
conjure-up + juju による展開です。
Ubuntu 限定の方法ですが展開フレームワークです。
特に、必須なものは無くKubernetesを展開するまでに30分もかかりません。

conjure-up
https://conjure-up.io/
juju
https://jujucharms.com/

まとめ

今回はAzureにKubernetes展開する5つの方法を紹介しました。
自分で管理運用するの嫌だって方はACS、AKSを利用すると良いでしょう。
いや、もっとカスタマイズしたいという方はACS Engineを利用すると良いと思います。
MS?そうじゃないOSSを使いたいという方はTectonicやjujuを利用してみてはいかがでしょうか。
上記5つ以外の方法で展開するんだという方もご自由に・・・

下記は独断と偏見です。

特段、良い悪いはないかと思います。
自分にあった展開する方法を検討してみてください!

-Azure, Kubernetes
-, , , , ,