Azure Monitor で Kubernetes 監視用のプライベート リンクを有効にする
Azure Private Link を使用すると、プライベート エンドポイントを使用して仮想ネットワークから Azure PaaS (サービスとしてのプラットフォーム) リソースにアクセスすることができます。 Azure Monitor Private Link スコープ (AMPLS) は、監視ネットワークの境界を定義する Azure Monitor リソースのセットにプライベート エンドポイントを接続します。 この記事では、Azure Kubernetes Service (AKS) クラスターからのデータ インジェストにプライベート リンクを使用するように Container insights と Managed Prometheus を構成する方法について説明します。
Note
- Grafana を使って Azure Monitor ワークスペースのデータに対してクエリを実行するためにプライベート リンクを構成する方法について詳しくは、「データ ソースにプライベートに接続する」を参照してください。
- Workbooks を使って Azure Monitor ワークスペースのデータに対してクエリを実行するためにプライベート リンクを構成する方法について詳しくは、「マネージド Prometheus と Azure Monitor ワークスペースにプライベート エンドポイントを使用する」を参照してください。
前提条件
- この記事では、クラスターを既存の Azure Monitor Private Link スコープ (AMPLS) に接続する方法について説明します。 「プライベート リンクを構成する」のガイダンスに従って、AMPLS を作成します。
- Azure CLI バージョン 2.61.0 以上。
マネージド Prometheus (Azure Monitor ワークスペース)
マネージド Prometheus のデータは Azure Monitor ワークスペースに格納されるため、プライベート リンク経由でこのワークスペースにアクセスできるようにする必要があります。
DCE を構成する
マネージド Prometheus のデータ インジェスト用のプライベート リンクは、データを格納する Azure Monitor ワークスペースのデータ収集エンドポイント (DCE) に構成されます。 Azure Monitor ワークスペースに関連付けられている DCE を識別するには、Azure portal の Azure Monitor ワークスペースから [データ収集エンドポイント] を選択します。
AKS クラスターが Azure Monitor ワークスペースと同じリージョンにない場合は、AKS クラスターと同じリージョン内に別の DCE を作成する必要があります。 この場合は、マネージド Prometheus を有効にしたときに作成されたデータ収集ルール (DCR) を開きます。 この DCR には、MSProm-<clusterName>-<clusterRegion> という名前が付けられます。 このクラスターは、[リソース] ページに一覧表示されます。 [データ収集エンドポイント] のドロップダウンで、AKS クラスターと同じリージョン内の DCE を選択します。
プライベート AKS クラスターからのインジェスト
既定では、プライベート AKS クラスターは、パブリック データ収集エンドポイントを使用して、パブリック ネットワーク経由でマネージド Prometheus と Azure Monitor ワークスペースにデータを送信できます。
Azure Firewall を使用してクラスターからのエグレスを制限する場合は、次のいずれかを実装できます。
- パブリック インジェスト エンドポイントへのパスを開きます。 ルーティング テーブルを次の 2 つのエンドポイントで更新します。
*.handler.control.monitor.azure.com
*.ingest.monitor.azure.com
- データ インジェストに使用される Azure Monitor Private Link スコープと DCE にアクセスできるように Azure Firewall を設定します。
リモート書き込み用のプライベート リンク インジェスト
次の手順を使用して、プライベート リンク仮想ネットワークと Azure Monitor Private Link スコープを介して Kubernetes クラスターのリモート書き込みを設定します。
- Azure 仮想ネットワークを作成します。
- VPN ゲートウェイ、またはプライベート ピアリングを使用した ExpressRoute を使用して Azure VNET に接続するようにオンプレミス クラスターを構成します。
- Azure Monitor Private Link スコープを作成します。
- Azure Monitor Private Link スコープを、オンプレミス クラスターで使用される仮想ネットワーク内のプライベート エンドポイントに接続します。 このプライベート エンドポイントは、DCE にアクセスするために使用されます。
- ポータルの Azure Monitor ワークスペースで、Azure Monitor ワークスペース メニューから [データ収集エンドポイント] を選択します。
- ワークスペースと同じ名前の DCE が少なくとも 1 つあります。 DCE をクリックして詳細を開きます。
- DCE の [ネットワークの分離] ページを選択します。
- [追加] をクリックし、お使いの Azure Monitor Private Link スコープを選択します。 設定が反映されるまで数分かかります。 完了すると、プライベート AKS クラスターからのデータがプライベート リンク経由で Azure Monitor ワークスペースに取り込まれます。
Container insights (Log Analytics ワークスペース)
Container insights のデータは Log Analytics ワークスペースに格納されるため、プライベート リンク経由でこのワークスペースにアクセスできるようにする必要があります。
Note
このセクションでは、CLI を使用して Container insights のプライベート リンクを有効にする方法について説明します。 ARM テンプレートの使用に関する詳細については、「コンテナー分析情報を有効にする」を参照し、パラメーター useAzureMonitorPrivateLinkScope
および azureMonitorPrivateLinkScopeResourceId
を確認してください。
マネージド ID 認証を使用するクラスター
既定の Log Analytics ワークスペースを持つ既存の AKS クラスター
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --ampls-resource-id "<azure-monitor-private-link-scope-resource-id>"
例:
az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace" --ampls-resource-id "/subscriptions/my-subscription /resourceGroups/my-resource-group/providers/microsoft.insights/privatelinkscopes/my-ampls-resource"
既存の Log Analytics ワークスペースを持つ既存の AKS クラスター
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --ampls-resource-id "<azure-monitor-private-link-scope-resource-id>"
例:
az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace" --ampls-resource-id "/subscriptions/my-subscription /resourceGroups/ my-resource-group/providers/microsoft.insights/privatelinkscopes/my-ampls-resource"
新しい AKS クラスター
az aks create --resource-group rgName --name clusterName --enable-addons monitoring --workspace-resource-id "workspaceResourceId" --ampls-resource-id "azure-monitor-private-link-scope-resource-id"
例:
az aks create --resource-group "my-resource-group" --name "my-cluster" --enable-addons monitoring --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace" --ampls-resource-id "/subscriptions/my-subscription /resourceGroups/ my-resource-group/providers/microsoft.insights/privatelinkscopes/my-ampls-resource"
レガシ認証を使用するクラスター
クラスターでマネージド ID 認証が使用されていない場合は、次の手順に従って、Azure Private Link を使用してクラスターを Log Analytics ワークスペースに接続して、ネットワークの分離を有効にしてください。 これにはプライベート AKS クラスターが必要です。
「プライベート Azure Kubernetes Service クラスターを作成する」のガイダンスに従って、プライベート AKS クラスターを作成します。
Log Analytics ワークスペースのパブリック インジェストを無効にします。
次のコマンドを使って、既存のワークスペースでのパブリック インジェストを無効にします。
az monitor log-analytics workspace update --resource-group <azureLogAnalyticsWorkspaceResourceGroup> --workspace-name <azureLogAnalyticsWorkspaceName> --ingestion-access Disabled
次のコマンドを使って、パブリック インジェストを無効にして新しいワークスペースを作成します。
az monitor log-analytics workspace create --resource-group <azureLogAnalyticsWorkspaceResourceGroup> --workspace-name <azureLogAnalyticsWorkspaceName> --ingestion-access Disabled
「プライベート リンクを構成する」の説明に従って、プライベート リンクを構成します。 インジェスト アクセスをパブリックに設定し、プライベート エンドポイントを作成した後、監視を有効にする前にプライベートに設定します。 プライベート リンク リソースのリージョンは、AKS クラスターのリージョンと同じである必要があります。
AKS クラスターの監視を有効にします。
az aks enable-addons -a monitoring --resource-group <AKSClusterResourceGorup> --name <AKSClusterName> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false
次のステップ
- ソリューションのオンボードを試みた際に問題が発生した場合は、トラブルシューティング ガイドを確認してください。
- AKS クラスターと実行中のワークロードの正常性とリソース使用率を収集するための監視を有効にしたうえで、Container insights を使用する方法について学習します。