はじめに
こんばんは、ACS事業部の吉川です。
Microsoftの年次イベント Microsoft Build でのアップデートについて引き続きお届けしていきます。
我々ACS事業部の注力分野であるコンテナ系サービスのアップデートから、AKS Automatic にフォーカスを絞ってお届けします。
概要
Azure Kubernetes Service はマネージドな Kubernetes サービスですが、構築時の設定項目が多岐に渡る複雑なサービスです。
設定項目が多数ある=ユーザーが自身のニーズに合わせて自由に設定できる、という捉え方もできるわけですが、そうは言っても数多ある設定を理解して使用するのはやはり敷居が高いです。
その敷居の高さを解決するための策として、AKS Automatic が誕生したのだと思われます。
Microsoft自身もこれまで多くのサービスのプラットフォームとしてAKSを運用しており、その知見からのフィードバックとして、多くのワークロードにマッチし、かつ運用の手間を削減可能な設定を行ってくれるのが AKS Automatic ということのようです。
どんな設定がなされるのか
では、具体的にどういった設定でクラスターが構築されるのかという点については、以下のドキュメントに記載されています。
通常との差異をピックアップしてみましょう。
監視・モニタリング
- マネージド Prometheus の有効化
- マネージド Grafana の有効化
- Container Insights の有効化
ノード・クラスター管理
- ノードの自動プロビジョニング の有効化
- HPA/VPA/KEDA による Pod スケーリングの有効化
- Standard Tier (SLAあり) を採用
- ノード VM の OS に Azure Linux を採用
- クラスター自動アップグレードの有効化 (stable チャネル)
セキュリティ
- Azure RBAC を採用
- APIサーバーのVNet統合
- イメージクリーナー の有効化
- Azure Policyとデプロイ セーフガード の有効化
ネットワーク
- Azure CNI Powered by Cilium を採用
- Ingressコントローラーとして アプリケーション ルーティング アドオン を採用
- AKS マネージド NAT Gateway を利用したアウトバウンド通信
上記の設定を見て思うこと
この AKS Automatic 自体がまだパブリックプレビューの状態であり、その中で有効化される設定のいくつかもまだプレビューのものが含まれています。
また、モニタリング周りのサービスやNAT Gatewayなど、追加コストが必要になるサービスも複数組み合わされています。
それらの点から考えると、現状ではAKS Automaticをそのままプロダクション環境で利用するのは難しいという感想です。
一方、本記事の冒頭でも触れたように、この設定はMicrosoftのベストプラクティスが詰まったものであるはずです。
これらの設定が推奨値であることを理解したうえで、求める要件やコストに合わせ変えていく、設定における一つの指針としては役立つだろうと思われます。
個人的には Cilium を採用しているという点に少し驚きました。比較的近年対応が開始されたCNIで、Microsoft としてどこまで力を入れていくのか読めないと思っていたのですが、AKS Automatic で採用されているということから Microsoft としても継続してサポートしていくのであろうということが推測できます。
また、AKSクラスターのバージョンアップも自動アップグレードが選択されています。先日 とあるイベント で AKS のアップグレードについて語り合ってきたのですが、Kubernetes自体がある程度成熟してきているところもあり、個人的にはそろそろ自動アップグレードを本格的に使っていってもよいだろうと考えています。AKS Automatic でも有効化されていることからも、その考えをますます強く持てそうです。
AKS Automatic の使い方
現状ではポータルからは設定できないようです。
Azure CLIで作成するのがよいでしょう。
# Azure CLI の最新化 az upgrade # aks-preview拡張機能のインストール az extension add --name aks-preview # aks-preview拡張機能を既にインストール済の場合はアップデートしておく az extension update --name aks-preview # サブスクリプションに対する Feature flags の登録 az feature register --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview # 次のコマンドの出力結果が「Registered」に変わることを確認する az feature show --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview --query properties.state az feature show --namespace Microsoft.ContainerService --name NRGLockdownPreview --query properties.state az feature show --namespace Microsoft.ContainerService --name SafeguardsPreview --query properties.state az feature show --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview --query properties.state az feature show --namespace Microsoft.ContainerService --name DisableSSHPreview --query properties.state az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview --query properties.state # リソースプロバイダーの再登録 az provider register --namespace Microsoft.ContainerService # リソースグループ作成 az group create --name rg-build2024 --location japaneast # --sku automatic オプションを付け AKS クラスターを作成する az aks create --resource-group rg-build2024 \ --name myAKSAutomaticCluster --sku automatic
ドキュメントにはポータルからの作成方法も紹介されているので、間もなくロールアウトされるものと思われます。環境によっては既に利用可能化もしれませんね。
learn.microsoft.com
まとめ
AKSクラスターをベストプラクティスな構成で作成してくれる AKS Automatic の紹介でした。
推奨とはいえ、ベストプラクティスはユースケースに応じて変わってきます。設定値は参考にしつつ、うまくカスタマイズしていきましょう。
【PR】
私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。
一緒に働いていただける仲間も募集中です!
まだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。
我々の事業部のCultureDeckはコチラ。