Rancher CLI 更新负载均衡器
Rancher CLI update loadbalancer
我在 Kubernetes 上使用 Rancher 来创建我们的 test/dev 环境。首先,它是一个很棒的工具,我很惊讶它如何简化此类环境的管理。
就是说,我有一个问题(这可能更多是对 Rancher 的知识缺乏)。我尝试通过 Jenkins 自动部署,因为我们将有几个堆栈进入我们的测试环境,我想动态更新负载均衡器实例以使用 Rancher CLI 从 Jenkins 添加新环境的路由。
目前,我只是尝试运行这个命令:
rancher --url http://myrancher_server:8080 --access-key <key> --secret-key <secret> --env dev-test stack create kubernetes-ingress-lbs -r loadbalancer-rancher-service.yml
我的 docker-compose.yml 文件如下所示:
version: '2'
services:
frontend:
image: 172.19.51.97:5000/frontend
dev-test-lb:
image: rancher/load-balancer-service
ports:
- 82: 8086
links:
- fronted:frontend
我的 rancher compose 文件是这样的:
version: '2'
services:
dev-test-lb:
scale: 4
lb_config:
port_rules:
- source_port: 82
path: /products
target_port: 8086
service: products
- source_port: 82
path: /
target_port: 4201
service: frontend
health_check:
port: 42
interval: 2000
unhealthy_threshold: 3
healthy_threshold: 2
response_timeout: 2000
现在,当我执行此操作时,我得到以下响应:
Bad response statusCode [422]. Status [422 status code 422]. Body: [code=NotUnique, fieldName=name, baseType=error] from [http://myrancher_server:8080/v2-beta/projects/1a21/stacks]
显然,我无法使用已存在的服务编辑现有堆栈。你知道这样做是否是最好的做法吗?我检查了 man,我只看到 "rancher stack" 上的 "create" 操作,所以我想知道我们是否可以更新?
我的 rancher 服务器是 v1.5.10,我所有的 rancher 代理和 Kubernetes 驱动程序都是最新的。
非常感谢您的帮助伙伴:)
好的,仅供参考,我发现这可以通过 Rancher 的 Rest API 实现。
检查以下 link :http://docs.rancher.com/rancher/v1.2/en/api/v2-beta/api-resources/service/
起初我没有发现,因为我所做的谷歌搜索一开始都是关于 rancher cli 的。但由于它仍处于测试阶段,我们不能像其他人那样做同样的事情 API。
基本上,只需发送更新资源查询即可:
放置rancherserver/v2-beta/projects/1a12/services/
{
"description": "Loadbalancer for our test env",
"lbConfig": {
"portRules": [
{
"hostname": "",
"protocol": "http",
"source_port": "80",
"targetPort": "4200",
"path": "/"
}
]
},
"name": "kubernetes-ingress-lbs"
}
我在 Kubernetes 上使用 Rancher 来创建我们的 test/dev 环境。首先,它是一个很棒的工具,我很惊讶它如何简化此类环境的管理。
就是说,我有一个问题(这可能更多是对 Rancher 的知识缺乏)。我尝试通过 Jenkins 自动部署,因为我们将有几个堆栈进入我们的测试环境,我想动态更新负载均衡器实例以使用 Rancher CLI 从 Jenkins 添加新环境的路由。
目前,我只是尝试运行这个命令:
rancher --url http://myrancher_server:8080 --access-key <key> --secret-key <secret> --env dev-test stack create kubernetes-ingress-lbs -r loadbalancer-rancher-service.yml
我的 docker-compose.yml 文件如下所示:
version: '2'
services:
frontend:
image: 172.19.51.97:5000/frontend
dev-test-lb:
image: rancher/load-balancer-service
ports:
- 82: 8086
links:
- fronted:frontend
我的 rancher compose 文件是这样的:
version: '2'
services:
dev-test-lb:
scale: 4
lb_config:
port_rules:
- source_port: 82
path: /products
target_port: 8086
service: products
- source_port: 82
path: /
target_port: 4201
service: frontend
health_check:
port: 42
interval: 2000
unhealthy_threshold: 3
healthy_threshold: 2
response_timeout: 2000
现在,当我执行此操作时,我得到以下响应:
Bad response statusCode [422]. Status [422 status code 422]. Body: [code=NotUnique, fieldName=name, baseType=error] from [http://myrancher_server:8080/v2-beta/projects/1a21/stacks]
显然,我无法使用已存在的服务编辑现有堆栈。你知道这样做是否是最好的做法吗?我检查了 man,我只看到 "rancher stack" 上的 "create" 操作,所以我想知道我们是否可以更新?
我的 rancher 服务器是 v1.5.10,我所有的 rancher 代理和 Kubernetes 驱动程序都是最新的。
非常感谢您的帮助伙伴:)
好的,仅供参考,我发现这可以通过 Rancher 的 Rest API 实现。
检查以下 link :http://docs.rancher.com/rancher/v1.2/en/api/v2-beta/api-resources/service/
起初我没有发现,因为我所做的谷歌搜索一开始都是关于 rancher cli 的。但由于它仍处于测试阶段,我们不能像其他人那样做同样的事情 API。
基本上,只需发送更新资源查询即可:
放置rancherserver/v2-beta/projects/1a12/services/
{
"description": "Loadbalancer for our test env",
"lbConfig": {
"portRules": [
{
"hostname": "",
"protocol": "http",
"source_port": "80",
"targetPort": "4200",
"path": "/"
}
]
},
"name": "kubernetes-ingress-lbs"
}