Azure Kubernetes Service とは

Microsoft Azure

Azure Kubernetes Service (AKS) は Azure で提供されているマネージド Kubernetes サービスです。マネージドなサービスとして Kubernetes を利用できるため、一部のコンポーネント管理を Microsoft 側に任せておくことができます。その分すべてを利用者側で操作できないことから制約もありますが、それでも IaaS で VM で Kubernetes をすべて自分たちで管理する仕組みを用意するよりは、断然使いやすでしょう。

スポンサーリンク

AKS のアーキテクチャ概要

マネージドな Kubernetes サービスということで、コンポーネントによってはユーザー側による操作や変更が制限されている部分があります。クラウド サービスにおける共同責任モデル (責任共有モデルなどとも) と呼ばれる概念を想像してもらえるとわかりやすいです。

AKS のコンポーネントのうち、完全に Microsoft 側でホストおよび管理される部分とユーザー側の環境にリソースとして作成される 2 つの領域に分かれます。ユーザー マネージドなリソースには、実際にユーザーの Pod を配置する AKS ノードとして利用される VM (VMSS) リソースやロードバランサーなどのリソースがあります。

マネージドな Kubernetes について

クラウド サービスの多くには責任共有モデルの考え方が取り入れられています。つまり、ユーザーが管理するものと、クラウド ベンダーが管理するものとが分かれています。AKS は公開情報にも書かれているとおり PaaS ではないため、IaaS と PaaS の中間あたりに位置するものと考えてもらえると良いです。

AKS はサービスとしてのプラットフォーム (PaaS) ソリューションではありません。 エージェント ノードなどの一部のコンポーネントには “共同責任” があり、ユーザーが AKS クラスターの管理をサポートする必要があります。 たとえば、エージェント ノードのオペレーティング システム (OS) のセキュリティ修正プログラムを適用するには、ユーザー入力が必要です。

Azure Kubernetes Service (AKS) のサポート ポリシー – AKS のマネージド機能

AKS のコンポーネントのうち、Microsoft 側で管理更新されるコンポーネントは公開情報に記載があります。いわゆる Kubernetes のコントロール プレーンと呼ばれるものはすべて管理対象となっています。これらは更新や障害に対するバックアップなども行ってくれます。

また、AKS 用の OS イメージやエージェントに対する機能や修正プログラムの提供についても Microsoft が責任をもって管理します。ただし、OS イメージ更新などバージョン アップのトリガーはユーザー側で実行する必要がある点は注意してください。これはユーザー側でメンテナンスをスケジュールできるということでもありますが、放置しておくだけでは自動でイメージの更新はされないということです。

Microsoft では、イメージ ノードの更新プログラムと新しいイメージを毎週提供していますが、既定ではパッチは自動的には適用されません。 エージェント ノード OS とランタイム コンポーネントにパッチを適用し続けるには、定期的なノード イメージのアップグレードのスケジュールを維持するか、これを自動化する必要があります。

Azure Kubernetes Service (AKS) のサポート ポリシー – AKS エージェント ノードに対する Microsoft の責任

上述のコントロール プレーンに加えて、AKS の一部として提供されるリソースについてもカスタマイズが制限されています。具体的には、上述のユーザー マネージドなリソースはユーザー側でのプロパティ変更が禁止されています。禁止されているといっても操作自体はできてしまうため、サポート サービスでケアされないということが発生します。

AKS は、ユーザーに代わってエージェント ノードのライフサイクルと操作を管理します。エージェント ノードに関連付けられている IaaS リソースを変更することはサポートされていません。 サポートされていない操作の例としては、ノード プールの仮想マシン スケール セットのカスタマイズを、仮想マシン スケール セット ポータルまたは API を使用して構成を手動で変更して行うことが挙げられます。

Azure Kubernetes Service (AKS) のサポート ポリシー – エージェント ノードのユーザー カスタマイズ

ただし、カスタム タグの付与やリソースに対する IAM の追加などは行えるため、具体的にはリソースの動作に関わる設定値の変更と、AKS で付与された管理用のタグを変更するといった行為が禁止されています。

ノード リソース グループ内の Azure で作成されたタグや他のリソース プロパティを変更または削除する場合、スケーリングやアップグレードのエラーなど、予期しない結果になる可能性があります。 AKS を使用すると、カスタム タグを作成したり、エンド ユーザーが作成したものを変更したりすることはできる、と考えて貰えば大丈夫です。

Azure Kubernetes Service (AKS) についてよく寄せられる質問 – ノード リソース グループ内の AKS リソースのタグや他のプロパティを変更できますか?

AKS の価格と SLA

AKS は上述のとおりコントロール プレーンがマネージドで提供されています。このため、コントロール プレーンは基本無料で利用することが可能です。ただし、実際に Pod を稼働させる AKS ノードとして利用する VM などの IaaS リソースについては使った分だけ課金が発生します。

マネージド サービスの部分は無料で利用できますが、その分 SLA は設定されていません。Azure の SLA は返金による対応のため、無料サービスの場合は SLA を下回っても返すものがないからですね。無料の AKS クラスターでも SLO として 99.5% の稼働率が設定されています。

価格 – Container Service | Microsoft Azure

本番サービスなど大規模な環境で利用する場合にはアップタイム SLA を適用することで最大 99.95% のSLA を享受できます。アップタイム SLA は AKS クラスターごとに設定可能で、利用負荷に応じてコントロール プレーンのリソースもスケールするようになります。

Azure Kubernetes Service (AKS) とアップタイム SLA – Azure Kubernetes Service | Microsoft Docs

AKS の特徴

AKS は Azure で提供されるサービスのため、他の Azure サービスとの連携もしやすくなっています。AKS と連携できる主な Azure サービスは次のようなものです。

  • Azure AD
  • Azure Container Registry
  • Azure Files
  • Azure Managed Disks
  • Azure Application Gateway
  • Azure Monitor
  • Azure Key Vault

AKS は Kubernetes のラップ サービスなので、対応する Kubernetes バージョンであれば OSS のソリューションも利用できます。Azure で提供されるサービス同士ならばドキュメントが揃っていることと、サポートで困ったことを支援してもらえるのが良い点です。

AKS まとめ

AKS は Azure で利用できるマネージド Kubernetes サービスです。共同責任の範囲を理解することで利便性の高い Kubernetes を活用できます。Azure サービスとの連携も可能なため、Azure をフル活用してクラウド ネイティブなインフラを構築できます。

コメント

タイトルとURLをコピーしました