この記事では、 Helm Charts を使用して Azure Arc 対応 Kubernetes クラスター拡張機能を使用して Kubernetes アプリケーションを管理する方法について説明します。 Azure Arc 対応 Kubernetes のクラスター拡張機能機能には、最も複雑な Kubernetes アプリケーションを定義、インストール、アップグレードするために必要なすべての構成要素があります。
クラスター拡張機能は、Helm のパッケージ化コンポーネントに基づいています。 拡張機能を使用すると、Kubernetes クラスター上のさまざまな機能のインストールとライフサイクル管理に Azure Resource Manager 駆動型のエクスペリエンスを使用できるようになります。
クラスターオペレーターまたは管理者は、 クラスター拡張機能機能を使用して次のことができます 。
- Kubernetes クラスターにキー管理、データ、アプリケーション オファリングをインストールして管理します。
- Azure Policy を使用して、環境内のすべてのクラスターへのクラスター拡張機能の大規模なデプロイを自動化します。
- 各拡張機能のリリースサイクル(
Preview
やStable
など)を登録します。 - 拡張機能の自動アップグレードを設定するか、特定のバージョンをピン留めして、手動でバージョンをアップグレードすることができます。
- 拡張機能のプロパティを更新するか、拡張機能インスタンスを削除します。
幅広い Azure サービスとシナリオをサポートするために拡張機能を使用できます。 現在サポートされている拡張機能の一覧については、「 Azure Arc 対応 Kubernetes クラスターで使用できる拡張機能」を参照してください。
アーキテクチャ
アーキテクチャ図を高解像度でダウンロードするには、 Jumpstart Gem にアクセスしてください。
クラスター拡張機能インスタンスは、Azure Resource Manager で、(Microsoft.KubernetesConfiguration/extensions
によって表される) Azure Arc 対応 Kubernetes リソース上に拡張機能 Azure Resource Manager リソース (Microsoft.Kubernetes/connectedClusters
) として作成されます。
Azure Resource Manager でのこの表現を使用すると、すべての Azure Arc 対応 Kubernetes リソースで特定のクラスター拡張機能の有無を確認するポリシーを作成できます。 特定のプロパティ値を持つクラスター拡張機能がないクラスターを特定したら、Azure Policy を使用して非準拠リソースを修復できます。
クラスターで実行される config-agent
コンポーネントは、Azure Arc 対応 Kubernetes リソース上の新規および更新された拡張機能リソースを追跡します。 クラスターで実行されている extensions-manager
エージェントは、インストールする必要がある拡張機能の種類を読み取ります。 次に、関連付けられている Helm チャートを Azure Container Registry または Microsoft Container Registry からプルし、クラスターにインストールします。
クラスターで実行されている config-agent
コンポーネントと extensions-manager
コンポーネントの両方で、拡張機能インスタンスの更新、バージョンの更新、および拡張機能インスタンスの削除が処理されます。 これらのエージェントは、クラスターのシステム割り当てマネージド ID を使用して、Azure サービスと安全に通信します。
注
config-agent
では、新しい拡張機能インスタンスまたは更新された拡張機能インスタンスが、Azure Arc 対応 Kubernetes クラスター上で確認されます。 エージェントは、拡張機能の目的の状態をクラスターにプルするために接続が必要です。 エージェントが Azure に接続できない場合、クラスターへの目的の状態の伝達が遅れます。
拡張機能の保護された構成設定は、Azure Arc 対応 Kubernetes サービスで最大 48 時間保存されます。 その結果、Azure で拡張機能リソースが作成されてから 48 時間以内にクラスターが切断されたままの場合、拡張機能は Pending
状態から Failed
状態に変わります。 これを防ぐには、クラスターを定期的にオンラインにすることをお勧めします。
重要
現時点では、Azure Arc 対応 Kubernetes クラスター拡張機能は、 Flux (GitOps) と Microsoft Defender for Containers を除き、ARM64 ベースのクラスターではサポートされていません。 他のクラスター拡張機能をインストールして使用するには、クラスターにオペレーティング システムとアーキテクチャの種類 linux/amd64 のノードが少なくとも 1 つ必要です。
拡張機能のスコープ
各拡張機能の種類により、クラスターで動作するスコープが定義されます。 Arc 対応 Kubernetes クラスターでの拡張機能のインストールは、 クラスター スコープ または 名前空間スコープです。
拡張機能インスタンスを作成するときは、 release-namespace
としてインストールされる名前空間を指定します。 通常、クラスタースコープ拡張機能とそのコンポーネントのインスタンス (ポッド、オペレーター、カスタム リソース定義 (CRD) など) は、クラスターのリリース名前空間に 1 つだけインストールされます。
–namespace
プロパティを使用して、名前空間スコープの拡張機能を特定の名前空間にインストールできます。 拡張機能は名前空間スコープでデプロイできるため、名前空間スコープの拡張機能とそのコンポーネントの複数のインスタンスをクラスターで実行できます。 拡張機能の各インスタンスには、デプロイ先の名前空間に対するアクセス許可があります。 この記事で説明するすべての拡張機能は、Kubernetes 拡張機能の Event Grid を除き、クラスター スコープです。
現在使用可能なすべての拡張機能は、Azure Arc 上の Azure API Management を除き、クラスター スコープです。
関連コンテンツ
- クイック スタートを使用して 、Kubernetes クラスターを Azure Arc に接続します。
- Azure Arc 対応 Kubernetes クラスターにクラスター拡張機能をデプロイします。