Azure Policy と Azure Monitor を使用して Azure Arc 対応 Kubernetes を管理する

完了

Azure Arc を使用すると、Azure Policy や Azure Monitor などのさまざまな Azure サービスを有効にすることで、管理が一元化および合理化されます。

このユニットでは、これらのサービスを使用して Azure Arc 対応 Kubernetes クラスターを管理および監視する方法について学習します。

Azure Policy

Azure Policy では、Kubernetes クラスターやそのコンポーネントなど、対象のリソースの種類のプロパティに基づく宣言型の規則が使用されます。 これらの規則によってポリシー定義が形成され、管理者は、リソース グループ、サブスクリプション、または管理グループに、ポリシーの割り当てを通じてそれを適用できます。

Kubernetes 用の Azure Policy

Kubernetes 用 Azure Policy により、企業がすべての Azure Arc 対応 Kubernetes クラスターに対して一貫したガバナンス ルールを適用し、組織の標準に準拠していないインスタンスを検出することができます。

Arc 対応 Kubernetes の Azure Policy 拡張機能では、次のアクションが実行されます。

  • 受付コントローラー ポッドがホストされている Kubernetes クラスターを対象とする Azure Policy の割り当てが定期的にチェックされます。
  • 受付コントローラー ポッドが制約を適用するポリシー定義が、カスタム リソースとしてクラスターにデプロイされます。
  • 監査とコンプライアンスのデータが Azure Policy に報告されます。これで、他の Azure または Azure Arc 対応のリソースと同様に、Azure portal を介して状態を確認できます。

Arc 対応 Kubernetes の組み込みポリシー定義

Azure Policy では、次のようなよく使用されるポリシー定義を含め、多くの組み込み定義が Azure Arc 対応 Kubernetes に提供されます。

ポリシー名 ポリシーの説明
Kubernetes クラスターで特権コンテナーを許可しない クラスターで特権コンテナーが作成できなくなります。
Kubernetes クラスターは HTTPS 経由でのみアクセス可能である必要がある イングレス接続に対して HTTPS が使用されるようにします。
Kubernetes クラスター サービスでは、許可された外部 IP のみ使用する必要がある 許可された外部 IP アドレスのみが使用されるようにします。
Kubernetes クラスター コンテナーの CPU およびメモリ リソースの制限は、指定された制限を超えないようにする必要がある コンテナーの CPU とメモリのリソース制限を適用します。
Kubernetes クラスター サービスでは、許可されているポートでのみリッスンする必要がある 許可されたポートだけがサービスでリッスンされるように制限します。
[Kubernetes クラスター コンテナーでは、許可されているイメージのみを使用する必要がある](https://portal.azure.com/#blade/Microsoft_Azure_Policy/PolicyDetailBlade/definitionId/%2Fproviders%2FMicrosoft.Authorization%2FpolicyDefinitions%2Ffebd0533-8e55-448f-b837-bd0e06f16469) コンテナーのデプロイに使用できるイメージを、信頼されたレジストリからのイメージのみに制限します。
[Kubernetes クラスター コンテナーでは、許可されている機能のみを使用する必要がある](https://portal.azure.com/#blade/Microsoft_Azure_Policy/PolicyDetailBlade/definitionId/%2Fproviders%2FMicrosoft.Authorization%2FpolicyDefinitions%2Fc26596ff-4d70-4e6a-9a30-c2506bd2f80c) 機能を制限してコンテナーの攻撃対象を減らします。
Kubernetes クラスターのポッドでは、承認されているホスト ネットワークとポート範囲のみを使用する必要がある ポッドのアクセスを、ホスト ネットワークと、クラスター内で許容されるホスト ポート範囲を制限します。

その他にも多くの組み込みポリシー定義があります。 すべてのポリシー定義を表示するには、Azure portal で [ポリシー] を検索して選択し、左側のメニューで [定義] を選択し、[カテゴリ] ドロップダウン リストで [Kubernetes] を選択します。

Kubernetes 用 Azure Policy を実装する

接続されたクラスターに Kubernetes 用 Azure Policy を実装するには、Azure Policy 拡張機能をインストールする必要があります。 Azure Arc 対応 Kubernetes の場合、プロセスは大まかに次のような手順で構成されます。

  1. Arc 対応 Kubernetes リソースを管理するためのアクセス許可を持つアカウントを使用して、Microsoft Entra テナントにサインインします。
  2. クラスターに Azure Policy 拡張機能インスタンスを作成します。
  3. Kubernetes 固有のポリシー定義のいずれかを使用して、ポリシー割り当てを作成します。

ポリシーの割り当てが作成されると、Azure Policy でコンプライアンスの確認が開始されます。

Azure Monitor

Azure Monitor は、包括的なクラウドベースの管理機能を、Azure だけでなくオンプレミスのデータセンターや Microsoft 以外のクラウド プロバイダーにも拡張します。 Monitor は、Azure サービス、Arc 対応リソース、オンプレミスのデータセンター、サードパーティーのクラウド リソースからメトリック、アクティビティと診断のログ、イベントを収集し、監視します。

Azure Monitor インターフェイスの機能は次のとおりです。

  • ダッシュボードとブック。
  • メトリックス エクスプローラーや Power BI などのツールを使用したメトリックの分析。
  • アラートによってトリガーされるアクションとアラート受信者を指定する共通のアクション グループ。

Azure Monitor Container Insights

Azure Monitor Container Insights では、Kubernetes 環境の状態に関する包括的な分析情報が提供され、運用の安定性とビジネス継続性を維持するのに役立ちます。 メトリックは、Azure Arc 対応 Kubernetes を含む Kubernetes 環境のコントローラー、ノード、コンテナーで収集されます。

Container Insights では次の機能が提供されます。

  • リソースのボトルネックの検出に役立つように、各クラスター ノードで実行されているコンテナーと、そのプロセッサーとメモリの平均使用率を特定します。
  • ポッドの全体的なパフォーマンスを追跡するのに役立つように、個々のポッドで実行されているコンテナーを特定します。
  • ホストで実行されていて、ポッドをサポートする標準プロセスとは関係のないワークロードの、リソース使用率を評価します。
  • 容量のニーズを評価し、クラスターが維持できる最大負荷を見積もるのに役立つように、平均負荷と最も高い負荷でクラスターの動作を比較します。
  • リソース使用率が許容されるしきい値を超えた場合、またはクラスターで正常性状態の変化が発生した場合に、事前に通知を受け取るようにアラートを構成します。

Azure Arc 対応 Kubernetes クラスターを監視する

Azure Monitor Container Insights は、Azure Monitor Agent for Linux のコンテナー化されたバージョンに依存します。 このエージェントは監視対象のクラスターで実行され、クラスター ノードとコンテナーからパフォーマンスのメトリックとログを収集します。 そのエージェントと Kubernetes Metrics API の直接的な相互作用により、収集されたデータは Azure にアップロードされます。

Azure Arc 対応 Kubernetes デプロイ用の Azure Monitor Container Insights を実装するプロセスは、次の大まかな手順で構成されています。

  1. Arc 対応 Kubernetes リソースを管理するためのアクセス許可を持つアカウントを使用して、Microsoft Entra テナントにサインインします。
  2. 使用する Log Analytics ワークスペースのワークスペース ID を特定します。
  3. Log Analytics ワークスペース ID を使用して、クラスターに Azure Monitor Container Insights 拡張機能インスタンスを作成します。