AKS-Web API无法使用同一群集上的ClusterIP连接到数据库

时间:2020-07-03 11:52:36

标签: postgresql kubernetes azure-aks

我的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 ap中数据库连接字符串上的主机。

这是我的连接字符串的一部分: "portal": "host=10.0.....;port=5432;

enter image description here

不确定这是怎么回事,但是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服务的需求

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>

1 个答案:

答案 0 :(得分:1)

我现在可以使其工作了。问题不是ClusterIP,而是我向AKS的API部署无法正常工作。

修复发布管道后,一切都会恢复正常。