クラスター拡張機能

Helm チャートにより、最も複雑な Kubernetes アプリケーションでも、そのアプリケーションを定義、インストール、アップグレードするために必要な構成要素を提供することで管理できます。 クラスター拡張機能は、Kubernetes クラスター上のさまざまな Azure 機能のインストールとライフサイクル管理のための Azure Resource Manager 主導のエクスペリエンスを提供することによって、Helm のパッケージング コンポーネントの上に構築されます。

クラスターのオペレーターまたは管理者は、クラスター拡張機能を使用して、次のことを行うことができます。

  • Kubernetes クラスターにキー管理、データ、アプリケーション オファリングをインストールして管理します。
  • Azure Policy を使用して、環境内のすべてのクラスターへのクラスター拡張機能の大規模なデプロイを自動化します。
  • 各拡張機能のリリース トレーニング (プレビューや安定版など) をサブスクライブします。
  • 拡張機能の自動アップグレードを設定するか、特定のバージョンにピン留めし、バージョンを手動でアップグレードします。
  • 拡張機能のプロパティを更新するか、拡張機能インスタンスを削除します。

現在サポートされているすべての拡張機能のリストについては、「Azure Arc 対応 Kubernetes クラスターで使用可能な拡張機能」を参照してください。

アーキテクチャ

Cluster extensions architecture

クラスター拡張機能インスタンスは、Azure Resource Manager で、(Microsoft.Kubernetes/connectedClusters によって表される) Azure Arc 対応 Kubernetes リソース上に拡張機能 Azure Resource Manager リソース (Microsoft.KubernetesConfiguration/extensions) として作成されます。 Azure Resource Manager での表現によって、特定のクラスター拡張機能が含まれる、または含まれないすべての Azure Arc 対応 Kubernetes リソースをチェックするポリシーを作成できます。 目的のプロパティ値を持つクラスター拡張機能がないクラスターを特定した後、Azure Policy を使用して、これらの非準拠リソースを修復できます。

クラスターで実行される config-agent により、Azure Arc 対応 Kubernetes リソースの新規または更新済み拡張機能リソースが追跡されます。 クラスターで実行されている extensions-manager エージェントは、インストールする必要がある拡張機能の種類を読み取り、関連付けられている Helm チャートを Azure Container Registry または Microsoft Container Registry からプルし、クラスターにインストールします。

クラスターで実行される config-agentextensions-manager の両方のコンポーネントにより、バージョンの更新と拡張機能インスタンスの削除が処理されます。 これらのエージェントは、クラスターのシステム割り当てマネージド ID を使用して、Azure サービスと安全に通信します。

Note

config-agent では、新しい拡張機能インスタンスまたは更新された拡張機能インスタンスが、Azure Arc 対応 Kubernetes クラスター上で確認されます。 拡張機能の目的の状態をクラスターにプルできるようにするために、エージェントには接続が必要です。 エージェントが Azure に接続できない場合、クラスターへの目的の状態の伝達が遅延します。

拡張機能の保護された構成設定は、Azure Arc 対応 Kubernetes サービスで最大 48 時間保存されます。 そのため、Azure で拡張機能リソースが作成された後、48 時間にわたってクラスターが切断されたままになっていると、拡張機能は Pending 状態から Failed 状態に変化します。 これを防ぐには、クラスターを定期的にオンラインにすることをお勧めします。

重要

現時点では、Azure Arc 対応 Kubernetes クラスター拡張機能は、Flux (GitOps) を除き、ARM64 ベースのクラスターではサポートされていません。 他のクラスター拡張機能をインストールして使用するには、クラスターにオペレーティング システムとアーキテクチャの種類 linux/amd64 の少なくとも 1 つのノードが必要です。

拡張機能のスコープ

各拡張機能の種類により、クラスターで動作するスコープが定義されます。 Arc 対応 Kubernetes クラスターでの拡張機能のインストールは、クラスター スコープまたは名前空間スコープのいずれかです。

クラスター スコープの拡張機能は、拡張機能の作成時に指定された release-namespace にインストールされます。 通常、クラスター スコープ拡張機能とそのコンポーネント (ポッド、オペレーター、カスタム リソース定義 (CRD) など) の 1 つのインスタンスのみが、クラスターのリリース名前空間にインストールされます。

名前空間スコープの拡張機能は、–namespace プロパティを使用して指定された特定の名前空間にインストールできます。 拡張機能は名前空間スコープでデプロイできるため、名前空間スコープの拡張機能とそのコンポーネントの複数のインスタンスをクラスター上で実行できます。 各拡張機能インスタンスには、デプロイ先の名前空間に対するアクセス許可があります。 上記のすべての拡張機能は、Kubernetes 上の Event Grid を除き、クラスター スコープです。

現在使用可能な拡張機能はすべて、Azure Arc 上の Azure API Management を除き、クラスター スコープです。

次のステップ