Почему требуется это правило брандмауэра Azure? - PullRequest
0 голосов
/ 02 декабря 2018

Я надеюсь, что кто-то здесь может иметь представление о том, что вызывает это.У меня есть кластер AKS с несколькими микросервисами, которые обращаются к ресурсам на сервере базы данных Azure Postgres.У меня есть правила брандмауэра, определенные для сервера Postgres как для подсети POD, так и для подсети службы Kubernetes.Все обращения к базам данных на этом сервере 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-адрес и как я могу определить, каким он будет, поэтому яможно создать требуемое правило брандмауэра?

Питер

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

К сожалению, нет никакого способа программно получить этот IP.

0 голосов
/ 03 декабря 2018

В этом случае OP решил проблему, обновив уровень Postgre и внедрив правила vnet, чтобы разрешить трафик.

...