在现场/可抢占实例上处理终止通知。
termination-handler的Python项目详细描述
终止处理程序
关于
termination-handler
处理当场/可抢占实例的终止通知。
例如,如果部署在kubernetes集群上,并且云提供程序发出了终止通知,termination-handler
会在云提供程序将节点带走之前耗尽正在运行的节点。
受aws的pusher/k8s-spot-termination-handler启发,termination-handler
在不同的环境(提供者、编排者…)中运行相同工具的需求激增
功能
- 支持多个云提供商(aws、gcp)。
- 支持多种调度和编排工具(kubernetes、nomad)。
- 小而可扩展。
文档
待定
用法
部署到kubernetes
k8s docker映像可在^{
若要使用RBAC在群集中部署,请应用deploy/k8s文件夹中的所有清单(守护进程、ClusterRole、ClusterRoleBinding和ServiceAccount),但取消对Daemonset中^{
要求
要使termination-handler
正确调度,您需要在spot/preemptible实例上有一个标识标签。
我们将标签node-role.kubernetes.io/spot-worker
添加到spot/preemptible实例中,因此这是Daemonset节点选择器中的默认值。
nodeSelector:"node-role.kubernetes.io/spot-worker":"true"
为此,请在kubelet中添加以下标志:
--node-labels="node-role.kubernetes.io/spot-worker=true"
配置
要为drain命令定义任何自定义参数,可以使用DRAIN_PARAMETERS
环境属性。如果未定义,则默认参数为--grace-period=120 --force --ignore-daemonsets
。
env:-name:DRAIN_PARAMETERSvalue:'--grace-period=120--force--ignore-daemonsets--delete-local-data'
演示模式
待定
部署到Nomad
待定
如何贡献
- 检查打开的问题或打开一个新的问题,开始围绕功能想法或错误的讨论。
- 从github上的forkthe repository开始对主分支(或其分支)进行更改。
- 编写一个测试,显示错误已修复或功能按预期工作。
- 发送一个pull request和错误me,直到合并并发布为止。
有些东西会很棒:
- 对azure云提供商的支持。
- 支持执行处理程序(某些命令或任务)
- 支持通知(slack,datadog..)
- 选项以忽略选定的云提供程序发现。