转: https://www.cnrancher.com/webhooks-in-rancher/
Rancher 1.4已于上周全面发布!新版本带来了Dashboard和Helm的集成,更细致的网络策略控制,直接构建进平台中的保密管理,当然还有今天要重点介绍的主角,Webhooks!
Rancher 1.4版本为webhooks添加了一个新特性,赋予其一个能够处理弹性伸缩的初始驱动程序。实现webhooks的一个关键概念就是“Receiver(接收器)”,它可以让你注册一个webhook,并且提供给你一个触发Rancher内部action的url。
我们为webhooks实现了微服务,叫做webhook-service。我将利用我们目前的驱动程序—scaleService来解释该功能。scaleService driver允许用户创建一个receiver hook,用于对服务进行纵向扩容或缩容。一个典型的用例就是与监控系统集成,观测负载均衡器流量,当响应时间或每秒的请求数达到某个阈值时,调用这个receiver hook。下面我将详细介绍在Rancher中创建receiver hook的步骤。
新增一个Receiver Hook
在UI中导航到API -> webhooks。你为所选环境创建的所有receiver hook,都会在“Receiver Hooks”这一界面中被列出。
点击”Add Receiver”,您将看到要输入的字段:
在此页上,要输入的字段如下:
- Name:每一个receiver hook都应该有一个独特的名称,以便它可以很容易地被识别;
- Kind:“Kind(种类)”的下拉列表中列出了所有在webhook-service中可使用的驱动程序。从列表中选择一个驱动程序(v1.4中只有“Scale a Service”这一个选项——更多基于社区贡献和要求的驱动程序很快就会与大家见面的!);
- Action:此字段允许您指定指向此驱动程序的action(动作)。对于scaleService driver,唯一可以指向的两个行为是“up”(增加容器的数量)和”down”(减少容器的数量)。
这之后的字段是scaleService driver特有的:
- Target Service:从这个下拉列表中选择要扩/缩容的服务(如下所示);
- By:此字段要求用户输入所选服务的扩/缩容比例;
-
Minimum Scale 和Maximum Scale:您的服务可以允许的容器的最小和最大数量。使用webhooks在超出范围内对服务进行伸缩是不允许的。
所有字段都输入后,点击“创建”:
创建的receiver hook会显示在webhooks页面上。“Trigger URL”用于实际的纵向扩容或缩容操作。在这个字段旁边,还有删除和复制receiver hook的选项:
使用Receiver Hook
“Trigger URL”会为驱动程序执行操作。要使用trigger URL,你需要对特定的URL发送POST请求。没有身份认证或实物需要通过POST请求发送到URL。这个URL由一个API终点和一个标记组成。该标记包含所创建的receiver hook的所有信息,如选定的驱动程序、服务、行为(纵向扩/缩容),以及该服务的伸缩比例。API终点使用这个标记生成Cattle API调用,并完成所创建的receiver hook指定的行为。
使用webhook service自动伸缩
来自webhook service的scaleService driver,可以基于容器的度量对服务进行自动伸缩。要想这样做,webhook服务必须与一个外部监控服务一同使用。一旦你创建了一个服务,就要按照上面的步骤为它添加一个webhook。然后复制trigger URL并在监控服务中使用:当特定的度量(如响应时间)越过指定的阈值时,向该trigger URL发送一个”POST”请求。监控服务如Prometheus有一个”webhook_configs”字段,用于指定需要发送的请求格式为”POST”的URL。一旦你进行了上述的配置,webhook service将会对服务进行伸缩操作。
未来的驱动程序及其特性
我们计划在webhook服务中增加更多的驱动程序。在未来的版本中,我们致力于增加能够纵向扩/缩容主机的驱动程序,并且在dockerhub webhooks的基础上重新部署服务。我们也乐于为新的驱动程序做出贡献。你可以参考这些步骤添加新的驱动程序,也可以发送建议到我们的webhook服务库。
相关推荐
Aspnet-AspNet.WebHooks.Custom.MongoStorage.zip,此项目支持在MongoDB存储媒体.aspnet.webhooks.custom.mongotorage中持久化自定义Webhooks注册。,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务...
该插件使用Plex的功能,该功能是目前最好的可用选项,可创建快速流畅的自动化体验。 请注意,Webhooks是一项高级功能,需要Plex Media Server帐户具有有效的。 根据过去的经验,Plex Inc会每年一次或两次打折其...
gitlab的自动化部署,当你push或者merge到master分支的时候,就自动在测试或者生产的服务器上拉取最新的代码进行build。
将Webhooks添加到您的ServiceStack服务概述此项目使从ServiceStack服务公开Webhook通知变得非常容易,并有助于您管理用户对这些Webhooks的订阅。 通过将WebhookFeature添加到服务的AppHost中,您将自动获得引发和...
MessageMedia Webhooks Java SDK MessageMedia Webhooks允许您订阅一个或多个事件,并且当触发这些事件之一时,会将HTTP请求与消息或有效负载一起发送到您选择的URL。 用更简单的术语来说,它允许应用程序彼此...
WebHooks用于什么 Webhooks是“用户定义的HTTP回调”。 它们通常是由某些事件触发的,例如将代码推送到存储库或将评论发布到博客。 发生该事件时,源站点向为Webhook配置的URI发出HTTP请求。 用户可以将它们配置为...
码云WebHooks自动化部署, php参考代码,Linux上使用。
测试测试Webhooks
plex-bridge-homebridge-http-webhooks已归档此回购协议的预期目的已由。 我推荐它代替这个包装。 如果要将plex Webhook映射到其他形式的Web请求,此处的代码仍然是不错的起点,但是在当前状态下它不是超级有用。...
broadlink-webhooks 为创建和管理 Webhooks小程序(使用 ) 关于 broadlink-webhooks是一个命令行工具,它能够自动IFTTT小程序的使用的“接收一网络请求”触发的创建和和“场景控制”的动作的“开启或关闭装置” 。 ...
在进行系统开发过程中,涉及到支付的问题,经过权衡,选择了Ping++作为支付方式,由于webhooks是后续处理的基础,个人在开发过程中尝试了多种方式,现将部分经验分享
使用ASP.NET Core的Webhooks服务器实现 使用微服务在.NET Core中简单实现Webhooks 它是什么? 如果您在ASP.NET Core中使用Google Webhooks进行搜索,则很有可能会找到Webhook客户端实现和示例,以及如何使用一些流行...
目标是通过为Python项目提供易于实施的解决方案并保留Python社区发展的模式库,使Webhooks在网络上蓬勃发展。 简单的 使用单个装饰器将webhook功能添加到数据库模型中,包括过滤模型的特定更改。 灵活的 所有...
@ octokit / webhooks 适用于Node.js的GitHub Webhook事件工具集@octokit/webhooks帮助处理从GitHub收到的webhook事件。 可以通过多种方式注册 在上的存储库或组织设置中。 将REST API用于或通过 。 请注意,虽然在...
webhooks 使用node服务器1. 准备自动发布的项目(webhooks 启动位置app.json)2. 启动deploy.js服务3. 准备deploy.sh脚本执行相关代码4. 设置github webhooks Settings -> Webhooks -> Add webhook -> Payload URL ...
导轨安装将gem 'mailgun_webhooks'添加到您的 Gemfile。 设置config/initializers/mailgun.rb MailgunWebhooks . api_key = "yourapikeyfrommailgun"MailgunWebhooks . api_host = "yourdomain.com"机架安装如果您...
hapi-stripe-webhooks 一个插件,用于从接收通知。安装 npm install hapi-stripe-webhooks用法 var StripeWebhooks = require ( 'hapi-stripe-webhooks' )server . register ( { register : StripeWebhooks , ...
Webhooks, 一个简单的webhook后台 Deprecated 我在自己的服务器上使用替代这个项目. 配置 // 在Webhooks中设定的secret var secret = '' // 在Webhooks中设定的Payload URL var url = '' ... // 监听地址端口 })....
微信企业WebHooks机器人,监控某gitee项目,有push和评论更新等,都会即时提醒微信
sentry-webhooks Sentry 的扩展,增加了对创建各种网络钩子的支持。 此扩展现在捆绑为 Sentry 7.3.0 的一部分,不再维护安装通过pip安装包: pip install sentry-webhooks您现在可以通过项目中的插件配置面板...