Knative:混淆服务名称和路由
Knative: confusing service names and routing
我正在开始使用 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 /
我很困惑。我想如果我只是在 plain gke 上安装 plain gloo 会更容易。但是对于 Knative,我看到 4 个上游:
| 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-backend-bdtr2-zz6t9-80
- 为什么我有两个端口为 80 的上游?
- 这些具有端口 9090 和 9091 的上游是什么?
- 如何定义更具描述性的名称? Gloo 的系统上游命名得更好,没有任何后缀。
感谢社区对 solo.io slack 的大力帮助,我得到了答案。
- 我应该路由到
backend-bdtr2
。这个值可以通过运行kubectl get proxy -n gloo-system knative-external-proxy -oyaml
. 得到
- 两个带有 80 端口的上游是 Knative 的占位符服务路由到原始
backend
服务。当服务需要扩展时,它们将动态路由到 knative activator。显然上游一个是外部路由,第二个是内部路由(但现在不确定)。
- 具有端口 9090 和 9091 的上游是 knative sidecars。
- 名称由 knative 生成,显然目前没有解决方案可以为它们添加描述性后缀。
我正在开始使用 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 /
我很困惑。我想如果我只是在 plain gke 上安装 plain gloo 会更容易。但是对于 Knative,我看到 4 个上游:
| 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-backend-bdtr2-zz6t9-80
- 为什么我有两个端口为 80 的上游?
- 这些具有端口 9090 和 9091 的上游是什么?
- 如何定义更具描述性的名称? Gloo 的系统上游命名得更好,没有任何后缀。
感谢社区对 solo.io slack 的大力帮助,我得到了答案。
- 我应该路由到
backend-bdtr2
。这个值可以通过运行kubectl get proxy -n gloo-system knative-external-proxy -oyaml
. 得到
- 两个带有 80 端口的上游是 Knative 的占位符服务路由到原始
backend
服务。当服务需要扩展时,它们将动态路由到 knative activator。显然上游一个是外部路由,第二个是内部路由(但现在不确定)。 - 具有端口 9090 和 9091 的上游是 knative sidecars。
- 名称由 knative 生成,显然目前没有解决方案可以为它们添加描述性后缀。