Azure 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 | 请求失败计数器 |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速