日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
K8S部署分布式調(diào)度任務(wù)Airflow

K8S部署分布式調(diào)度任務(wù)Airflow

作者:YP小站 2021-11-29 08:48:00

開(kāi)源

分布式 本文部署 Airflow 穩(wěn)定版 2.1.4,Kubernetes使用1.20.x版本,PostgreSQL使用12.x,使用Helm Charts部署。

創(chuàng)新互聯(lián)公司是專業(yè)的普洱網(wǎng)站建設(shè)公司,普洱接單;提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行普洱網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

一、部署要求

Apache Airflow 已通過(guò)以下測(cè)試:

注意: MySQL 5.x 版本不能或有運(yùn)行多個(gè)調(diào)度程序的限制——請(qǐng)參閱調(diào)度程序文檔。MariaDB 未經(jīng)過(guò)測(cè)試/推薦。

注意: SQLite 用于 Airflow 測(cè)試。不要在生產(chǎn)中使用它。我們建議使用最新的 SQLite 穩(wěn)定版本進(jìn)行本地開(kāi)發(fā)。

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

二、生成Helm Charts配置

PS:使用 helm 3 版本部署

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

三、修改airflow配置

3.1 配置持續(xù)存儲(chǔ) StorageClass

PS: 使用阿里云NAS極速存儲(chǔ)

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

3.2 配置 airflow Dags 存儲(chǔ)倉(cāng)庫(kù) gitSshKey

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

3.3 Docker 部署 PostgreSQL 12

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

3.4 修改 airflow_1.2.4_values.yaml 配置

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

因配置文件太長(zhǎng),不具體貼出,具體內(nèi)容請(qǐng)參考下面鏈接:

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. # 以后如果要修改airflow配置,請(qǐng)使用下面命令
  4. $ helm upgrade --install airflow apache-airflow/airflow --namespace airflow --version 1.2.0 -f airflow_1.2.4_values.yaml

五、配置 Airflow Ingress Nginx 訪問(wèn)入口

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


文章標(biāo)題:K8S部署分布式調(diào)度任務(wù)Airflow
轉(zhuǎn)載來(lái)于:http://www.dlmjj.cn/article/djsocdg.html