如何在Google Composer中重新启动自我管理的气流网络服务器



我正在使用Google Composer,但由于我试图创建一个动态创建的DAG,我无法使用托管web服务器[1]。所以最后我需要添加一个插件,因为我需要使用REST API访问Airflow Web服务器,所以我安装了以下插件,因为实验性的REST API不足以满足我的情况[2]:

  • https://github.com/teamclairvoyant/airflow-rest-api-plugin

当我更新插件时,我管理的Airflow Web服务器能够接收更改。然而,我自己管理的Airflow网络服务器无法接收更改。

我知道我需要重新启动Airflow Web服务器,但在我执行以下命令后,我的pod似乎没有重新启动:

kubectl get deploy airflow-webserver -o yaml | kubectl replace --force -f -

为了供您参考,如果您正在执行[3]中提到的步骤,可以看到我的部署。yaml

通过对某些未使用的环境变量使用kubectl补丁来重新启动pod似乎也不起作用。

[1] 基于数据库连接上可用行动态创建DAG

[2]https://github.com/apache/airflow/blob/master/docs/api.rst

[3]https://cloud.google.com/composer/docs/how-to/managing/deploy-webserver

这个问题已经通过创建一个新环境,然后使用[1]将所有数据迁移到新环境中解决了,当前版本是1.4.1(我使用的前一版本是1.3.0)。有关发布的信息可以在[2]中找到。插件可以通过使用gcsfuse或使用web控制台将插件目录复制到插件目录来安装。

如果你正在为你的网络服务器使用插件,这意味着你的端点也受到IAP的保护。若要以编程方式访问它,可以使用服务帐户[3]。

[1]https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/composer/tools/copy_environment.py

请注意,当您使用测试版时。使用以下命令创建的:

gcloud beta composer environments create <env> --location=<location> --airflow-version <version> --node-count <node-count>

您应该首先创建环境,然后运行我提供的脚本,因为这个测试版在v1beta1上可用。同时该脚本只支持v1 API。

还请注意,如果您在旧环境中单独使用其他k8s资源,我提到的脚本不会对此进行备份。该脚本只将所有配置备份到您的气流中,即:DB、DAG和日志。因此,如果您使用的是自我管理的Web服务器,您应该重新创建此Web服务器的部署。

[2]https://cloud.google.com/composer/docs/release-notes

[3]https://cloud.google.com/iap/docs/authentication-howto

相关内容

最新更新