为什么需要此Azure防火墙规则?

时间:2018-12-02 19:51:26

标签: azure-aks azure-postgresql

我希望这里的某个人可能知道这是什么原因。我有一个带有多个微服务的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地址创建防火墙,因为在异常发生之前它不知道该地址是什么。每次我运行deplyoyment脚本创建新群集时,此异常中报告的IP地址都会更改。

有人知道此IP地址与之关联吗,如何确定该IP地址是什么,以便我可以创建所需的防火墙规则?

彼得

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

遗憾的是,无法以编程方式获取此IP。