デプロイとメンテナンス / Helm デプロイ
このドキュメントでは、主に Helm を使用して DataFlux Func をデプロイする方法について説明します。
1. システムおよび環境要件
DataFlux Func をインストールする前に、環境が以下の条件を満たしていることを確認してください。
1.1 システム要件
DataFlux Func を実行するクラスタは、次の要件を満たしている必要があります。
- Kubernetes > 1.14
- Helm >= 3.8
- ネットワーク帯域幅 >= 10Mbps
- メモリ容量 >= 4GB
- CPU コア >= 2
- 外部 MySQL を使用する場合、MySQL のバージョンは 5.7 以降である必要があり、
innodb_large_prefixパラメータを有効にし、データベースのエンコーディングをutf8mb4にする必要があります - 外部 Redis を使用する場合、Redis のバージョンは 5.0 以降で、利用可能なメモリが 1 GB 以上必要であり、クラスタ版ではないこと
DataFlux Func のストレージは共有ストレージを使用することを推奨します。hostPath には欠点があります
2. コマンドラインでのデプロイ
2.1 クラスタのストレージクラスを確認する
コマンドを実行します。
| Bash | |
|---|---|
1 | |
出力は次のとおりです。
| Text Only | |
|---|---|
1 2 | |
2.2 Helm のバージョンを確認する
コマンドを実行します。
| Bash | |
|---|---|
1 | |
2.3 インストールを実行する
| Bash | |
|---|---|
1 2 3 | |
{Release Name} は Helm のエイリアスで、{Namespace} は存在しない場合に自動作成されます。{Storage Class} は手順 1 で確認したストレージクラス名、{Host Name} は ingress のドメイン名です。インストールが成功するとアクセスできるようになります
Helm デプロイではデフォルトで MySQL と Redis がインストールされます。外部の MySQL と Redis を使用することもできます。詳細なデプロイ方法は charts パッケージ内の README ドキュメントに記載されています

2.4 インストールを確認する
コマンドを実行します。
| Bash | |
|---|---|
1 | |

STATUS が deployed であれば成功です
ブラウザから指定した {Host Name} にアクセスすることもできます。
2.5 システムの初期化
ブラウザから設定した ingress ドメインにアクセスすると、デフォルト設定で初期化するか、設定をカスタマイズするか、デフォルト設定のまま保存してデータベースを初期化することができます。
3. Func のアップグレード
3.1 values 設定を取得する
コマンドを実行します。
| Bash | |
|---|---|
1 2 | |
3.2 現在の Func バージョンを確認する
コマンドを実行します。
| Bash | |
|---|---|
1 | |
3.3 Func をアップグレードする
コマンドを実行します。
| Bash | |
|---|---|
1 2 3 | |
3.4 アップグレード結果を確認する
コマンドを実行します。
| Bash | |
|---|---|
1 | |
4. その他の問題
4.1 ブラウザで 502 が返る
Helm の STATUS が deployed の場合は、次の手順に従ってトラブルシューティングしてください。
Ingress が正常に作成されたか確認する
ingress 情報を確認します。
| Bash | |
|---|---|
1 | |
Pod の状態を確認する
通常は pvc の作成失敗が原因です。実際の状況に応じて解決してください。
Pod の状態を確認します。
| Bash | |
|---|---|
1 | |
出力は次のとおりです。
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
PVC の状態を確認します。
| Bash | |
|---|---|
1 | |
出力は次のとおりです。
| Text Only | |
|---|---|
1 2 3 | |
4.2 エラー「cannot re-use a name that is still in use」
デプロイ中にエラー「cannot re-use a name that is still in use」が発生した場合、現在のネームスペースに {Release Name} がすでに存在することを意味します。
インストール前に古い {Release Name} を削除するか、{Release Name} を変更してください。
4.3 エラー「Connection to Connector Timed Out」
コネクタを作成する際にエラー「Connection to Connector Timed Out」が発生した場合は、func に関連する Pod をすべて再起動してください。
以下は func 関連の Deployment です。
- func-server
- func-worker-0
- func-worker-1-6
- func-worker-7
- func-worker-8-9
- func-worker-beat
func-server の func は {Release Name} であり、{Release Name} に応じて変わります
5.4 環境変数拡張は Secret 参照をサポートします
環境変数については、デプロイとメンテナンス / 設定ファイル の DFF_ + 設定項目を参照してください。たとえば、MYSQL_HOST は環境変数 DFF_MYSQL_HOST に対応します。
Kubernetes Secret を作成する
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 | |
values.yaml を変更する
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
アップグレードまたはインストール
| Bash | |
|---|---|
1 2 3 | |