在 Azure Monitor 中为 Kubernetes 监视启用专用链接

Azure 专用链接支持使用专用终结点访问虚拟网络中的 Azure 平台即服务 (PaaS) 资源。 Azure Monitor 专用链接范围 (AMPLS) 将专用终结点连接到一组 Azure Monitor 资源,以定义监视网络的边界。 本文介绍如何配置容器见解和托管的 Prometheus 以使用专用链接从 Azure Kubernetes 服务 (AKS) 群集引入数据。

注意

先决条件

  • 本文介绍如何将群集连接到现有的 Azure Monitor 专用链接范围 (AMPLS)。 按照配置专用链接中的指导创建 AMPLS。
  • Azure CLI 2.61.0 或更高版本。

托管的 Prometheus(Azure Monitor 工作区)

托管的 Prometheus 的数据存储在 Azure Monitor 工作区中,因此必须通过专用链接访问该工作区。

配置 DCE

托管的 Prometheus 数据引入的专用链接在存储数据的 Azure Monitor 工作区的数据收集终结点 (DCE) 上配置。 要标识与 Azure Monitor 工作区相关联的 DCE,请从 Azure 门户中的 Azure Monitor 工作区选择“数据收集终结点”

展示了 Azure Monitor 工作区数据收集端点页面的屏幕截图。

如果 AKS 群集与 Azure Monitor 工作区不在同一区域,则需要在 AKS 群集所在的同一区域中创建另一个 DCE。 在这种情况下,打开启用托管的 Prometheus 时创建的数据收集规则 (DCR)。 该 DCR 将命名为 MSProm-<clusterName>-<clusterRegion>。 群集将在“资源”页上列出。 在“数据收集终结点”下拉列表中,选择与 AKS 群集位于同一区域中的 DCE

展示了 Azure Monitor 工作区数据收集规则页面的屏幕截图。

从专用 AKS 群集引入

默认情况下,专用 AKS 群集可使用公共数据收集终结点通过公共网络将数据发送到托管的 Prometheus 和 Azure Monitor 工作区。

如果选择使用 Azure 防火墙来限制群集的流出量,可以实施以下其中一项:

  • 打开公共引入终结点的路径。 使用以下两个终结点更新路由表:
    • *.handler.control.monitor.azure.cn
    • *.ingest.monitor.azure.cn
  • 启用 Azure 防火墙以访问用于数据引入的 Azure Monitor 专用链接范围和 DCE。

使用以下步骤通过专用链接虚拟网络和 Azure Monitor 专用链接范围为 Kubernetes 群集设置远程写入。

  1. 创建 Azure 虚拟网络。
  2. 将本地群集配置为使用 VPN 网关或具有专用对等互连的 ExpressRoutes 连接到 Azure VNET。
  3. 创建 Azure Monitor 专用链接范围。
  4. 将 Azure Monitor 专用链接范围连接到本地群集使用的虚拟网络中的专用终结点。 此专用终结点用于访问 DCE。
  5. 从门户中的 Azure Monitor 工作区,在 Azure Monitor 工作区菜单中选择“数据收集终结点”
  6. 至少有一个 DCE 与你的工作区同名。 单击 DCE 可打开其详细信息。
  7. 选择 DCE 的“网络隔离”页。
  8. 单击“添加”并选择 Azure Monitor 专用链接范围。 传播设置需要几分钟。 完成后,专用 AKS 群集中的数据会通过专用链接引入 Azure Monitor 工作区。

容器见解(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 专用链接将群集连接到 Log Analytics 工作区来启用网络隔离,如果群集必须结合不使用托管标识身份验证。 这需要用到专用 AKS 群集

  1. 按照创建专用 Azure Kubernetes 服务群集中的指导创建专用 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 群集以及在其上运行的工作负荷的运行状况和资源利用率之后,请了解如何使用容器见解。