分享方式:


在 Azure 監視器中啟用 Kubernetes 監視的私人連結

Azure Private Link 可讓您使用私人端點,將 Azure 平台即服務 (PaaS) 資源存取至虛擬網路。 Azure 監視器私人連結範圍 (AMPLS) 會將私人端點連線至一組 Azure 監視器資源,以定義監視網路的界限。 本文說明如何設定容器深入解析和受控 Prometheus,以使用私人連結從Azure Kubernetes Service (AKS) 叢集擷取資料。

注意

必要條件

  • 本文說明如何將叢集連線到現有的 Azure 監視器私人連結範圍 (AMPLS)。 遵循設定私人連結中的指引建立 AMPLS。
  • Azure CLI 2.61.0 版或更新版本。

受控 Prometheus (Azure 監視器工作區)

受控 Prometheus 的資料會儲存在 Azure 監視器工作區中,因此您必須將此工作區設為可透過私人連結存取。

設定 DCE

用於受控 Prometheus 資料擷取的私人連結是在儲存資料 Azure 監視器工作區的資料收集端點 (DCE) 上設定。 若要識別與您 Azure 監視器工作區相關聯的 DCE,請從 Azure 入口網站中的 Azure 監視器工作區選取 [資料收集端點]

螢幕擷取畫面顯示 Azure 監視器工作區的資料收集端點頁面。

如果您的 AKS 叢集並非與 Azure 監視器工作區位於相同的區域中,則必須在與 AKS 叢集相同的區域中建立另一個 DCE。 在此情況下,開啟您在啟用受控 Prometheus 時所建立的資料收集規則 (DCR)。 此 DCR 將命名為 MSProm-<clusterName>-<clusterRegion>。 叢集將會列在 [資源] 頁面上。 在 [資料收集端點] 下拉式清單中,選取與 AKS 叢集相同區域中的 DCE。

螢幕擷取畫面顯示 Azure 監視器工作區的資料收集規則頁面。

從私人 AKS 叢集擷取

根據預設,私人 AKS 叢集可以使用公用資料收集端點,透過公用網路將資料傳送至受控 Prometheus 和 Azure 監視器工作區。

如果您選擇使用 Azure 防火牆來限制叢集的輸出,您可以實作下列其中一項:

  • 開啟公用擷取端點的路徑。 使用下列兩個端點更新路由表:
    • *.handler.control.monitor.azure.com
    • *.ingest.monitor.azure.com
  • 啟用 Azure 防火牆以存取用於資料擷取的 Azure 監視器 Private Link 範圍和 DCE。

使用下列步驟設定透過私人連結虛擬網路和 Azure 監視器 Private Link 範圍來設定 Kubernetes 叢集的遠端寫入。

  1. 建立您的 Azure 虛擬網路。
  2. 設定內部部署叢集,以使用 VPN 閘道或具有私人對等互連的 ExpressRoutes 連線到 Azure VNET。
  3. 建立 Azure 監視器 Private Link 範圍。
  4. 將 Azure 監視器 Private Link 範圍連線到內部部署叢集所使用虛擬網路中的私人端點。 此私人端點可用來存取您的 DCE。
  5. 從入口網站中的 Azure 監視器工作區,從 [Azure 監視器] 工作區功能表中選取 [資料收集端點]
  6. 您至少會有一個 DCE,其名稱會與您的工作區相同。 按一下 DCE 以開啟其詳細資料。
  7. 選取 DCE 的 [網路隔離] 頁面。
  8. 按一下 [新增],然後選取 [Azure 監視器私人連結範圍]。 設定需要幾分鐘的時間才能傳播。 完成後,來自私人 AKS 叢集的資料會透過私人連結擷取至您的 Azure 監視器工作區。

容器深入解析 (Log Analytics 工作區)

容器深入解析的資料會儲存在 Log Analytics 工作區中,因此您必須將此工作區設為可透過私人連結存取。

注意

本節說明如何使用 CLI 為容器深入解析啟用私人連結。 如需使用 ARM 範本的詳細資料,請參閱啟用容器深入解析,並記下參數 useAzureMonitorPrivateLinkScopeazureMonitorPrivateLinkScopeResourceId

使用受控識別驗證的叢集

具有預設 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 叢集

  1. 遵循建立私人 Azure Kubernetes Service 叢集中的指引,建立私人 AKS 叢集。

  2. 在您的 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
    
  3. 依照設定您的私人連結中的指示來設定私人連結。 將擷取存取權設定為公用,然後在建立私人端點之後、在啟用監視之前設定為私人。 私人連結資源區域必須與 AKS 叢集區域相同。

  4. 針對 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 叢集及其上所執行工作負載的健康情況和資源使用率後,請了解如何使用容器深入解析。