
webdevops/azure-scheduledevents-managerAzure ScheduledEvents Manager用于管理运行在Azure上的Kubernetes节点,处理Azure计划事件(如VM计划维护)。当检测到Redeploy、Reboot、Preempt或Terminate事件时,自动排空(drain)节点,并可自动批准事件(尽快启动事件)。同时,它从Azure元数据服务([***])获取事件信息,并将解析后的状态导出为Prometheus指标。
适用于运行在Azure云平台上的Kubernetes集群,需处理VM计划维护事件(如重启、重新部署、抢占、终止)的场景,确保维护过程中服务不中断,提升集群可用性。
使用方法: azure-scheduledevents-manager [选项] 应用选项: --debug 调试模式 [$DEBUG] -v, --verbose 详细模式 [$VERBOSE] --log.json 切换日志输出为JSON格式 [$LOG_JSON] --bind= 服务器地址 (默认: :8080) [$SERVER_BIND] --scrape-time= 抓取时间(秒)(默认: 1m) [$SCRAPE_TIME] --azure.metadatainstance-url= Azure元数据实例API URL (默认: [***] [$AZURE_METADATAINSTANCE_URL] --azure.scheduledevents-url= Azure计划事件API URL (默认: [***] [$AZURE_SCHEDULEDEVENTS_URL] --azure.timeout= Azure API超时时间(秒)(默认: 30s) [$AZURE_TIMEOUT] --azure.error-threshold= Azure API错误阈值(超过后应用将崩溃)(默认: 0) [$AZURE_ERROR_THRESHOLD] --azure.approve-scheduledevent 批准计划事件并尽快启动(如果可能)[$AZURE_APPROVE_SCHEDULEDEVENT] --vm.nodename= VM节点名称 [$VM_NODENAME] --kube.nodename= Kubernetes节点名称 [$KUBE_NODENAME] --drain.enable 启用排空处理 [$DRAIN_ENABLE] --drain.events= 启用排空处理的事件类型 (默认: reboot, redeploy, preempt, terminate) [$DRAIN_EVENTS] --drain.not-before= 在此时间前不排空 (默认: 5m) [$DRAIN_NOT_BEFORE] --drain.delete-local-data 即使有使用emptyDir的Pod(排空时会删除本地数据)也继续 [$DRAIN_DELETE_LOCAL_DATA] --drain.force 即使有非控制器管理的Pod(非ReplicationController、ReplicaSet、Job、DaemonSet或StatefulSet管理)也继续 [$DRAIN_FORCE] --drain.grace-period= 每个Pod的优雅终止时间(秒),负数使用Pod默认值 [$DRAIN_GRACE_PERIOD] --drain.ignore-daemonsets 忽略DaemonSet管理的Pod [$DRAIN_IGNORE_DAEMONSETS] --drain.pod-selector= 过滤节点上Pod的标签选择器 [$DRAIN_POD_SELECTOR] --drain.timeout= 等待超时时间,0表示无限期 (默认: 0s) [$DRAIN_TIMEOUT] --drain.dry-run 不执行排空、解除封锁或标记节点(仅模拟)[$DRAIN_DRY_RUN] --notification= Shoutrrr通知URL ([***] [$NOTIFICATION] --notification.messagetemplate= 通知模板 (默认: %v) [$NOTIFICATION_MESSAGE_TEMPLATE] --metrics-requeststats 启用请求统计指标 [$METRICS_REQUESTSTATS] 帮助选项: -h, --help 显示此帮助信息
建议通过DaemonSet部署在Kubernetes集群中,以确保每个节点都能监控Azure计划事件。部署配置详情可参考项目的部署目录。
| 指标名称 | 描述 |
|---|---|
azure_scheduledevent_document_incarnation | 文档版本号(incarnation编号) |
azure_scheduledevent_event | 从API获取的事件 |
azure_scheduledevent_request | 请求直方图(计数和请求持续时间;默认禁用) |
azure_scheduledevent_request_error | 请求失败计数器 |

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务