[[437218]] I. 展開要件Apache Airflow は次のテストに合格しました。 注: MySQL バージョン 5.x では複数のスケジューラを実行できないか、実行に制限があります。スケジューラのドキュメントを参照してください。MariaDB はテストおよび推奨されていません。 注: SQLite は Airflow のテスト専用です。本番環境では使用しないでください。ローカル開発には、最新の安定版 SQLite を使用することをお勧めします。 PS: この記事では、Airflow 安定バージョン 2.1.4、Kubernetes バージョン 1.20.x、PostgreSQL バージョン 12.x、および Helm Charts を使用してデプロイメントを行っています。 II. Helmチャート構成の生成PS: Helm バージョン 3 を使用してデプロイされました。 - # Kubernetes Airflow 名前空間を作成する
- $ kubectl名前空間エアフローを作成する
-
- # Airflow Chartsリポジトリソースを追加する
- $ helm リポジトリにapache-airflowを追加しますhttps://airflow.apache.org
-
- # aiarflow ソースを更新
- $ helm リポジトリの更新
-
- # Airflow Charts のすべてのバージョンを表示します (ここでは、Charts 1.2.0 (Airflow 2.1.4) をデプロイすることを選択します)
- $ helm リポジトリを検索 apache-airflow/airflow -l
-
- 名前チャートバージョン アプリバージョン 説明
- apache-airflow/airflow 1.3.0 2.2.1 Apache Airflow をデプロイするための公式 Helm チャート...
- apache-airflow/airflow 1.2.0 2.1.4 Apache Airflow をデプロイするための公式 Helm チャート...
- apache-airflow/airflow 1.1.0 2.1.2 Apache Airflow をデプロイするための公式 Helm チャート...
- apache-airflow/airflow 1.0.0 2.0.2プラットフォームである Apache Airflow をデプロイするためのHelm チャート...
-
- # エアフローチャート値の.yamlファイルをエクスポートします
- $ helm show values apache-airflow/airflow
III. エアフロー構成の変更3.1 永続ストレージのStorageClassを構成するPS: Alibaba Cloud NAS高速ストレージの使用 - # StorageClassファイルを編集する
- $ vim alicloud-nas-airflow-test.yaml
-
- APIバージョン: storage.k8s.io/v1
- 種類: ストレージクラス
- メタデータ:
- 名前: alicloud-nas-airflow-test
- マウントオプション:
- - nolock、tcp、noresvport
- - ヴァース=3
- パラメータ:
- volumeAs: サブパス
- サーバー: "xxxxx.cn-beijing.extreme.nas.aliyuncs.com:/share/airflow/"
- プロビジョナー: nasplugin.csi.alibabacloud.com
- 回収ポリシー: 保持
-
- # Kubernetesに適用する
- $ kubectl apply -f alicloud-nas-airflow-test.yaml
3.2 Airflow DagsストレージリポジトリgitSshKeyを構成する- airflow-ssh-secret.yaml ファイルを編集するには、まず SSH 公開キーを git プロジェクト リポジトリに追加する必要があります。
- $ vim エアフロー-ssh-シークレット.yaml
-
- apiバージョン: v1
- 種類: 秘密
- メタデータ:
- 名前: airflow-ssh-secret
- 名前空間: エアフロー
- データ:
- #キーはgitSshKeyである必要があります
- gitSshKey: "SSH秘密鍵、base64"
-
- # Kubernetesに適用する
- $ kubectl apply -f エアフロー-ssh-secret.yaml
3.3 Docker 12 を使用した PostgreSQL のデプロイ- # PostgreSQLストレージディレクトリを作成する
- $ mkdir /data/postgresql_data
-
- # 起動ファイルを作成する
- $ vim docker-compose.yaml
-
- バージョン: "3"
-
- サービス:
- エアフロー-postgres:
- 画像: postgres:12
- 再起動: 常に
- コンテナ名: airflow-postgres
- 環境:
- TZ: アジア/上海
- POSTGRES_USER: エアフロー
- POSTGRES_パスワード: Airflow123
- ボリューム:
- -/data/postgresql_data:/var/lib/postgresql/data
- ポート:
- - 「5432:5432」
-
- # PostgreSQL Dockerを起動する
- $ docker-compose up -d
3.4 airflow_1.2.4_values.yaml設定を変更するPS: この記事の airflow_1.2.4_values.yaml 構成ファイルには、Redis、ワーカー (デプロイする必要があるワーカーは 1 つだけですが、複数のワーカーをデプロイできます)、および dags の 3 つの PVC が必要です。 設定ファイルは長すぎるため、ここでは表示できません。詳細については、以下のリンクを参照してください。 https://github.com/yangpeng14/DevOps/blob/master/config_dir/airflow_1.2.4_values.yaml IV. Airflowの展開- # Airflowの最初の展開
- $ helm インストール airflow apache-airflow/airflow
-
- # 将来 Airflow 設定を変更するには、次のコマンドを使用してください。
- $ helm アップグレード
V. Airflow Ingress Nginx アクセス ポイントを構成する- # Ingress nginx 設定ファイルを生成する
- $ vim エアフローイングレス.yaml
-
- apiバージョン: networking.k8s.io/v1
- 種類: イングレス
- メタデータ:
- 名前:エアフロー
- 名前空間: エアフロー
- 注釈:
- kubernetes.io/ingress.class: nginx
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- nginx.ingress.kubernetes.io/proxy-connect-timeout : "60 "
- nginx.ingress.kubernetes.io/proxy-read-timeout : "60 "
- nginx.ingress.kubernetes.io/プロキシ送信タイムアウト: "60"
- 仕様:
- ルール:
- - ホスト: "airflow.example.com"
- http:
- パス:
- - パス: /
- パスタイプ: プレフィックス
- バックエンド:
- サービス:
- 名前: airflow-webserver
- ポート:
- 番号: 8080
-
- # Kubernetesに適用する
- $ kubectl apply -f エアフローイングレス.yaml
VI. 参考リンク1. https://github.com/apache/airflow/tree/2.1.4 2. https://airflow.apache.org/docs/helm-chart/1.2.0/index.html |