官网地址:https://rancher.com/docs/rancher/v1.6/zh/cattle/webhook-service/
添加接收器钩子
要创建一个接收器钩子,导航到,API -> Webhooks,点击 添加接收器
- 填写接收器 名称 以方便识别。
- 选择你要创建的接收器 类型。
- 基于接收器的类型确定接收器事件。
点击 创建。创建成功后,就可以在新创建接收器钩子旁边看到相应的URL。
使用接收器钩子
要使用触发 URL,你需要先发一个 POST
请求到这个 URL。
向这个 URL POST
请求不需要在验证头和 body 信息。
接收器钩子的类型
服务扩缩容
要扩缩容一个服务,你必须先配置你的 webhook:
- 扩大/缩小一个服务(即,添加或移除一个服务中的容器)
- 在环境中选择服务
- 一次投放/移除多少容器
- 服务的最大/最小容器数量
添加服务扩容触发器
现在我以一个简单的springboot应用服务consumer为例,lb是一个负载均衡服务,实现多个应用服务容器的负载均衡。如果你没有现成的rancher应用服务。添加一个Nginx的应用服务也可以哦。
现在我去添加一个webhook触发器。
现在我对consumer应用服务,添加一个容器扩容的webhook触发器。
现在可以看到,基于应用服务consumer/consumer的webhook触发器已经创建好了。
现在触发器已经构建好了,我们把访问地址粘贴出来。其结构如下:
http://192.168.56.102:8090/v1-webhooks/endpoint?key=MDKXxA11OPkWVfFYIAwKVV8sntNZLPW5n0gCdMSH&projectId=1a7
验证容器扩容
1. 现在consumer/consumer服务,只启动了一个容器。
2. 通过调用钩子实现扩容,请注意:
- 官网也说明了,触发器地址是POST请求,不能直接用浏览器访问。
- 其他能发送post请求的工具也可以用。
[root@master docker]# curl -X POST "http://192.168.56.102:8090/v1-webhooks/endpoint?key=MDKXxA11OPkWVfFYIAwKVV8sntNZLPW5n0gCdMSH&projectId=1a7"
[root@master docker]#
3. 可以发现容器数,已经扩展到了3台,直接增加了2台容器。
通过查看3个容器的服务日志,可以看到多个容器也已实现了负载均衡。
4. 刚才我配置的容器数量上限是4,每次扩展2个容器,现在已经有3个容器了,继续执行看会是什么效果。
可以看到报错了。在 3 + 2 > 4 的情况下,并没有将容器的数量扩展到4台,而是直接报错了。现在我的容器数量还是3台。