你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Kubernetes 服务通信管理器

Azure Kubernetes 服务(AKS)通信管理器使用 Azure 资源通知和 Azure Resource Graph 框架简化了所有 AKS 维护任务的通知。 借助此工具,你可以密切监视升级,因为它提供了有关事件触发器和结果的及时警报。 如果维护失败,它会通知你故障原因,减少与可观测性和跟进相关的操作麻烦。 可以按照以下步骤为利用维护时段的所有类型的自动升级设置通知。

先决条件

注释

设置通信管理器后,它会在维护开始前一周和维护开始前一天发送提前通知。 它还会在维护操作时及时发送警报。

设置通信管理器

  1. 转到资源,选择“ 监视”,选择“ 警报”,然后选择“ 警报规则”。

  2. “条件 ”选项卡上,选择 “信号名称”,选择“ 自定义日志搜索”。

    显示警报规则窗格中自定义日志搜索的屏幕截图。

  3. “搜索查询 ”框中,粘贴以下自定义查询之一,然后选择“ 查看+创建 ”按钮。

    以下查询适用于群集自动升级通知:

    | where type == "microsoft.containerservice/managedclusters/scheduledevents"
    | where id contains "/subscriptions/subid/resourcegroups/rgname/providers/Microsoft.ContainerService/managedClusters/clustername"
    | where properties has "eventStatus"
    | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
    | extend status = substring(status, 0, indexof(status, ",") - 1)
    | where status != ""
    | where properties has "eventDetails"
    | extend upgradeType = case(
                               properties has "K8sVersionUpgrade",
                               "K8sVersionUpgrade",
                               properties has "NodeOSUpgrade",
                               "NodeOSUpgrade",
                               status == "Completed" or status == "Failed",
                               case(
        properties has '"type":1',
        "K8sVersionUpgrade",
        properties has '"type":2',
        "NodeOSUpgrade",
        ""
    ),
                               ""
                           )
    | where properties has "lastUpdateTime"
    | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
    | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
    | extend eventTime = todatetime(tostring(eventTime))
    | where eventTime >= ago(2h)
    | where upgradeType == "K8sVersionUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties
    | order by eventTime asc
    

    以下查询适用于 Node OS 自动升级通知:

    | where type == "microsoft.containerservice/managedclusters/scheduledevents"
    | where id contains "/subscriptions/subid/resourcegroups/rgname/providers/Microsoft.ContainerService/managedClusters/clustername"
    | where properties has "eventStatus"
    | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
    | extend status = substring(status, 0, indexof(status, ",") - 1)
    | where status != ""
    | where properties has "eventDetails"
    | extend upgradeType = case(
                               properties has "K8sVersionUpgrade",
                               "K8sVersionUpgrade",
                               properties has "NodeOSUpgrade",
                               "NodeOSUpgrade",
                               status == "Completed" or status == "Failed",
                               case(
        properties has '"type":1',
        "K8sVersionUpgrade",
        properties has '"type":2',
        "NodeOSUpgrade",
        ""
    ),
                               ""
                           )
    | where properties has "lastUpdateTime"
    | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
    | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
    | extend eventTime = todatetime(tostring(eventTime))
    | where eventTime >= ago(2h)
    | where upgradeType == "K8sVersionUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties
    | order by eventTime asc
    
  4. 间隔应为 30 分钟,阈值应为 1。

  5. 确保存在具有正确电子邮件地址的作组,以便你能够接收通知。

  6. 确保将“读取”角色授予资源组以及日志搜索警报规则的托管标识订阅。

  7. 转到警报规则:“设置”>“标识”>“系统分配的托管标识”>“Azure 角色分配”>“添加角色分配”。

  8. 选择 “读取者 ”角色并将其分配给资源组。 为订阅重复“添加角色分配”

验证

若要升级群集,请等待自动升级程序启动。 然后,验证是否在配置为接收通知的电子邮件上及时收到通知。

检查 Azure Resource Graph 数据库中的计划通知记录。 每个计划的事件通知都应列为表中的一条记录 containerserviceeventresources

显示如何查找 Azure Resource Graph 的屏幕截图。