从入门到精通:User-Community Airflow Helm Chart的数据库配置全攻略
从入门到精通User-Community Airflow Helm Chart的数据库配置全攻略【免费下载链接】chartsThe User-Community Airflow Helm Chart is the standard way to deploy Apache Airflow on Kubernetes with Helm. Originally created in 2017, it has since helped thousands of companies create production-ready deployments of Airflow on Kubernetes.项目地址: https://gitcode.com/gh_mirrors/charts27/chartsUser-Community Airflow Helm Chart是在Kubernetes上使用Helm部署Apache Airflow的标准方式自2017年创建以来已帮助数千家公司在Kubernetes上创建了生产就绪的Airflow部署。本文将为你全面解析该项目的数据库配置方法从嵌入式数据库到外部数据库助你轻松掌握数据库配置技巧。一、数据库配置前的关键选择嵌入式还是外部在开始配置Airflow数据库之前首先需要明确一个重要选择使用嵌入式数据库还是外部数据库。这一决定将直接影响你的Airflow部署性能、安全性和可扩展性。1.1 嵌入式数据库仅适用于测试环境嵌入式数据库是User-Community Airflow Helm Chart默认提供的数据库解决方案它基于PostgreSQL构建开箱即可使用无需额外配置。然而需要特别注意的是嵌入式数据库并不适合生产环境。警告嵌入式数据库不适用于生产环境我们强烈建议使用外部数据库替代嵌入式数据库存在以下局限性版本通常较旧容易受到关键安全漏洞的影响无法根据性能需求进行扩展可靠性和可用性难以保证缺乏完善的备份和灾难恢复机制如果你只是进行测试或开发工作可以使用嵌入式数据库。但为了安全起见即使在测试环境也建议修改默认密码。1.2 外部数据库生产环境的最佳选择对于生产环境强烈推荐使用外部数据库。与嵌入式Postgres相比外部数据库具有诸多优势更高的安全性外部数据库通常会及时更新修复安全漏洞更好的可扩展性可以根据需求调整资源满足性能要求更高的可用性专业的数据库服务提供更好的稳定性和 uptime完善的备份与恢复支持定期备份和灾难恢复策略外部数据库是企业级Airflow部署的必备选择接下来我们将详细介绍如何配置各种外部数据库。二、嵌入式数据库配置快速上手测试环境虽然嵌入式数据库不适合生产环境但在开发和测试阶段它可以帮助你快速搭建Airflow环境。以下是嵌入式数据库的基本配置方法。2.1 修改默认密码提升安全性嵌入式PostgreSQL数据库默认密码为airflow这在测试环境中也存在安全风险。为了提高数据库安全性你应该生成自定义密码并存储在Kubernetes secret中。例如要使用名为airflow-postgresql的预创建Secret其中包含名为postgresql-password的密钥postgresql: existingSecret: airflow-postgresql existingSecretKey: postgresql-password提示你可以使用kubectl创建带有随机postgresql-password密钥的airflow-postgresqlSecretkubectl create secret generic \ airflow-postgresql \ --from-literalpostgresql-password$(openssl rand -base64 13) \ --namespace my-airflow-namespace三、外部数据库配置打造生产级Airflow环境对于生产环境外部数据库是更好的选择。User-Community Airflow Helm Chart支持多种外部数据库包括PostgreSQL和MySQL等主流关系型数据库以及Redis等缓存数据库。3.1 PostgreSQLAirflow生态系统的推荐选择PostgreSQL是Airflow生态系统中推荐使用的数据库因其在Airflow生态系统中历来具有更高的支持水平。许多企业选择托管Postgres服务以下是一些流行的选项云平台服务名称Amazon Web ServicesAmazon RDS for PostgreSQLMicrosoft AzureAzure Database for PostgreSQLGoogle CloudCloud SQL for PostgreSQLAlibaba CloudApsaraDB RDS for PostgreSQLIBM CloudIBM Cloud® Databases for PostgreSQL3.1.1 配置外部PostgreSQL数据库要配置外部PostgreSQL数据库你需要在Helm values文件中进行如下设置postgresql: ## 要使用外部数据库必须禁用嵌入式数据库 enabled: false ## 有关PgBouncer配置的完整列表请参见values.yaml pgbouncer: enabled: true ## 警告对于password_encryption SCRAM-SHA-256的PostgreSQL需要以下非默认值 # authType: scram-sha-256 ## 警告对于Azure PostgreSQL需要以下非默认值 # authType: scram-sha-256 # serverSSL: # mode: verify-ca externalDatabase: type: postgres host: postgres.example.org port: 5432 ## 将包含airflow表的schema database: airflow_cluster1 ## (用户名 - 选项1) 明文helm值 user: my_airflow_user ## (用户名 - 选项2) airflow命名空间中的Kubernetes secret #userSecret: airflow-cluster1-database-credentials #userSecretKey: username ## (密码 - 选项1) 明文helm值 password: my_airflow_password ## (密码 - 选项2) airflow命名空间中的Kubernetes secret #passwordSecret: airflow-cluster1-database-credentials #passwordSecretKey: password ## 用于任何额外的连接字符串设置例如?sslmodedisable properties: 提示默认情况下我们部署PgBouncer的更多信息。3.2 MySQL另一种可行的数据库选择除了PostgreSQL你也可以使用MySQL作为外部数据库。但在使用MySQL时需要注意一些特殊配置。警告你必须在MySQL实例中设置explicit_defaults_for_timestamp1详见此处。3.2.1 配置外部MySQL数据库要配置外部MySQL数据库你需要在Helm values文件中进行如下设置postgresql: ## 要使用外部数据库必须禁用嵌入式数据库 enabled: false pgbouncer: ## 如果externalDatabase.type是mysqlpgbouncer会自动禁用 #enabled: false externalDatabase: type: mysql host: mysql.example.org port: 3306 ## 将包含airflow表的数据库 database: airflow_cluster1 ## (用户名 - 选项1) 明文helm值 user: my_airflow_user ## (用户名 - 选项2) airflow命名空间中的Kubernetes secret #userSecret: airflow-cluster1-database-credentials #userSecretKey: username ## (密码 - 选项1) 明文helm值 password: my_airflow_password ## (密码 - 选项2) airflow命名空间中的Kubernetes secret #passwordSecret: airflow-cluster1-database-credentials #passwordSecretKey: password ## 用于任何额外的连接字符串设置例如?useSSLfalse properties: 3.3 Redis缓存与消息队列配置在Airflow中Redis通常用作CeleryExecutor的消息代理和结果后端。配置外部Redis可以提高系统的可靠性和性能。3.3.1 配置外部Redis以下是配置外部Redis的示例redis: enabled: false externalRedis: host: example.redis.cache.windows.net port: 6380 ## airflow将使用的redis数据库编号 databaseNumber: 1 ## (选项1 - 密码) 明文helm值 password: my_airflow_password ## (选项2 - 密码) airflow命名空间中的Kubernetes secret #passwordSecret: airflow-cluster1-redis-credentials #passwordSecretKey: password ## 用于任何额外的连接字符串设置 properties: ?ssl_cert_reqsCERT_OPTIONAL四、数据库配置最佳实践确保Airflow稳定运行无论你选择哪种数据库配置以下最佳实践都能帮助你确保Airflow的稳定运行4.1 安全存储数据库凭证避免在配置文件中使用明文密码始终使用Kubernetes Secret存储敏感信息。这可以防止凭证泄露并便于凭证轮换。4.2 定期备份数据库无论是嵌入式数据库还是外部数据库都应该定期备份数据。对于外部数据库利用云服务提供商的自动备份功能对于嵌入式数据库设置定期备份任务。4.3 监控数据库性能密切监控数据库性能指标如连接数、查询执行时间、磁盘空间等。通过Prometheus等监控工具可以及时发现并解决性能问题。4.4 合理配置连接池使用PgBouncer等连接池工具可以有效管理数据库连接提高资源利用率。根据实际负载调整连接池大小避免连接过多导致数据库性能下降。五、总结选择最适合你的数据库配置方案User-Community Airflow Helm Chart提供了灵活的数据库配置选项无论是快速测试还是生产部署都能满足你的需求。记住开发测试环境可以使用嵌入式数据库但务必修改默认密码生产环境强烈推荐使用外部数据库如PostgreSQL或MySQLRedis作为缓存和消息队列可以提高Airflow的性能和可靠性遵循最佳实践确保数据库安全、可靠运行通过本文的指南你应该能够轻松配置User-Community Airflow Helm Chart的数据库为你的Airflow部署打下坚实的基础。如需更多帮助请查阅项目文档或社区支持资源。【免费下载链接】chartsThe User-Community Airflow Helm Chart is the standard way to deploy Apache Airflow on Kubernetes with Helm. Originally created in 2017, it has since helped thousands of companies create production-ready deployments of Airflow on Kubernetes.项目地址: https://gitcode.com/gh_mirrors/charts27/charts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考