Azure Kubernetes Service のサポート ポリシー

この記事では、Azure Kubernetes Service (AKS) のテクニカル サポート ポリシーと制限事項を説明します。 また、エージェント ノードの管理、マネージド コントロール プレーン コンポーネント、サード パーティ製オープン ソース コンポーネント、セキュリティまたは修正プログラムの管理についても説明します。

サービスの更新とリリース

AKS のマネージド機能

コンピューティング コンポーネントやネットワーク コンポーネントなどの基本的な IaaS (サービスとしてのインフラストラクチャ) クラウド コンポーネントは、低レベルの制御とカスタマイズのオプションにユーザーがアクセスできるようにします。 これに対し、AKS では、クラスターに必要な構成と機能の共通セットをユーザーに提供する、ターンキー Kubernetes のデプロイが提供されます。 AKS ユーザーの場合、カスタマイズとデプロイのオプションが制限されています。 その代わり、Kubernetes クラスターを心配したり、直接管理したりする必要はありません。

AKS があれば、ユーザーはフル マネージドの "コントロール プレーン" を入手できます。 このコントロール プレーンには、Kubernetes クラスターを操作してエンド ユーザーに提供するために必要なすべてのコンポーネントとサービスが含まれています。 Microsoft では、すべての Kubernetes コンポーネントを管理して運用しています。

Microsoft は、コントロール プレーンを通して次のコンポーネントを管理および監視します。

  • Kubelet または Kubernetes API サーバー
  • サービスの品質 (QoS)、スケーラビリティ、およびランタイムを提供する、etcd またはそれと互換性のあるキーと値ストア
  • DNS サービス (kube-dns や CoreDNS など)
  • Kubernetes プロキシまたはネットワーク (BYOCNI が使用されている場合は除く)
  • kube-system 名前空間で実行されているその他のアドオンまたはシステム コンポーネント

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

マネージド サービスとは、Microsoft と AKS チームがデプロイと運用を行い、可用性と機能に対して責任を負うことを意味します。 これらのマネージド コンポーネントをお客様が変更することはできません。 Microsoft では、一貫したスケーラブルなユーザー エクスペリエンスを確保するためにカスタマイズを制限しています。

Shared responsibility

クラスターが作成されると、ユーザーは AKS で作成する Kubernetes エージェント ノードを定義します。 ユーザーのワークロードは、これらのノードで実行されます。

ユーザーのエージェント ノードではプライベート コードが実行され、機密データが格納されるため、Microsoft サポートはこれらのノードへのアクセスを制限されています。 Microsoft サポートは、ユーザーによる明確な許可または支援なしに、これらのノードにサインインしたり、これらのノードでコマンドを実行したり、これらのノードのログを表示することができません。

いずれかの IaaS API を使用してエージェント ノードに直接変更を加えると、クラスターがサポートできない状態になります。 エージェント ノードに適用されたすべての変更は、Daemon Sets など kubernetes ネイティブのメカニズムを使用して行う必要があります。

同様に、あらゆるメタデータ (タグやラベルなど) をクラスターやノードに追加できますが、システムによって作成されたメタデータを変更するとクラスターがサポートできない状態になります。

AKS のサポート範囲

Microsoft は、以下の例に関するテクニカル サポートを提供します。

  • API サーバーなど、Kubernetes Service によって提供およびサポートされるすべての Kubernetes コンポーネントへの接続。
  • Kubernetes コントロール プレーン サービスの管理、アップタイム、QoS、操作 (Kubernetes コントロール プレーン、API サーバー、etcd、coreDNS など)。
  • etcd データ ストア。 サポートには、障害計画とクラスターの状態復元のために 30 分ごとに行われる etcd のすべてのデータの自動的で透過的なバックアップが含まれます。 ユーザーはこれらのバックアップを直接は使用できません。 これらにより、データの信頼性と一貫性が確保されます。 オン デマンドのロールバックや復元は、機能としてサポートされていません。
  • Kubernetes 用の Azure クラウド プロバイダー ドライバー内のすべての統合ポイント。 これらには、ロード バランサー、永続ボリューム、ネットワーク (Kubernetes や Azure CNI。BYOCNI が使用されている場合は除く) などの他の Azure サービスへの統合が含まれます。
  • Kubernetes API サーバー、etcd、coreDNS などのコントロール プレーン コンポーネントのカスタマイズに関する質問または問題。
  • BYOCNI が使用されている場合を除く、Azure CNI、Kubenet、他のネットワーク アクセスなどのネットワークに関する問題、および機能の問題。 問題には、DNS 解決、パケット損失、ルーティングなどが含まれる可能性があります。 Microsoft では、次のさまざまなネットワーク シナリオをサポートしています。
    • マネージド VNET を使用した、またはカスタムの (独自のものを使用した) サブネットによる Kubenet および Azure CNI。
    • その他の Azure サービスおよびアプリケーションへの接続
    • イングレス コントローラーとイングレスまたはロード バランサーの構成
    • ネットワーク パフォーマンスと待機時間
    • ネットワーク ポリシー

注意

Microsoft/AKS によって実行されるすべてのクラスター アクションは、ユーザーの同意を得たうえで、組み込みの Kubernetes ロール aks-service と組み込みのロール バインド aks-service-rolebinding に基づいて行われます。 このロールにより、AKS はクラスターの問題のトラブルシューティングや診断を行うことができますが、アクセス許可の変更や、ロールやロール バインドの作成など、高い特権を必要とする操作を行うことはできません。 ロールによるアクセスは、アクティブなサポート チケットで Just-In-Time (JIT) アクセスを使用する場合にのみ有効になります。

Microsoft では、次のシナリオに関するテクニカル サポートは提供していません。

  • Kubernetes の使用方法に関する質問。 たとえば、Microsoft サポートでは、カスタムのイングレス コント ローラーの作成方法、アプリケーションのワークロードの使用方法、サード パーティまたはオープン ソースのソフトウェア パッケージやツールの適用方法に対するアドバイスは提供していません。

    Note

    Microsoft サポートでは、AKS クラスターの機能、カスタマイズ、およびチューニング (Kubernetes 操作の問題や手順など) に対するアドバイスは提供できます。

  • Kubernetes コントロール プレーンの一部として提供されない、または AKS クラスターと共にデプロイされない、サード パーティのオープン ソース プロジェクト。 これらのプロジェクトには、Istio、Helm、Envoy などが含まれる場合があります。

    Note

    Microsoft では、Helm などのサード パーティのオープン ソース プロジェクトに対してベスト エフォートのサポートを提供できます。 サード パーティのオープン ソース ツールが Kubernetes の Azure クラウド プロバイダーまたは他の AKS 固有のバグと統合される場合、Microsoft では、Microsoft ドキュメントからの例やアプリケーションをサポートします。

  • サード パーティのクローズド ソース ソフトウェア。 このソフトウェアには、セキュリティ スキャン ツール、およびネットワーク デバイスまたはソフトウェアが含まれる場合があります。

  • AKS ドキュメントに記載されている以外のネットワークのカスタマイズ。

  • BYOCNI モードで使用されるカスタムまたはサードパーティ製 CNI プラグイン。

  • スタンバイかつプロアクティブなシナリオ。 Microsoft サポートは、アクティブな問題をタイムリーかつ専門的な方法で解決するために役立つリアクティブなサポートを提供します。 ただし、運用上のリスクの排除、可用性の向上、パフォーマンスの最適化に役立つスタンバイまたはプロアクティブなサポートは、カバレッジに含まれません。 対象となるお客様は、アカウント チームに連絡して、Azure Event Management サービスの指定を受けることができます。 これは、Microsoft サポート エンジニアによって提供される有料サービスであり、イベント中のプロアクティブなソリューション リスク評価とカバレッジが含まれます。

エージェント ノードに対する AKS のサポート範囲

AKS エージェント ノードに対する Microsoft の責任

Microsoft とユーザーは、次の場合に Kubernetes エージェント ノードに対する責任を共有します。

  • 基本 OS イメージに、必要な追加機能 (監視エージェントやネットワーク エージェントなど) がある。
  • エージェント ノードが OS 修正プログラムを自動的に受信する。
  • エージェント ノード上で実行される Kubernetes コントロール プレーン コンポーネントに関する問題が自動修復される。 コンポーネントには、以下のものが含まれます。
    • Kube-proxy
    • Kubernetes マスター コンポーネントへの通信パスを提供するネットワーク トンネル
    • Kubelet
    • containerd

注意

エージェント ノードが動作していない場合、AKS は個々のコンポーネントまたはエージェント ノード全体を再起動する可能性があります。 こうした再起動操作は自動化されており、これにより一般的な問題の自動修復機能が提供されます。 自動修復メカニズムの詳細については、「ノードの自動修復」を参照してください

AKS エージェント ノードに対するお客様の責任

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

同様に、AKS は kubernetes の新しいパッチとマイナー バージョンを定期的にリリースしています。 これらの更新プログラムには、Kubernetes に対するセキュリティまたは機能の強化が含まれていることがあります。 クラスターの kubernetes バージョンを最新の状態に保ち、AKS Kubernetes のサポート バージョン ポリシーに従う責任はユーザーが担います。

エージェント ノードのユーザー カスタマイズ

Note

AKS エージェント ノードは、Azure portal で標準の Azure IaaS リソースとして表示されます。 しかし、これらの仮想マシンはカスタムの Azure リソース グループ (先頭に MC_* が付加されている) にデプロイされます。 IaaS の API またはリソースを使用して、ベース OS イメージの変更やこれらのノードの直接カスタマイズはできません。 AKS の API 経由以外で行われたすべてのカスタム変更は、アップグレード、スケーリング、更新、または再起動後には保持されません。 また、CustomScriptExtension のようなノードの拡張子に変更を加えると、予期しない動作が発生する可能性があるため、禁止する必要があります。 Microsoft サポートが変更を指示しない限り、エージェント ノードへの変更を実行しないでください。

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

ワークロード固有の構成またはパッケージの場合、AKS では Kubernetes daemon sets を使用することをお勧めします。

Kubernetes の特権 daemon sets と init コンテナーを使用すると、クラスターのエージェント ノードでサード パーティ製ソフトウェアを調整/変更、またはクラスターのエージェント ノードにインストールできます。 このようなカスタマイズの例としては、カスタム セキュリティ スキャン ソフトウェアの追加や、sysctl 設定の更新などがあります。

この方法は上記の要件が適用される場合に推奨されますが、カスタムでデプロイした daemon set が原因でノードが使用できなくなった場合、AKS のエンジニアリングとサポートは変更のトラブルシューティングや診断には利用できません。

セキュリティの問題と修正プログラムの適用

AKS のマネージド コンポーネント 1 つ以上でセキュリティ上の欠陥が見つかった場合、AKS チームは問題を軽減するために、修正プログラムを影響を受けるすべてのクラスターに適用します。 または、AKS チームからアップグレード ガイダンスが提供されます。

セキュリティ上の欠陥によって影響を受けるエージェント ノードについて、Microsoft は影響に関する詳細と、セキュリティの問題を修正または軽減するためのステップをユーザーに通知します。

ノードのメンテナンスとアクセス

ユーザーはエージェント ノードにサインインして変更を加えることができますが、変更によってクラスターがサポートできない状態になる可能性があるため、この操作はお勧めできません。

ネットワーク ポート、アクセス、NSG

NSG のカスタマイズは、カスタム サブネット上でのみ行うことができます。 マネージド サブネット上またはエージェント ノードの NIC レベルで NSG をカスタマイズすることはできません。 AKS では、エグレスを制御し必要な接続を確保するために、特定のエンドポイントへのエグレス要件があります。エグレス トラフィックの制限に関する記事を参照してください。 イングレスの場合、要件は、クラスターにデプロイしたアプリケーションに基づきます。

停止された、割り当て解除された、または準備ができていないノード

AKS ワークロードを継続的に実行不要な場合は、すべてのノードプールとコントロール プレーンを停止する AKS クラスターを停止します。 必要に応じて再開できます。 az aks stop コマンドを使用してクラスターを停止した場合、クラスターの状態は最長 12 か月間保持されます。 12 か月後、クラスターの状態とそのすべてのリソースが削除されます。

すべてのクラスター ノードを IaaS の API、Azure CLI、または Azure portal から手動で割り当て解除することは、AKS クラスターまたはノードプールを停止するためにはサポートされていません。 クラスターはサポート対象外と見なされ、30 日後に AKS によって停止されます。 その後、クラスターは正しく停止されるクラスターと同じ 12 か月の保持ポリシーの対象になります。

準備完了ノードがない (またはすべて準備できていない) クラスターや実行中の VM がないクラスターは、30 日後に停止されます。

AKS は、30 日以上の延長期間について、サポート ガイドラインを超えて構成されているコントロール プレーンをアーカイブする権利を留保します。 AKS では、クラスターの etcd メタデータのバックアップが保持され、クラスターを簡単に再割り当てすることができます。 この再割り当ては、クラスターをサポートに戻す任意の PUT 操作 (アクティブなエージェント ノードへのアップグレードやスケーリングなど) によって開始できます。

一時停止されたサブスクリプション内のすべてのクラスターは直ちに停止され、90 日後に削除されます。 削除されたサブスクリプション内のすべてのクラスターは直ちに削除されます。

非サポートのアルファとベータの Kubernetes 機能

AKS では、アップストリームの Kubernetes プロジェクト内の安定したベータの機能のみがサポートされます。 文書化されていない限り、AKS では、アップストリームの Kubernetes プロジェクトで使用できるアルファの機能がサポートされていません。

プレビュー機能または機能フラグ

拡張テストとユーザー フィードバックを必要とする機能の場合、Microsoft では、新しいプレビュー機能または機能フラグの背後にある機能をリリースします。 これらの機能は、プレリリースまたはベータ機能としてお考えください。

プレビュー機能または機能フラグは、運用環境向けではありません。 API と動作の継続的な変更、バグの修正、その他の変更により、クラスターが不安定になったり、ダウンタイムが生じたりする可能性があります。

パブリック プレビューの機能はベスト エフォート サポートに該当します。これらの機能はプレビュー段階であり、運用環境向けではありません。 AKS テクニカル サポート チームは、営業時間中にのみサポートを提供します。 詳細については、「Azure サポートに関する FAQ」を参照してください。

アップストリームのバグと問題

アップストリームの Kubernetes プロジェクトにおける開発速度では、バグが必ず発生します。 これらのバグの一部には、修正プログラムを適用できず、AKS システム内で回避できないものがあります。 代わりに、バグの修正では、アップストリームのプロジェクト (Kubernetes、ノードまたはエージェントのオペレーティング システム、カーネルなど) に対する大規模な修正プログラムが必要になります。 Microsoft が所有するコンポーネント (Azure クラウド プロバイダーなど) については、AKS と Azure の担当者がコミュニティのアップストリームで問題の修正に努めます。

テクニカル サポートの問題に対する根本原因が 1 つ以上のアップストリームのバグである場合、AKS のサポート チームとエンジニアリング チームは次のことを行います。

  • アップストリームのバグを特定し、その問題がお客様のクラスターやワークロードに影響する理由を説明するのに役立つサポートの詳細にリンクします。 お客様は、問題を監視し、新しいリリースで修正プログラムがいつ提供されるかを確認できるよう、必要なリポジトリへのリンクを受け取ります。

  • 潜在的な回避策または軽減策を提供します。 問題を軽減できる場合は、既知の問題が AKS リポジトリに記録されます。 既知の問題の記録には、次の内容が示されます。

    • アップストリームのバグへのリンクを含む問題
    • 回避策、および解決策のアップグレードやその他の永続化に関する詳細情報
    • アップストリームのリリース周期に基づく、問題の組み込みの大まかなタイムライン