kubernetes - 通过 API 启动特定 Pod 并从外部连接
问题描述
我目前正在设计一个系统,用户应该能够通过 Web Portal 开始模拟,然后使用 gRPC 客户端(以及其他东西)连接到它。用户完成后,模拟将终止。如果可能的话,我想在 Kubernetes 集群中以一种微服务架构运行整个系统。然而,这是我第一次使用 kubernetes,我不确定是否有可能实现这一点。
据我从阅读文档和谷歌搜索中收集到的,似乎我应该能够通过调用POST /api/v1/namespaces/{namespace}/pods并通过设置在主机 IP 下使其可用来启动一个 pod hostPort
。但是我不知道我将如何确定节点上的空闲端口以部署到或让 kubernetes 决定(如果hostPort
这甚至是正确的选择)。之后,它应该非常简单。向用户发送要连接的 IP:Port,他只需将其插入他的 gRPC 客户端。
关于如何最好地实现这一目标的任何建议?
解决方案
不建议使用hostPort
,因此最好指定一个服务并通过服务访问您的 Pod。在您的情况下,您可以定义NodePort
服务并让 Kubernetes 决定端口。然后,使用 Kubernetes API 获取服务端口。
推荐阅读
- google-ads-api - 请求 google Ads Api 时如何解决 DEVELOPER_TOKEN_PROHIBITED 错误?
- scala - Scalatest - 如何在运行时创建并行测试
- unity3d - Unity 3d 中的离屏指示器
- laravel - 如何在 laravel 应用程序中为单个 vue 组件实现 SSR?
- yaml - Swagger / Open API 3 - JSON 响应对象中的可选字段(/属性)
- php - 如何通过php从动态地址中获取经纬度
- javascript - window.history.pushState 返回历史
- powershell - Powershell:存储和读取用户/密码列表
- html - 跨浏览器的 Flexbox 布局大不相同?
- c++ - 如何获取给定字体的可用字体样式