kubernetes - 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 /
我很困惑。我想如果我只是在普通 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-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 激活器。显然上游是外部路由,第二个是内部路由(但现在不确定)。 - 具有端口 9090 和 9091 的上游是 knative sidecar。
- 名称是由 knative 生成的,显然目前没有解决方案为它们提供描述性后缀。
推荐阅读
- sql - 如何使用 SQL PARTITION BY GROUPS?
- maven - 运行声纳分析时排除父依赖项
- vifm - 是否有任何选项可以像在 nautilus 中一样查看最近的文件,而不仅仅是特定目录中的最近文件
- twitter-bootstrap - 引导表单无法正常工作 - Symfony
- docker - 命令“docker-compose up”导致“找不到命令:未指定安装点”错误
- c - 如何模拟 Azure IoT Hub 断开连接
- java - 从 Java 中的活动窗口读取数据
- python - “无法访问 X 显示器,$DISPLAY 设置是否正确?” - Ubuntu 虚拟机上的 Python 错误
- python - 理解:YOLO v5 inference中的不同大小
- javascript - 递归实现 getElementByTagName