将最小配置的Airflow部署到GKE上
首先
Airflow を単体の docker container で立ち上げる で作成した container image を GKE に deploy します
参考实现
metabase-gke で GKE への deploy 実績があるのでこれを参考にする
Kubernetes的配置示例
-
- https://github.com/kubernetes/examples
- 1.10 までは kubernetes 本体と同じレポジトリにあった https://github.com/kubernetes/kubernetes/tree/v1.10.13/examples
部署、服务、入口
- この辺の構成を理解していないと設定ファイルの書き方に迷う
部署
Deployment会创建和管理ReplicaSet,而ReplicaSet会根据Pod模板来创建和管理Pod。
ReplicaSet(ReplicationController的继承者)根据Pod模板调整和管理Pod的数量(副本数)。
-
- https://qiita.com/tkusumi/items/01cd18c59b742eebdc6a
-
- https://v1-10.docs.kubernetes.io/docs/concepts/workloads/controllers/deployment/
- https://cloud.google.com/kubernetes-engine/docs/concepts/deployment?hl=ja
服务
Service的主要作用是将Pod和节点的存在进行抽象化,并提供与Pod通信的单个端点。
-
- https://qiita.com/kouares/items/94a073baed9dffe86ea0
-
- https://v1-10.docs.kubernetes.io/docs/concepts/services-networking/service/
- https://cloud.google.com/kubernetes-engine/docs/concepts/service?hl=ja
进站
Ingress是一个HTTPS层的负载均衡器,可以通过Ingress来管理IP管理等,这是Google推荐的方式。
-
- https://qiita.com/Hirata-Masato/items/8e6b4536b6f1b23c5270
-
- https://v1-10.docs.kubernetes.io/docs/concepts/services-networking/ingress/
- https://cloud.google.com/kubernetes-engine/docs/concepts/ingress?hl=ja
在中国推出Ingress
-
- ServiceType は未指定の場合 ClusterIP なので、これを NodePort に変更します。Ingress 側の ServiceName と ServicePort で Service の name と port を指定します
-
- https://v1-10.docs.kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
- https://qiita.com/Hirata-Masato/items/8e6b4536b6f1b23c5270#%EF%BC%91-service-deployment%E3%81%AE%E8%A8%AD%E5%AE%9A
在Aiflow的情况下,由于/admin/成为根路径,因此通过 readinessProbe 可以更改健康检查路径。
- https://qiita.com/Hirata-Masato/items/8e6b4536b6f1b23c5270#%E8%BF%BD%E8%A8%98201823
首次证明文件获取
- Let’s Encrypt 側でエンドポイントを確認できるまでは証明書が取得できないので、一旦 http で証明書を取得してから https に移行する
在反向代理(Ingress)中设置Airflow。
- 環境変数 AIRFLOW__WEBSERVER__ENABLE_PROXY_FIX に True を設定する
实施
- https://github.com/kysnm/airflow-gke
Ingress 故障排除
- この資料がとても役立った https://github.com/gcpug/nouhau/tree/master/kubernetes-engine/poem/ingress-nouhau