This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
Kubernetes HA Services
Kubernetes HAサービス #
FlinkのKubernetes HAサービスは、高可用性サービスにKubernetesを使います。
Kubernetes高可用性サービスは、Kubernetesにデプロイする場合にのみ使えます。 従って、Kubernetes上のスタンドアローンFlinkまたはネイティブKubernetes統合を使う場合に設定できます。
必要条件 #
FlinkのKubernetes HAサービスを使うには、次の前提条件を満たす必要があります:
- Kubernetes >= 1.9.
- ConfigMapsを作成、編集、削除する権限を持つサービスアカウント。 詳細については、FlinkのネイティブKubernetes統合とKubernetes上のスタンドアローンFlinkのサービスアカウントを設定する方法をご覧ください。
設定 #
HAクラスタを開始するには、次の設定キーを設定する必要があります:
- high-availability.type (必須):
high-availability.type
オプションはkubernetes
に設定する必要があります。
high-availability.type: kubernetes
- high-availability.storageDir (必須):
JobManagerメタデータはファイルシステム
high-availability.storageDir
に保存され、この状態へのポインタのみがKubernetesに保存されます。
high-availability.storageDir: s3://flink/recovery
storageDir
はJobManagerの障害を回復するために必要な全てのメタデータを保存します。
- kubernetes.cluster-id (必須):
Flinkクラスタを識別するには、
kubernetes.cluster-id
を指定する必要があります。
kubernetes.cluster-id: cluster1337
設定例 #
conf/flink-conf.yaml
で高可用性モードを設定します:
kubernetes.cluster-id: <cluster-id>
high-availability.type: kubernetes
high-availability.storageDir: hdfs:///flink/recovery
高可用性データのクリーンアップ #
Flinkクラスタの再起動中にHAデータを保持するには、単にデプロイメントを削除します(kubectl delete deployment <cluster-id>
経由)。
全てのFlinkクラスタ関連リソース(例えば、JobManager Deployment、TaskManager pods、services、Flink conf ConfigMap)が削除されます。
HA関連のConfigMapsは、所有者参照を設定しないため、保持されます。
クラスタを再起動すると、以前に実行されていた全てのジョブが回復され、最後に成功したチェックポイントから再起動されます。