`

Webhooks初体验

 
阅读更多

转: 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”这一界面中被列出。

1

点击”Add Receiver”,您将看到要输入的字段:

2

在此页上,要输入的字段如下:

  • Name:每一个receiver hook都应该有一个独特的名称,以便它可以很容易地被识别;
  • Kind:“Kind(种类)”的下拉列表中列出了所有在webhook-service中可使用的驱动程序。从列表中选择一个驱动程序(v1.4中只有“Scale a Service”这一个选项——更多基于社区贡献和要求的驱动程序很快就会与大家见面的!);
  • Action:此字段允许您指定指向此驱动程序的action(动作)。对于scaleService driver,唯一可以指向的两个行为是“up”(增加容器的数量)和”down”(减少容器的数量)。

这之后的字段是scaleService driver特有的:

  • Target Service:从这个下拉列表中选择要扩/缩容的服务(如下所示);

3

  • By:此字段要求用户输入所选服务的扩/缩容比例;
  • Minimum Scale 和Maximum Scale:您的服务可以允许的容器的最小和最大数量。使用webhooks在超出范围内对服务进行伸缩是不允许的。 
    所有字段都输入后,点击“创建”:

4

创建的receiver hook会显示在webhooks页面上。“Trigger URL”用于实际的纵向扩容或缩容操作。在这个字段旁边,还有删除和复制receiver hook的选项:

5

使用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服务库。

  • 大小: 112.3 KB
  • 大小: 100.5 KB
  • 大小: 114.8 KB
  • 大小: 86.8 KB
  • 大小: 112.9 KB
分享到:
评论

相关推荐

    linux-gitlab利用webhooks自动部署

    在IT行业中,Linux环境下的GitLab是一个非常流行的版本控制系统,它不仅提供了代码托管服务,还支持各种自动化流程,包括我们今天要讨论的主题——利用Webhooks实现自动部署。Webhooks是GitLab提供的一种机制,允许...

    Aspnet-AspNet.WebHooks.Custom.MongoStorage.zip

    Aspnet-AspNet.WebHooks.Custom.MongoStorage.zip,此项目支持在MongoDB存储媒体.aspnet.webhooks.custom.mongotorage中持久化自定义Webhooks注册。,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务...

    Java解析Ping++ WebHooks数据

    Ping++通过WebHooks机制来实现实时事件通知,使得开发者可以在支付成功、失败等关键状态发生时,接收到相应的数据并进行后续业务逻辑处理。 WebHooks是一种远程调用技术,当特定事件发生时,服务提供商会发送一个...

    从Laravel应用程序发送webhooks

    在IT行业中,Webhooks是一种非常重要的技术,尤其在构建现代分布式系统时,它们扮演着关键的角色。本篇文章将深入探讨如何在PHP开发框架Laravel中使用webhooks,并以`spatie/laravel-webhook-server`包为例,阐述其...

    webhooks.ts

    webhooks.ts

    homebridge-plex-webhooks:用于Homebridge的Plex Webhooks服务器插件

    该插件使用Plex的功能,该功能是目前最好的可用选项,可创建快速流畅的自动化体验。 请注意,Webhooks是一项高级功能,需要Plex Media Server帐户具有有效的。 根据过去的经验,Plex Inc会每年一次或两次打折其...

    ServiceStack.Webhooks:将Webhooks添加到您的ServiceStack服务

    将Webhooks添加到您的ServiceStack服务概述此项目使从ServiceStack服务公开Webhook通知变得非常容易,并有助于您管理用户对这些Webhooks的订阅。 通过将WebhookFeature添加到服务的AppHost中,您将自动获得引发和...

    webhooks-java-sdk:用于Webhooks的MessageMedia Java SDK

    MessageMedia Webhooks Java SDK MessageMedia Webhooks允许您订阅一个或多个事件,并且当触发这些事件之一时,会将HTTP请求与消息或有效负载一起发送到您选择的URL。 用更简单的术语来说,它允许应用程序彼此...

    node-webhooks:Node.js模块,用于创建和触发自己的webHooks

    WebHooks用于什么 Webhooks是“用户定义的HTTP回调”。 它们通常是由某些事件触发的,例如将代码推送到存储库或将评论发布到博客。 发生该事件时,源站点向为Webhook配置的URI发出HTTP请求。 用户可以将它们配置为...

    码云WebHooks自动化部署

    码云WebHooks自动化部署, php参考代码,Linux上使用。

    plex-bridge-homebridge-http-webhooks:用于Plex webhooks的Node.js桥接到homebridge

    plex-bridge-homebridge-http-webhooks已归档此回购协议的预期目的已由。 我推荐它代替这个包装。 如果要将plex Webhook映射到其他形式的Web请求,此处的代码仍然是不错的起点,但是在当前状态下它不是超级有用。...

    broadlink-webhooks:为BroadLink创建和管理IFTTT Webhooks小程序(使用Selenium WebDriver)

    broadlink-webhooks 为创建和管理 Webhooks小程序(使用 ) 关于 broadlink-webhooks是一个命令行工具,它能够自动IFTTT小程序的使用的“接收一网络请求”触发的创建和和“场景控制”的动作的“开启或关闭装置” 。 ...

    test:测试Webhooks

    7. **测试Webhooks**:测试Webhooks通常需要模拟发送POST请求。可以使用PHP的`file_get_contents()`、`cURL`库或第三方工具如Postman。测试应覆盖各种情况,包括成功和失败的请求,以及各种可能的事件类型。 在提供...

    thorn:适用于Python的简单Webhooks

    目标是通过为Python项目提供易于实施的解决方案并保留Python社区发展的模式库,使Webhooks在网络上蓬勃发展。 简单的 使用单个装饰器将webhook功能添加到数据库模型中,包括过滤模型的特定更改。 灵活的 所有...

    webhooks.js:适用于Node.js的GitHub Webhook事件工具集

    @ octokit / webhooks 适用于Node.js的GitHub Webhook事件工具集@octokit/webhooks帮助处理从GitHub收到的webhook事件。 可以通过多种方式注册 在上的存储库或组织设置中。 将REST API用于或通过 。 请注意,虽然在...

    starterkit-webhooks:使用微服务在.NET Core中简单实现Webhooks

    使用ASP.NET Core的Webhooks服务器实现 使用微服务在.NET Core中简单实现Webhooks 它是什么? 如果您在ASP.NET Core中使用Google Webhooks进行搜索,则很有可能会找到Webhook客户端实现和示例,以及如何使用一些流行...

    Python库 | pmxbot.webhooks-1.2.0-py2.py3-none-any.whl

    `pmxbot.webhooks-1.2.0-py2.py3-none-any.whl` 是一个针对Python开发的库,名为 `pmxbot.webhooks` 的版本1.2.0的发布包。这个`.whl`文件是Python的轮子(Wheel)格式,它是一种预编译的Python软件包,旨在简化安装...

    webhooks:github webhooks

    webhooks 使用node服务器1. 准备自动发布的项目(webhooks 启动位置app.json)2. 启动deploy.js服务3. 准备deploy.sh脚本执行相关代码4. 设置github webhooks Settings -> Webhooks -> Add webhook -> Payload URL ...

    webhooks:适用于GitHub,Bitbucket,GitLab,Gogs的Webhook接收器

    图书馆网钩 库webhooks允许轻松接收和解析GitHub,Bitbucket和GitLab Webhook事件特征: 解析整个有效负载,而不仅仅是几个字段。 字段+模式直接与webhook发布的json对齐笔记: 目前仅接受json负载。安装使用go get...

    mailgun_webhooks:Mailgun Webhooks 的 Rails 和 Rack 集成

    导轨安装将gem 'mailgun_webhooks'添加到您的 Gemfile。 设置config/initializers/mailgun.rb MailgunWebhooks . api_key = "yourapikeyfrommailgun"MailgunWebhooks . api_host = "yourdomain.com"机架安装如果您...

Global site tag (gtag.js) - Google Analytics