0

我希望这里有人可能知道是什么原因造成的。我有一个 AKS 群集,其中包含许多访问 Azure Postgres 数据库服务器中的资源的微服务。我为 POD 子网和 Kubernetes 服务子网的 Postgres 服务器定义了防火墙规则。此 Postgres 服务器中对数据库的所有访问都来自这些子网。无法从外部源访问此服务器。但是,当我的服务启动时,我总是受到以下异常的影响:

2018-12-02 19:23:57.540  INFO [venus,,,] 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-12-02 19:23:57.543  INFO [venus,,,] 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet complexGraphQLServlet mapped to [/graphql/*]
2018-12-02 19:23:57.545  INFO [venus,,,] 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet zuulServlet mapped to [/zuul/*]
2018-12-02 19:23:58.037  INFO [venus,,,] 1 --- [           main] o.f.core.internal.util.VersionPrinter    : Flyway Community Edition 5.0.7 by Boxfuse
2018-12-02 19:23:58.052  INFO [venus,,,] 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2018-12-02 19:23:58.577  WARN [venus,,,] 1 --- [           main] unknown.jul.logger                       : SQLException occurred while connecting to mydbserver.postgres.database.azure.com:5432

org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "40.12.13.14", user "postgres", database "mydb", SSL on
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:473)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:205)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
        at org.postgresql.Driver.makeConnection(Driver.java:452)
        at org.postgresql.Driver.connect(Driver.java:254)

我不知道这个外部 IP 引用是从哪里来的。我确实为我的集群定义了几个公共 IP,但没有一个与这个 40.12.13.14 地址匹配。如果我在我的服务器设置中创建防火墙规则,这个异常就会消失,我的微服务访问他们的数据库也没有问题。

如果需要这条规则,我显然可以添加它。问题是集群是通过 Python 部署脚本创建的,它无法为该 IP 地址创建防火墙,因为在发生异常之前它不知道该地址将是什么。每次我运行部署脚本创建新集群时,此异常中报告的 IP 地址都会更改。

有谁知道这个 IP 地址与什么相关联,以及我如何确定它将是什么,以便我可以创建所需的防火墙规则?

彼得

4

2 回答 2

1

在这种情况下,OP 通过升级 Postgre 层并实施 vnet 规则以允许流量来解决问题。

于 2018-12-03T17:15:25.930 回答
0

可悲的是,没有办法以编程方式获取此 IP。

于 2018-12-03T18:22:15.380 回答