在 Azure 監視器中啟用 Kubernetes 監視的私人連結
Azure Private Link 可讓您使用私人端點,將 Azure 平台即服務 (PaaS) 資源存取至虛擬網路。 Azure 監視器私人連結範圍 (AMPLS) 會將私人端點連線至一組 Azure 監視器資源,以定義監視網路的界限。 本文說明如何設定容器深入解析和受控 Prometheus,以使用私人連結從Azure Kubernetes Service (AKS) 叢集擷取資料。
注意
- 如需如何設定私人連結以使用 Grafana 從 Azure 監視器工作區查詢資料的詳細資料,請參閱私下連線至資料來源。
- 如需如何使用活頁簿設定私人連結,以從 Azure 監視器工作區查詢資料的詳細資訊,請參閱針對受控 Prometheus 和 Azure 監視器工作區使用私人端點。
必要條件
- 本文說明如何將叢集連線到現有的 Azure 監視器私人連結範圍 (AMPLS)。 遵循設定私人連結中的指引建立 AMPLS。
- Azure CLI 2.61.0 版或更新版本。
受控 Prometheus (Azure 監視器工作區)
受控 Prometheus 的資料會儲存在 Azure 監視器工作區中,因此您必須將此工作區設為可透過私人連結存取。
設定 DCE
用於受控 Prometheus 資料擷取的私人連結是在儲存資料 Azure 監視器工作區的資料收集端點 (DCE) 上設定。 若要識別與您 Azure 監視器工作區相關聯的 DCE,請從 Azure 入口網站中的 Azure 監視器工作區選取 [資料收集端點]。
如果您的 AKS 叢集並非與 Azure 監視器工作區位於相同的區域中,則必須在與 AKS 叢集相同的區域中建立另一個 DCE。 在此情況下,開啟您在啟用受控 Prometheus 時所建立的資料收集規則 (DCR)。 此 DCR 將命名為 MSProm-<clusterName>-<clusterRegion>。 叢集將會列在 [資源] 頁面上。 在 [資料收集端點] 下拉式清單中,選取與 AKS 叢集相同區域中的 DCE。
從私人 AKS 叢集擷取
根據預設,私人 AKS 叢集可以使用公用資料收集端點,透過公用網路將資料傳送至受控 Prometheus 和 Azure 監視器工作區。
如果您選擇使用 Azure 防火牆來限制叢集的輸出,您可以實作下列其中一項:
- 開啟公用擷取端點的路徑。 使用下列兩個端點更新路由表:
*.handler.control.monitor.azure.com
*.ingest.monitor.azure.com
- 啟用 Azure 防火牆以存取用於資料擷取的 Azure 監視器 Private Link 範圍和 DCE。
遠端寫入的私人連結擷取
使用下列步驟設定透過私人連結虛擬網路和 Azure 監視器 Private Link 範圍來設定 Kubernetes 叢集的遠端寫入。
- 建立您的 Azure 虛擬網路。
- 設定內部部署叢集,以使用 VPN 閘道或具有私人對等互連的 ExpressRoutes 連線到 Azure VNET。
- 建立 Azure 監視器 Private Link 範圍。
- 將 Azure 監視器 Private Link 範圍連線到內部部署叢集所使用虛擬網路中的私人端點。 此私人端點可用來存取您的 DCE。
- 從入口網站中的 Azure 監視器工作區,從 [Azure 監視器] 工作區功能表中選取 [資料收集端點]。
- 您至少會有一個 DCE,其名稱會與您的工作區相同。 按一下 DCE 以開啟其詳細資料。
- 選取 DCE 的 [網路隔離] 頁面。
- 按一下 [新增],然後選取 [Azure 監視器私人連結範圍]。 設定需要幾分鐘的時間才能傳播。 完成後,來自私人 AKS 叢集的資料會透過私人連結擷取至您的 Azure 監視器工作區。
容器深入解析 (Log Analytics 工作區)
容器深入解析的資料會儲存在 Log Analytics 工作區中,因此您必須將此工作區設為可透過私人連結存取。
注意
本節說明如何使用 CLI 為容器深入解析啟用私人連結。 如需使用 ARM 範本的詳細資料,請參閱啟用容器深入解析,並記下參數 useAzureMonitorPrivateLinkScope
和 azureMonitorPrivateLinkScopeResourceId
。
使用受控識別驗證的叢集
具有預設 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"
使用舊版驗證的叢集
如果您的叢集未使用受控識別驗證,請使用下列程序透過使用 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