Flink のアップグレード(クロスバージョン)
-
ConfigMapを削除して Flink のJob一覧を消去します以下のスクリプトで
ConfigMapを一括削除します。configmap "md-flink" deletedなどのメッセージが表示されない場合、名前空間が誤っているか、ConfigMapが存在しません。再確認してください。# テンプレート:<namespace> を Flink をデプロイした実際の名前空間に置き換えてくださいfor i in $(kubectl -n <namespace> get cm | awk '$1~"md-flink"{print $1}'); do kubectl -n <namespace> delete cm $i; done# 例(名前空間が flink の場合):for i in $(kubectl -n flink get cm | awk '$1~"md-flink"{print $1}'); do kubectl -n flink delete cm $i; done -
すべての Flink ノードに、アーキテクチャに対応するイメージをインポートします(オフラインパッケージダウンロード)。
- Linux amd64
- Linux arm64
crictl pull nocoly/flink:バージョン番号crictl pull nocoly/flink-arm64:バージョン番号 -
設定ファイルを修正します
flink.yaml内で、flink-jobmanager及びflink-taskmanagerサービスで利用するイメージバージョンを修正します。- name: jobmanagerimage: nocoly/flink:<version>- name: taskmanagerimage: nocoly/flink:<version>v1.19.710 へのアップグレード時に必要な
flink.yamlの追加変更を表示-
metricsで始まる既存の設定をすべて削除し、以下の Kafka メトリクス送信設定を追加してください(Kafka アドレスは実際の環境に合わせて変更)。metrics.job.status.enable: STATEmetrics.reporters: kafka_reporter,kafka_reporter_running,kafka_reporter2,kafka_reporter_running2metrics.reporter.kafka_reporter.factory.class: org.apache.flink.metrics.kafka.KafkaReporterFactorymetrics.reporter.kafka_reporter.bootstrap.servers: 192.168.10.7:9092,192.168.10.8:9092,192.168.10.9:9092 # Kafka アドレスmetrics.reporter.kafka_reporter.chunk.size: 20000metrics.reporter.kafka_reporter.interval: 60smetrics.reporter.kafka_reporter.filter.metrics: numRecordsIn,numRecordsOut,runningTimemetrics.reporter.kafka_reporter.topic: flink_metrics_countermetrics.reporter.kafka_reporter.taskNamePrefix: HDP0x5c2_metrics.reporter.kafka_reporter_running.factory.class: org.apache.flink.metrics.kafka.KafkaReporterFactorymetrics.reporter.kafka_reporter_running.bootstrap.servers: 192.168.10.7:9092,192.168.10.8:9092,192.168.10.9:9092 # Kafka アドレスmetrics.reporter.kafka_reporter_running.chunk.size: 20000metrics.reporter.kafka_reporter_running.interval: 60smetrics.reporter.kafka_reporter_running.filter.metrics: RUNNINGStatemetrics.reporter.kafka_reporter_running.topic: flink_metrics_gaugemetrics.reporter.kafka_reporter_running.taskNamePrefix: HDP0x5c2_metrics.reporter.kafka_reporter2.factory.class: org.apache.flink.metrics.kafka.KafkaReporterFactorymetrics.reporter.kafka_reporter2.bootstrap.servers: 192.168.10.7:9092,192.168.10.8:9092,192.168.10.9:9092 # Kafka アドレスmetrics.reporter.kafka_reporter2.chunk.size: 20000metrics.reporter.kafka_reporter2.interval: 60smetrics.reporter.kafka_reporter2.filter.metrics: numRecordsIn,numRecordsOut,runningTimemetrics.reporter.kafka_reporter2.topic: flink_metrics_counter-hdpmetrics.reporter.kafka_reporter2.taskNamePrefix: HDP0x5c2_metrics.reporter.kafka_reporter_running2.factory.class: org.apache.flink.metrics.kafka.KafkaReporterFactorymetrics.reporter.kafka_reporter_running2.bootstrap.servers: 192.168.10.7:9092,192.168.10.8:9092,192.168.10.9:9092 # Kafka アドレスmetrics.reporter.kafka_reporter_running2.chunk.size: 20000metrics.reporter.kafka_reporter_running2.interval: 60smetrics.reporter.kafka_reporter_running2.filter.metrics: RUNNINGStatemetrics.reporter.kafka_reporter_running2.topic: flink_metrics_gauge-hdpmetrics.reporter.kafka_reporter_running2.taskNamePrefix: HDP0x5c2_ -
kind: Roleの設定で、rules.verbsに configmaps リソースの patch 権限を追加します。kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata:name: configmap-accessnamespace: defaultrules:- apiGroups: [""]resources: ["configmaps"]verbs: ["update", "get", "watch", "list", "create", "edit", "delete", "patch"] # patch 権限を追加
-
-
サービスを再起動します
kubectl apply -f flink.yaml -
アップグレード完了後、同期タスク一覧で対象タスクを手動で再度有効化/公開してください。これにより同期タスクが正常に動作するようになります。