使用Helm部署Airflow集群的步骤如下。
步骤1 使用下面的命令添加Airflow的Helm chart仓库:
helm repo add apache-airflow https://airflow.apache.org
helm repo update
步骤2 使用下面的命令创建Kubernetes的namespace:
kubectl create namespace example-namespace
步骤3 使用下面的命令安装Airflow的Helm chart:
helm install example-release apache-airflow/airflow \
--namespace example-namespace \
--set-string 'env[0].name=AIRFLOW__CORE__LOAD_EXAMPLES,env[0].value=True'
这一步可能会花费一些时间,可以用下面的kubectl命令确认Airflow集群是否已经安装就绪:
kubectl -n example-namespace get po
如果组件都正常工作,上述命令的输出信息如图1-5所示。
图1-5 Airflow所有的组件都正常运行
图1-5显示Airflow所有组件的状态都是Running,这代表一切正常。
另一种确认Airflow集群是否安装就绪的方法是使用Helm命令判断Airflow应用的状态:
helm list --namespace example-namespace
成功安装Airflow应用的标志是命令的输出信息中STATUS一栏为deployed,如图1-6所示。
图1-6 Helm成功安装Airflow应用
步骤4 完成前面的步骤之后能够得到一个正常工作的Airflow集群,但是这个集群无法通过浏览器访问。为了通过浏览器访问集群,使用下面的命令进行端口映射:
kubectl -n example-namespace port-forward svc/example-release-webserver 8080:
8080
接下来打开浏览器,访问http://localhost:8080/,应该能正常载入Airflow Webserver的登录页面,如图1-7所示。
图1-7 Airflow Webserver的登录页面
在Username文本框中输入admin,在Password文本框中输入admin,然后单击Sign In按钮进行登录。成功登录后将进入Airflow Webserver的主页面,如图1-8所示。
图1-8 Airflow Webserver的主页面
至此,Airflow集群构建完毕。接下来我们通过一个示例介绍如何使用Airflow集群。
在图1-8中,我们看到已经有了一些DAG。这些都是Airflow官方提供的示例DAG。因为1.3节在创建集群的时候设置了环境变量AIRFLOW__CORE__LOAD_EXAMPLES为True,所以主页面中显示已经加载了示例DAG。
现在尝试运行第一个示例DAG——example_bash_operator,以此来验证Airflow集群是否可以正常工作。单击DAG左侧的激活按钮来激活这个DAG,如图1-9所示。
图1-9 激活DAG
如果Airflow集群的状态正常,此时example_bash_operator开始运行。一段时间之后可以看到example_bash_operator已经成功运行了一轮,如图1-10所示。
图1-10 成功运行DAG
本章致力于让读者快速拥有一个能够运行本书中绝大多数示例代码的Airflow集群。因为本章介绍的集群中的Airflow组件直接利用了Airflow官方的镜像,所以没有涉及Airflow的安装过程。如果对Airflow的安装感兴趣,请参考第2章的内容。另外,值得注意的是,本章介绍的只是一个功能性集群,建议用来学习Airflow或者用于开发和测试环境。如果需要在生产环境部署Airflow集群,请参考第3章的内容。