我正在使用Google Composer,但是由于我试图创建动态创建的DAG,因此无法使用托管的Web服务器[1]。因此,最后我需要添加一个插件,因为我需要使用REST API访问Airflow Web服务器,所以我安装了以下插件,因为实验性REST API不足以适合我的情况[2]:
当我更新插件时,托管的Airflow Web服务器能够接收更改。但是我自己管理的Airflow Web服务器无法接收更改。
我知道我需要重新启动Airflow Web服务器,但是执行此命令后,似乎没有重新启动Pod:
kubectl get deploy airflow-webserver -o yaml | kubectl replace --force -f -
如果您正在执行[3]中提到的步骤,则可以看到我的 deployment.yaml 。
通过对某些未使用的环境变量使用kubectl补丁重新启动Pod,似乎也无法正常工作。
[1] Dynamically Creating DAG based on Row available on DB Connection
[2] https://github.com/apache/airflow/blob/master/docs/api.rst
[3] https://cloud.google.com/composer/docs/how-to/managing/deploy-webserver
答案 0 :(得分:-1)
通过创建新环境,然后使用[1]将所有数据迁移到新环境中,已经解决了该问题,当前版本为1.4.1(我使用的先前版本为1.3.0)。关于发布的信息可以在[2]中找到。可以通过使用 gcsfuse 或使用Web控制台将plugins目录复制到plugins目录来安装插件。
如果您将插件用于Web服务器,则意味着您的端点也受到IAP保护。要以编程方式访问它,可以使用服务帐户[3]。
请注意,当您使用测试版时。使用以下命令创建的一个:
gcloud beta composer environments create <env> --location=<location> --airflow-version <version> --node-count <node-count>
您应该首先创建环境,然后运行我提供的脚本,因为v1beta1上提供了该Beta版本。同时,该脚本仅支持v1 API。
还请注意,如果您在旧环境中自己使用其他k8s资源,那么我提到的脚本将不会对此提供支持。该脚本仅将所有配置备份到您的气流中,即:DB,DAG和日志。因此,如果您使用的是自助式网络服务器,则应为此网络服务器重新创建部署。