
paskalmaksim/aks-node-termination-handlerAKS节点终止处理程序(aks-node-termination-handler)是一个专为Azure Kubernetes Service (AKS) 设计的工具,用于监控和响应虚拟机规模集(VMSS)事件。该工具能够在节点被终止前自动执行必要的维护操作,确保工作负载安全迁移,从而提高集群的稳定性和可用性。
bashhelm repo add maksim-paskal [***] helm repo update helm install aks-node-termination-handler maksim-paskal/aks-node-termination-handler
bashkubectl apply -f [***]
bashdocker run -d \ --name aks-node-termination-handler \ -e AZURE_TENANT_ID=<your-tenant-id> \ -e AZURE_SUBSCRIPTION_ID=<your-subscription-id> \ -e AZURE_RESOURCE_GROUP=<your-resource-group> \ -e AKS_CLUSTER_NAME=<your-cluster-name> \ -e NODE_NAME=<node-name> \ -v /var/run/kubernetes/admin.kubeconfig:/kubeconfig \ maksim-paskal/aks-node-termination-handler:latest
| 环境变量 | 描述 | 可选值 | 默认值 |
|---|---|---|---|
AZURE_TENANT_ID | Azure租户ID | 必须 | 无 |
AZURE_SUBSCRIPTION_ID | Azure订阅ID | 必须 | 无 |
AZURE_RESOURCE_GROUP | AKS集群资源组 | 必须 | 无 |
AKS_CLUSTER_NAME | AKS集群名称 | 必须 | 无 |
NODE_NAME | 节点名称 | 必须 | 无 |
DRY_RUN | 启用Dry Run模式 | true/false | false |
DRAIN_TIMEOUT | 排空节点超时时间(秒) | 整数 | 300 |
DRAIN_GRACE_PERIOD | 排空宽限期(秒) | 整数 | 60 |
DRAIN_DELETE_EMPTY_DIR_DATA | 是否删除emptyDir数据 | true/false | true |
DRAIN_IGNORE_DAEMON_SETS | 是否忽略DaemonSets | true/false | true |
DRAIN_FORCE | 是否强制排空 | true/false | false |
METRICS_PORT | 指标服务端口 | 整数 | 8080 |
LOG_LEVEL | 日志级别 | debug/info/warn/error | info |
KUBECONFIG | kubeconfig文件路径 | 字符串 | /kubeconfig |
--dry-run 启用Dry Run模式 (环境变量: DRY_RUN) --drain-timeout 排空超时时间(秒) (环境变量: DRAIN_TIMEOUT) --drain-grace-period 排空宽限期(秒) (环境变量: DRAIN_GRACE_PERIOD) --metrics-port 指标服务端口 (环境变量: METRICS_PORT) --log-level 日志级别 (环境变量: LOG_LEVEL)
该处理程序暴露以下Prometheus指标:
aks_node_termination_handler_events_total - 处理的事件总数aks_node_termination_handler_drains_total - 执行的排空操作总数aks_node_termination_handler_drain_errors_total - 排空操作错误总数aks_node_termination_handler_last_event_timestamp - 最后一次事件的时间戳处理程序需要以下Azure RBAC权限:
Microsoft.Compute/virtualMachineScaleSets/readMicrosoft.Compute/virtualMachineScaleSets/virtualMachines/readMicrosoft.Insights/eventtypes/events/read处理程序未检测到VMSS事件
排空操作失败
日志中出现认证错误
bashkubectl logs -l app=aks-node-termination-handler
本项目采用MIT许可证 - 详情参见LICENSE文件。

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