我开始使用Kubernetes,Knative和Gloo。我的目标是将一个简单的 http 服务部署到 gke 集群。我已经设法设置了knative,gloo并在那里部署了一个名为backend
的健康服务。下一步是设置 路由/api/v1
->backend
。我已经创建了一个名为public-api
的虚拟服务,现在我需要添加一个路由。根据文档,我需要运行
glooctl add route
--path-exact /api/v1
--dest-name ???dest-name???
--prefix-rewrite /
我很困惑。我想如果我只是在普通 gke 上安装普通 gloo,这会更容易。但是在Knative,我看到了四个上游:
| mb-backend-bdtr2-4tdfq-9090 | Kubernetes | Accepted | svc name: |
| | | | backend-bdtr2-4tdfq |
| | | | svc namespace: mb |
| | | | port: 9090 |
| | | | |
| mb-backend-bdtr2-4tdfq-9091 | Kubernetes | Accepted | svc name: |
| | | | backend-bdtr2-4tdfq |
| | | | svc namespace: mb |
| | | | port: 9091 |
| | | | |
| mb-backend-bdtr2-80 | Kubernetes | Accepted | svc name: backend-bdtr2 |
| | | | svc namespace: mb |
| | | | port: 80 |
| | | | |
| mb-backend-bdtr2-zz6t9-80 | Kubernetes | Accepted | svc name: |
| | | | backend-bdtr2-zz6t9 |
| | | | svc namespace: mb |
| | | | port: 80 |
我有四个问题:
- 使用哪一个?MB-backend-BDTR2-80 或 MB-后端-BDTR2-ZZ6T9-80
- 为什么我有两个端口为 80 的上游?
- 这些端口为 9090 和 9091 的上游是什么?
- 如何定义更具描述性的名称?Gloo的系统上游被命名为更好,没有任何后缀。
感谢社区对 solo.io 松弛的帮助,我得到了答案。
- 我应该路由到
backend-bdtr2
.可以通过运行kubectl get proxy -n gloo-system knative-external-proxy -oyaml
来获取此值。 - 两个具有 80 端口的上游是 Knative 的占位符服务,路由到原始
backend
服务。当服务需要纵向扩展时,它们将动态路由到 knative 激活器。显然,上游一个用于外部路由,第二个用于内部路由(但目前不确定(。 - 端口为 9090 和 9091 的上游是原生挎斗。
- 名称是由 knative 生成的,显然现在没有解决方案可以为它们提供描述性后缀。