azure - 如何为 AKS 和 Helm 设置 ASP.NET CORE Web 和 WebAPI 容器之间的通信
问题描述
我有两个项目,一个在一个容器中的 ASP.NET Core MVC 中,另一个在一个单独的容器中的 ASP.NET Core WebAPI 中,两者都使用 Azure Kubernetes Service 和 Helm。
MVC 项目调用 WebAPI 项目。它通过使用在本地工作localhost
。
我的问题是如何设置它以使其在 AKS 上运行并接受公共请求。
解决方案
你可以阅读这篇文档,它向你展示了 Kubernetes 中的网络,这些网络在同一个 pod 中的容器之间进行通信,或者在同一个节点但不同的 pod 中,或者在不同的 pod 和不同的节点中。并且 Kubernetes 通常使用每个部署的服务在 pod 之间进行通信。
很容易实现。您只需为您的应用程序创建两个映像并使用这些映像来创建部署。确保每个部署的服务是什么。在您的代码中,当您要连接到部署的另一个 pod 时,可以直接将其与部署的服务连接。
在这里,我向您展示一个简单的计划:
deployment: frontend -> ASP.NET Core MVC, service: frontend-service
deployment: backend -> ASP.NET Core WebAPI, service: backend-service
在前端容器内,你可以像这样连接后端容器,我只是用shell命令来做例子:
curl http://backend-service
这意味着您只需要将您期望的容器与其服务连接起来。
Helm 只需使用图表为您管理所有事情。
推荐阅读
- powershell - 如何根据其他参数有条件地设置 PowerShell PSDefaultParameterValues
- node.js - 向 Morgan 和 EcsFormater 记录器添加自定义字段,这在 node.js 中是否可行
- c# - 事件被触发但不改变 UI
- spring - 尝试使用 Spring JPA 发送带有外键的 JSON 对象的 POST 请求时出现重复或 Null 错误
- python - 屏幕抓取特定问题
- amazon-s3 - PySpark 将 str 转换为 TimestampType
- flutter - Flutter:设置 WebView Cookie
- sql - bcp 查询出 XML 文件格式问题
- php - 正则表达式:带排除的点包括排除的字符
- java - max_allowed_packet 变量更改未解析 Packet for query is too large 错误