【发布时间】:2018-02-07 09:40:08
【问题描述】:
Traffic Distributor (https://docs.jelastic.com/traffic-distributor) 是一项很酷的功能,它可以为您的应用添加负载平衡并启用蓝/绿部署。 但是,似乎没有 API 来控制流量分配器,因此不可能自动发布新版本。
有没有办法做到这一点?
【问题讨论】:
标签: load-balancing jelastic blue-green-deployment
Traffic Distributor (https://docs.jelastic.com/traffic-distributor) 是一项很酷的功能,它可以为您的应用添加负载平衡并启用蓝/绿部署。 但是,似乎没有 API 来控制流量分配器,因此不可能自动发布新版本。
有没有办法做到这一点?
【问题讨论】:
标签: load-balancing jelastic blue-green-deployment
可以通过API 创建和控制流量分配器。
让我们解释一下流程......
首先,您应该登录平台并获取会话。 这可以通过下一个 API 请求来完成:
https://app.{platform_domain}/1.0/users/authentication/rest/signin/login={your_email}&password={your_password}
如果您使用 Jelastic 平台 v5.1+,您应该将上述请求作为 POST 执行。
例如,您可以使用 curl 执行此操作:
curl 'https://app.{platform_domain}/1.0/users/authentication/rest/signin' -d "login={your_email}&password={your_password}"
接下来,您可以使用此请求创建流量分配器:
http://appstore.{platform_domain}/InstallApp?envName=[env_name]&session=[your_session]&jps=traffic-distributor&displayName=[disp_env_name]&settings={"extip":true,"balancerCount":1,"routingMethod":"round-robin","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}
,在哪里
[env_name] - 环境的名称。
[disp_env_name] - 仪表板中环境的可见名称。
Traffic Distributor 的必要设置可以在 JSON 中指定:
您可以指定下一个可能的值:round-robin、sticky-sessions 或 failover
例如: 0 - 所有请求都将被路由到 {environment_2}, 100 - 所有请求都将被路由到 {environment_1}, 50 - 所有请求将在环境之间平均平衡。
执行此方法后 - Traffic Distributor 将出现在 Jelastic Dashboard 中。
请执行下一个 API 请求以从响应中获取“uniqueName”值(在 Addons 部分内):
https://app.{Platform_domain}/1.0/environment/control/rest/getenvinfo?envname=[env_name]&session=[your_session]
,其中 [env_name] - 使用 Traffic Distributor 插件创建的环境的名称。
现在您可以通过下一个 API 控制创建的 Traffic Distributor 的设置:
https://appstore.{Platform_domain}/ExecuteAppAction?session=[your_session]&appUniqueName=[app_unique_name]&action=configure¶ms={"extip":1,"balancerCount":1,"routingMethod":"sticky-sessions","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}
,在哪里
[app_unique_name] - 来自上一个请求的响应的值“uniqueName”。
JSON 中的设置与 InstallApp API 请求的设置完全相同。
【讨论】: