将最小配置的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
广告
将在 10 秒后关闭
bannerAds