你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Kubernetes 服务(AKS)通信管理器使用 Azure 资源通知和 Azure Resource Graph 框架简化了所有 AKS 维护任务的通知。 借助此工具,你可以密切监视升级,因为它提供了有关事件触发器和结果的及时警报。 如果维护失败,它会通知你故障原因,减少与可观测性和跟进相关的操作麻烦。 可以按照以下步骤为利用维护时段的所有类型的自动升级设置通知。
先决条件
注释
设置通信管理器后,它会在维护开始前一周和维护开始前一天发送提前通知。 它还会在维护操作时及时发送警报。
设置通信管理器
转到资源,选择“ 监视”,选择“ 警报”,然后选择“ 警报规则”。
在 “条件 ”选项卡上,选择 “信号名称”,选择“ 自定义日志搜索”。
在 “搜索查询 ”框中,粘贴以下自定义查询之一,然后选择“ 查看+创建 ”按钮。
以下查询适用于群集自动升级通知:
| 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
间隔应为 30 分钟,阈值应为 1。
确保存在具有正确电子邮件地址的作组,以便你能够接收通知。
确保将“读取”角色授予资源组以及日志搜索警报规则的托管标识订阅。
转到警报规则:“设置”>“标识”>“系统分配的托管标识”>“Azure 角色分配”>“添加角色分配”。
选择 “读取者 ”角色并将其分配给资源组。 为订阅重复“添加角色分配”。
验证
若要升级群集,请等待自动升级程序启动。 然后,验证是否在配置为接收通知的电子邮件上及时收到通知。
检查 Azure Resource Graph 数据库中的计划通知记录。 每个计划的事件通知都应列为表中的一条记录 containerserviceeventresources
。