成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

K8S部署分布式調度任務Airflow

開源 分布式
本文部署 Airflow 穩定版 2.1.4,Kubernetes使用1.20.x版本,PostgreSQL使用12.x,使用Helm Charts部署。

[[437218]]

一、部署要求

Apache Airflow 已通過以下測試:

注意: MySQL 5.x 版本不能或有運行多個調度程序的限制——請參閱調度程序文檔。MariaDB 未經過測試/推薦。

注意: SQLite 用于 Airflow 測試。不要在生產中使用它。我們建議使用最新的 SQLite 穩定版本進行本地開發。

PS:本文部署 Airflow 穩定版 2.1.4,Kubernetes使用1.20.x版本,PostgreSQL使用12.x,使用Helm Charts部署。

二、生成Helm Charts配置

PS:使用 helm 3 版本部署

  1. # 創建kubernetes airflow 命名空間 
  2. $ kubectl create namespace airflow 
  3.  
  4. # 添加 airflow charts 倉庫源 
  5. $ helm repo add apache-airflow https://airflow.apache.org 
  6.  
  7. # 更新 aiarflow 源 
  8. $ helm repo update 
  9.  
  10. # 查看 airflow charts 所有版本(這里選擇部署charts 1.2.0,也就是airflow 2.1.4) 
  11. $ helm search repo apache-airflow/airflow -l 
  12.  
  13. NAME                    CHART VERSION   APP VERSION DESCRIPTION 
  14. apache-airflow/airflow  1.3.0           2.2.1       The official Helm chart to deploy Apache Airflo... 
  15. apache-airflow/airflow  1.2.0           2.1.4       The official Helm chart to deploy Apache Airflo... 
  16. apache-airflow/airflow  1.1.0           2.1.2       The official Helm chart to deploy Apache Airflo... 
  17. apache-airflow/airflow  1.0.0           2.0.2       Helm chart to deploy Apache Airflow, a platform... 
  18.  
  19. # 導出 airflow charts values.yaml 文件 
  20. $ helm show values apache-airflow/airflow --version 1.2.0 > airflow_1.2.4_values.yaml 

三、修改airflow配置

3.1 配置持續存儲 StorageClass

PS: 使用阿里云NAS極速存儲

  1. # 編輯 StorageClass 文件 
  2. $ vim alicloud-nas-airflow-test.yaml 
  3.  
  4. apiVersion: storage.k8s.io/v1 
  5. kind: StorageClass 
  6. metadata: 
  7.   name: alicloud-nas-airflow-test 
  8. mountOptions: 
  9.   - nolock,tcp,noresvport 
  10.   - vers=3 
  11. parameters: 
  12.   volumeAs: subpath 
  13.   server: "xxxxx.cn-beijing.extreme.nas.aliyuncs.com:/share/airflow/" 
  14. provisioner: nasplugin.csi.alibabacloud.com 
  15. reclaimPolicy: Retain 
  16.  
  17. # 應用到K8S中 
  18. $ kubectl apply -f alicloud-nas-airflow-test.yaml 

3.2 配置 airflow Dags 存儲倉庫 gitSshKey

  1. # 編輯 airflow-ssh-secret.yaml 文件,首先需要把shh公鑰添加到git項目倉庫中 
  2. $ vim airflow-ssh-secret.yaml 
  3.  
  4. apiVersion: v1 
  5. kind: Secret 
  6. metadata: 
  7.   name: airflow-ssh-secret 
  8.   namespace: airflow 
  9. data: 
  10.   # key needs to be gitSshKey 
  11.   gitSshKey: "ssh私鑰,base64" 
  12.  
  13. # 應用到K8S中 
  14. $ kubectl apply -f airflow-ssh-secret.yaml 

3.3 Docker 部署 PostgreSQL 12

  1. # 創建 postgresql 存儲目錄 
  2. $ mkdir /data/postgresql_data 
  3.  
  4. # 創建啟動文件 
  5. $ vim docker-compose.yaml 
  6.  
  7. version: "3" 
  8.  
  9. services: 
  10.   airflow-postgres: 
  11.     image: postgres:12 
  12.     restart: always 
  13.     container_name: airflow-postgres 
  14.     environment: 
  15.       TZ: Asia/Shanghai 
  16.       POSTGRES_USER: airflow 
  17.       POSTGRES_PASSWORD: Airflow123 
  18.     volumes: 
  19.       - /data/postgresql_data:/var/lib/postgresql/data 
  20.     ports: 
  21.       - "5432:5432" 
  22.  
  23. # 啟動 postgresql docker 
  24. $ docker-compose up -d 

3.4 修改 airflow_1.2.4_values.yaml 配置

PS:本文 airflow_1.2.4_values.yaml 配置文件需要三個pvc,服務分別是 redis、worker(只部署1個worker,可以部署多個worker)、dags

因配置文件太長,不具體貼出,具體內容請參考下面鏈接:

https://github.com/yangpeng14/DevOps/blob/master/config_dir/airflow_1.2.4_values.yaml

四、部署 Airfolw

  1. # 第一次部署 Airflow 
  2. $ helm install airflow apache-airflow/airflow --namespace airflow --version 1.2.0 -f airflow_1.2.4_values.yaml 
  3.  
  4. # 以后如果要修改airflow配置,請使用下面命令 
  5. $ helm upgrade --install airflow apache-airflow/airflow --namespace airflow --version 1.2.0 -f airflow_1.2.4_values.yaml 

五、配置 Airflow Ingress Nginx 訪問入口

  1. # 生成 ingress nginx 配置文件 
  2. $ vim airflow-ingress.yaml 
  3.  
  4. apiVersion: networking.k8s.io/v1 
  5. kind: Ingress 
  6. metadata: 
  7.   name: airflow 
  8.   namespace: airflow 
  9.   annotations: 
  10.     kubernetes.io/ingress.class: nginx 
  11.     nginx.ingress.kubernetes.io/ssl-redirect: "false" 
  12.     nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" 
  13.     nginx.ingress.kubernetes.io/proxy-read-timeout: "60" 
  14.     nginx.ingress.kubernetes.io/proxy-send-timeout: "60" 
  15. spec: 
  16.   rules: 
  17.   - host: "airflow.example.com" 
  18.     http: 
  19.       paths: 
  20.       - path: / 
  21.         pathType: Prefix 
  22.         backend: 
  23.           service: 
  24.             name: airflow-webserver 
  25.             port: 
  26.               number: 8080 
  27.  
  28. # 應用到K8S中 
  29. $ kubectl apply -f airflow-ingress.yaml 

六、參考鏈接

1、https://github.com/apache/airflow/tree/2.1.4

2、https://airflow.apache.org/docs/helm-chart/1.2.0/index.html

 

責任編輯:姜華 來源: YP小站
相關推薦

2020-09-29 19:20:05

鴻蒙

2023-06-26 00:14:28

Openjob分布式任務

2020-11-06 12:12:35

HarmonyOS

2023-05-08 16:38:46

任務調度分布式任務調度

2022-06-20 15:32:55

Stage模型分布式開發

2022-06-13 07:43:21

分布式Spring

2019-11-15 10:16:27

分布式任務框架

2021-11-10 16:10:18

鴻蒙HarmonyOS應用

2022-01-05 19:34:18

AirflowCeleryMYSQL

2025-05-13 03:22:00

2024-05-23 10:19:57

2024-09-23 04:00:00

java架構分布式系統

2021-08-30 10:28:09

FlinkSpark on k8分布式

2021-08-16 09:55:41

鴻蒙HarmonyOS應用

2021-05-31 20:24:16

鴻蒙HarmonyOS應用

2023-09-06 08:12:04

k8s云原生

2022-01-27 08:27:23

Dubbo上下線設計

2021-07-09 05:49:53

分布式代碼算法

2017-08-22 11:10:44

大數據分布式調度

2017-07-26 14:55:32

分布式技術架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美综合精品久久成人 | 国产亚洲精品久久久久久豆腐 | 午夜影院免费体验区 | 久久久精品影院 | 视频一二三区 | 精品国产一区二区三区日日嗨 | 日韩a在线 | 在线播放一区 | 中文字幕一区在线观看视频 | 亚洲精品国产电影 | 国产精品不卡 | 精精精精xxxx免费视频 | 成人精品一区二区户外勾搭野战 | 欧美国产精品一区二区三区 | 草草视频在线免费观看 | 成人水多啪啪片 | jlzzjlzz国产精品久久 | 久久久www成人免费精品 | 午夜影院网站 | 亚洲视频中文 | 逼逼网 | 翔田千里一区二区 | 久久99精品久久久久久 | 日韩成人精品一区 | 国产欧美精品一区二区色综合 | 国产在线a视频 | 天天综合久久网 | 在线国产99| www97影院| 亚洲精品久久嫩草网站秘色 | 精品少妇一区二区三区日产乱码 | 日韩欧美在线视频 | 日本精品一区 | 久久99精品视频 | 天天色天天射天天干 | 欧美黄a| 天天激情综合 | 久久成人免费视频 | 日韩欧美一区在线 | 91在线视频免费观看 | 国产综合视频 |