如何通过CLI导出并部署GCP负载均衡的URL Map路由规则?
仅用GCP CLI实现负载均衡路由规则的版本控制与部署
以下是不用Terraform,纯CLI操作的完整流程:
1. 导出现有URL Map配置(若已通过控制台创建)
如果你的负载均衡器已经通过控制台配置了路由规则,后台其实已经生成了对应的URL Map。先通过命令查看全局URL Map列表(区域负载均衡去掉--global):
gcloud compute url-maps list --global
找到目标URL Map名称后,导出为YAML文件:
gcloud compute url-maps export YOUR_URL_MAP_NAME --destination=url-map.yaml --global
导出的文件包含所有主机匹配器、路径匹配器配置,可直接存入代码库。
2. 编辑URL Map的YAML配置
若需新增或修改规则,直接编辑url-map.yaml,以下是涵盖主机、路径匹配的完整示例:
name: my-production-url-map defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/default-backend hostRules: - hosts: - app.yourdomain.com - admin.yourdomain.com pathMatcher: app-path-matcher - hosts: - api.yourdomain.com pathMatcher: api-path-matcher pathMatchers: - name: app-path-matcher defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/app-backend pathRules: - paths: - /dashboard/* service: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/admin-backend - name: api-path-matcher defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/api-backend pathRules: - paths: - /v1/* service: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/api-v1-backend
3. 验证配置合法性
部署前先验证YAML配置是否正确,避免部署失败:
gcloud compute url-maps validate --source=url-map.yaml --global
还可以测试特定主机和路径的匹配结果:
gcloud compute url-maps test YOUR_URL_MAP_NAME --host=app.yourdomain.com --path=/dashboard/profile --global
4. 更新URL Map配置
将修改后的YAML部署到GCP:
gcloud compute url-maps update YOUR_URL_MAP_NAME --source=url-map.yaml --global
5. 关联URL Map到负载均衡器
URL Map需要绑定到目标HTTP/HTTPS代理才能生效(负载均衡器前端指向该代理),执行对应命令更新代理:
针对HTTPS负载均衡:
gcloud compute target-https-proxies update YOUR_TARGET_PROXY_NAME --url-map=YOUR_URL_MAP_NAME --global
针对HTTP负载均衡:
gcloud compute target-http-proxies update YOUR_TARGET_PROXY_NAME --url-map=YOUR_URL_MAP_NAME --global
关于控制台的疑惑解答
- 控制台的「路由规则」本质是URL Map的可视化编辑器,高级视图的配置最终会同步到对应的URL Map实体,但控制台未开放完整YAML导出/编辑入口,因此必须通过CLI操作URL Map实体。
- 控制台高级视图仅支持编辑路径匹配器的YAML,是因为它将主机匹配器拆分为单独的文本输入项,但CLI导出的完整YAML可统一配置主机和路径规则。
内容的提问来源于stack exchange,提问作者clementlize
相关产品推荐
相关产品推荐

