我正在尝试使用社区驱动的气流 helm 图表连接到我在 Azure 中创建的 postgresql 数据库。
我能够毫无问题地将此数据库连接到官方气流掌舵图,但我的同事决定他想继续使用社区图表。
我提前道歉,因为这是我自愿担任的工作角色,但我对 kubernetes 和数据库的知识非常有限。
我按照外部数据库指南在这里
以下是我添加到我的价值观中的片段。
postgresql:
enabled: false
externalDatabase:
type: postgres
host: database-postgres-db.postgres.database.azure.com
port: 5432
database: cool_db
user: cool_user@database-postgres-db
password: CoolPassword!1234
# authType: scam-sha-256
# ServerSSL:
# mode: verify-ca
properties: "sslmode=enable"
指南说要添加 auth 类型和 serverssl 参数,但我已经尝试过没有以及官方 helm chart 不需要,即使“启用 ssl”在 azure 中的资源中打开。
数据库中的所有权限都已授予 cool_user,我也可以使用我的终端连接到它。一般来说,我对数据库不是很熟悉,但我按照气流网站here的生产指南来设置数据库。我也确实确认数据库版本与我们正在使用的气流版本 2.3.4.
在线我可以安装 helm chart 并使用我们的默认值自定义图像运行,当我添加外部数据库值时,没有 pod 将启动。我无法获取任何日志,因为它们卡在 init:0/2 中,然后进入 crashloopbackoff 状态。
这是来自数据库迁移 pod 的“事件”。
tEvents:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 26s default-scheduler Successfully assigned airflow/airflow-db-migrations-6f86f64cfc-gwhk6 to aks-agentpool-76305739-vmss00000a
Normal Pulled 17s (x2 over 25s) kubelet Container image "repo.azurecr.io/custom-airflow-clean:latest" already present on machine
Normal Created 17s (x2 over 25s) kubelet Created container check-db
Normal Started 17s (x2 over 25s) kubelet Started container check-db
Warning BackOff 11s kubelet Back-off restarting failed container
我已经尝试从集群中删除所有内容并使用 helm “fresh” 安装。我也将集群的 IP 范围添加到 postgres 防火墙(以防万一,但我认为不需要,)资源组 vnet 已经添加到 VNET 规则中。这种联系是通过 Azure 中的对等互连建立的。同样,在同一集群上制作的官方 helm chart 可以连接到 cool_db。
mode: verify-ca
将上面的内容放在 pgbouncer 下解决了这个问题。