postgresql - AKS - Web api 无法使用同一集群上的 ClusterIP 连接到数据库
问题描述
我的 web api 无法连接到 AKS 中同一群集上的 PostgreSQL 数据库。我为 postgres 创建了一个 ClusterIP,然后使用该 ClusterIP 中的 IP 地址作为我的数据库连接中的主机。我使用了默认端口 5432。
请注意,当我之前使用 NodePort 时它正在工作。
这是 PostgreSQL ClusterIP 服务 yaml:
apiVersion: v1
kind: Service
metadata:
name: postgres-service
labels:
app: portal
spec:
type: ClusterIP
ports:
- port: 5432
selector:
app: portal
tier: postgres
以下是正在运行的服务。我使用 postgres-service 的 Cluster-IP 作为我的 Web 应用程序中数据库连接字符串的主机。
这是我的连接字符串的一部分:
"portal": "host=10.0.....;port=5432;
不确定这有什么问题,但 web api 无法连接到数据库。下面是错误。
Cannot connect to database. Error: Npgsql.NpgsqlException (0x80004005): Exception while connecting\n ---> System.TimeoutException: The operation has timed out.\n at Npgsql.TaskExtensions.WithTimeout(Task task, NpgsqlTimeout timeout)\n at Npgsql.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken)\n at Npgsql.NpgsqlConnector.ConnectAsync(NpgsqlTimeout timeout, CancellationToken cancellationToken)\n at Npgsql.NpgsqlConnector.RawOpen(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)\n at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)\n at Npgsql.NpgsqlConnection.<>c__DisplayClass32_0.<<Open>g__OpenLong|0>d.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.ExistsAsync(CancellationToken cancellationToken)\n at
这是 postgres-service 的描述
Name: postgres-service
Namespace: default
Labels: app=portal
Annotations: <none>
Selector: app=portal,tier=postgres
Type: ClusterIP
IP: 10.0.xxx.xxx
Port: <unset> 5432/TCP
TargetPort: 5432/TCP
Endpoints: 10.xxx.xxx.xxx:5432
Session Affinity: None
Events: <none>
解决方案
我现在可以让它工作了。问题不是 ClusterIP,而是我的 AKS API 部署无法正常工作。
修复我的发布管道后,一切都恢复正常了。
推荐阅读
- terminal - 每次启动终端时都会出现 kubectl 消息
- react-native - 反应原生地图 MapView.onPress 并不总是被触发
- graph - 如何使用 Intune Graph AP 获取所有托管设备的 roleScopeTagIds?
- html - 如何在VBA中将替换文本的颜色更改为html
- javascript - 从 Contenteditable div 美化 innerHTML
- javascript - 你能/如何将构造函数添加到对象中吗?
- sql - 返回连接表的不同/唯一记录
- android - 在水平 LinearLayout 中动态添加 TextView
- android - 识别和保存 Mac 地址
- php - 在我的 html 内容中输出数据库信息