K8Sは分散スケジューリングタスクAirflowを展開します

K8Sは分散スケジューリングタスクAirflowを展開します

[[437218]]

1. 展開要件

Apache Airflow は以下でテストされています:

注意: MySQL 5.x バージョンでは複数のスケジューラを実行できないか、実行に制限があります。スケジューラのドキュメントを参照してください。 MariaDB はテスト/推奨されていません。

注: Airflow テストには SQLite が使用されます。本番環境では使用しないでください。ローカル開発には、SQLite の最新の安定バージョンを使用することをお勧めします。

PS: この記事では、Airflow 安定バージョン 2.1.4 をデプロイし、Kubernetes はバージョン 1.20.x、PostgreSQL は 12.x を使用し、Helm Charts を使用してデプロイします。

2. Helmチャート構成を生成する

PS: デプロイメントには Helm 3 バージョンを使用してください

  1. # Kubernetes エアフロー名前空間を作成する
  2. $ kubectl名前空間エアフローを作成する
  3.  
  4. # エアフローチャート倉庫ソースを追加
  5. $ helm リポジトリに apache-airflowを追加しますhttps://airflow.apache.org
  6.  
  7. # aiarflowソースを更新
  8. $ helm リポジトリの更新 
  9.  
  10. # エアフローチャートのすべてのバージョンを表示します (ここでは、エアフロー 2.1.4 であるチャート 1.2.0 をデプロイすることを選択します)
  11. $ helm リポジトリを検索 apache-airflow/airflow -l
  12.  
  13. 名前チャートバージョン アプリバージョン 説明
  14. apache-airflow/airflow 1.3.0 2.2.1 Apache Airflow をデプロイするための公式 Helm チャート...
  15. apache-airflow/airflow 1.2.0 2.1.4 Apache Airflow をデプロイするための公式 Helm チャート...
  16. apache-airflow/airflow 1.1.0 2.1.2 Apache Airflow をデプロイするための公式 Helm チャート...
  17. apache-airflow/airflow 1.0.0 2.0.2プラットフォームである Apache Airflow をデプロイするためのHelm チャート...
  18.  
  19. # エアフローチャートの値を.yamlファイルにエクスポートする
  20. $ helm show values ​​apache-airflow/airflow --version 1.2.0 > airflow_1.2.4_values.yaml  

3. エアフロー構成を変更する

3.1 永続ストレージStorageClassを構成する

PS: 高速ストレージにはAlibaba Cloud NASをご利用ください

  1. # StorageClass ファイルを編集する
  2. $ vim alicloud-nas-airflow-test.yaml
  3.  
  4. APIバージョン: storage.k8s.io/v1
  5. 種類: ストレージクラス
  6. メタデータ:
  7. 名前: alicloud-nas-airflow-test
  8. マウントオプション:
  9. - ロックなし、TCP、ポートなし
  10. -vers=3
  11. パラメータ:
  12. ボリュームAs: サブパス
  13. サーバー: "xxxxx.cn-beijing.extreme.nas.aliyuncs.com:/share/airflow/"  
  14. プロビジョナー: nasplugin.csi.alibabacloud.com
  15. 回収ポリシー: 保持
  16.  
  17. # K8Sに応募する
  18. $ kubectl apply -f alicloud-nas-airflow-test.yaml

3.2 エアフロー Dags ストレージ ウェアハウス gitSshKey を構成する

  1. # airflow-ssh-secret.yaml ファイルを編集します。まず、shh 公開キーを git プロジェクト リポジトリに追加する必要があります。
  2. $ vim エアフロー-ssh-シークレット.yaml
  3.  
  4. APIバージョン: v1
  5. 種類: 秘密
  6. メタデータ:
  7. 名前: airflow-ssh-secret
  8. 名前空間: エアフロー
  9. データ:
  10. #キーはgitSshKeyである必要があります
  11. gitSshKey: "ssh 秘密鍵、base64"  
  12.  
  13. # K8Sに応募する
  14. $ kubectl apply -f エアフロー-ssh-secret.yaml

3.3 DockerでPostgreSQL 12をデプロイする

  1. # postgresql ストレージディレクトリを作成する
  2. $ mkdir /data/postgresql_data
  3.  
  4. # 起動ファイルを作成する
  5. $ vim docker-compose.yaml
  6.  
  7. バージョン: "3"  
  8.  
  9. サービス:
  10. エアフロー-Postgres:
  11. 画像: postgres:12
  12. 再起動: 常に
  13. コンテナ名: airflow-postgres
  14. 環境:
  15. TZ: アジア/上海
  16. POSTGRES_USER: エアフロー
  17. POSTGRES_パスワード: Airflow123
  18. ボリューム:
  19. -/data/postgresql_data:/var/lib/postgresql/data
  20. ポート:
  21. - 「5432:5432」  
  22.  
  23. # postgresql dockerを起動する
  24. $ docker-compose アップ -d

3.4 airflow_1.2.4_values.yaml設定を変更する

PS: この記事の airflow_1.2.4_values.yaml 構成ファイルには 3 つの pvc が必要です。サービスは redis、ワーカー (1 つのワーカーのみがデプロイされますが、複数のワーカーをデプロイできます)、dags です。

設定ファイルが長すぎるため、詳細は掲載しておりません。具体的な内容については、以下のリンクをご参照ください。

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

4. Airfolwを展開する

  1. # Airflow の最初の導入
  2. $ helm インストール airflow apache-airflow/airflow --namespace airflow --version 1.2.0 -f airflow_1.2.4_values.yaml  
  3.  
  4. # 将来的にエアフロー設定を変更したい場合は、次のコマンドを使用してください
  5. $ helm アップグレード--install airflow apache-airflow/airflow --namespace airflow --version 1.2.0 -f airflow_1.2.4_values.yaml  

5. Airflow Ingress Nginxアクセスエントリを構成する

  1. # Ingress nginx 設定ファイルを生成する
  2. $ vim エアフローイングレス.yaml
  3.  
  4. APIバージョン: networking.k8s.io/v1
  5. 種類: イングレス
  6. メタデータ:
  7. 名前: エアフロー
  8. 名前空間: エアフロー
  9. 注釈:
  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. 仕様:
  16. ルール:
  17. - ホスト: "airflow.example.com"  
  18. http:
  19. パス:
  20. - パス:​​ /
  21. パスタイプ: プレフィックス
  22. バックエンド:
  23. サービス:
  24. 名前: airflow-webserver
  25. ポート:
  26. 番号: 8080
  27.  
  28. # K8Sに応募する
  29. $ kubectl apply -f エアフローイングレス.yaml

6. 参考リンク

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

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

<<:  インターネット分散アーキテクチャの進化に関する簡単な説明

>>:  チップ不足、エッジコンピューティング、IoTが2022年のIT変革を推進する

推薦する

スマートマーケティング: 欲しいものを考えて、必要なものを提供する

月収10万元の起業の夢を実現するミニプログラム起業支援プラン現代のマーケティングの第一人者、フィリッ...

2022年のサーバー仮想化市場の発展状況

サーバー仮想化とは、物理サーバーを複数の仮想サーバーに分割する技術です。各仮想モーメントは他の仮想モ...

プライベート DLT かパブリック ブロックチェーンか?

許可型分散型台帳技術(DLT)はオープンブロックチェーンの問題に合わせて調整されているため、オープン...

ウェブサイトの SEO 分析: トラフィック キーワードの選択と最適化の方法

SEO に関して言えば、多くの友人はランキングに注目するかもしれません。なぜなら、ランキングがあれば...

グリーンクラウドコンピューティングが未来の夢を推進

「グリーン クラウド コンピューティング」は、コンピューティングやその他の IT リソースの持続可能...

itldcはどうですか? Los Angeles VPS の簡単なレビューで実際の結果がわかります!

itldcはどうですか? itldc は良いですか? itldc レビュー…1995 年に設立された...

#高防御サーバー# sharktech-80%割引コード/2 x E5-2670/32gメモリ/2x2Tハードディスク

Sharktech(Shark Data Center)の最新高防御サーバーが20%オフで販売中です...

Dockerが残したギャップ:イメージ配布の現状と考察

より効率的なクラウド サービスを実現するために、コンテナ テクノロジーは登場以来、業界から幅広い支持...

推奨: HostMist - $10/年/128MB RAM/15GB HDD/200GB トラフィック/ロサンゼルス/アトランタ

2009 年に設立されたこの VPS 企業 Hostmist は、価格を値下げし、プロモーションを行...

Webmaster.com の日刊レポート: 共同購入サイトの数は 3 月に 357 件減少し、再編が続く

1. 共同購入サイトの数は3月に357件減少しました。年末までに、一流の共同購入サイトは3~5件しか...

ライブストリーミングが618の変化を牽引:DouyinとKuaishouは積極的、一方商人は冷静

要点ライブストリーミング販売ブームは引き続き熱を帯びており、今年の伝統的な電子商取引プロモーションフ...

Baidu Statisticsと51laの水平比較

最近、Baidu Statistics をインストールしましたが、51la とどちらを選ぶか迷ってい...

Geek Host - 元旦20%オフ/51元/Windows/1Gメモリ/20Gハードドライブ/300Gトラフィック/香港/ロサンゼルス

中国のホスティングブランドであるGeek Hostは、2010年にWordPressブログ向けの仮想...

Qutoutiaoのコンテンツブレイクスルー

12月17日、 Qutoutiaoは新四半期の財務報告を発表した。インターネット業界では、大手企業で...