13.3.3. 削除したクラスターの永続ボリュームからの復元
この手順では、削除されたクラスターを永続ボリューム (PV) から復元する方法を説明します。
この状況では、Topic Operator はトピックが Kafka に存在することを認識しますが、KafkaTopic
リソースは存在しません。
クラスター再作成の手順を行うには、2 つの方法があります。
すべての
KafkaTopic
リソースを復旧できる場合は、オプション 1 を使用します。これにより、クラスターが起動する前に
KafkaTopic
リソースを復旧することで、該当するトピックが Topic Operator によって削除されないようにする必要があります。すべての
KafkaTopic
リソースを復旧できない場合は、オプション 2 を使用します。この場合、Topic Operator なしでクラスターをデプロイし、ZooKeeper で Topic Operator データを削除してからそのデータを再デプロイすることで、Topic Operator が該当するトピックから
KafkaTopic
リソースを再作成できるようにします。
Topic Operator がデプロイされていない場合は、PersistentVolumeClaim
(PVC) リソースのみを復旧する必要があります。
作業を開始する前に
この手順では、データの破損を防ぐために PV を正しい PVC にマウントする必要があります。volumeName
が PVC に指定されており、それが PV の名前に一致する必要があります。
詳細は以下を参照してください。
この手順には、手動での再作成が必要な KafkaUser
リソースの復旧は含まれません。パスワードと証明書を保持する必要がある場合は、KafkaUser
リソースの作成前にシークレットを再作成する必要があります。
手順
クラスターの PV についての情報を確認します。
oc get pv
oc get pv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PV の情報がデータとともに表示されます。
この手順で重要な列を示す出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NAME は各 PV の名前を示します。
- RECLAIM POLICY は PV が 保持される ことを示します。
- CLAIM は元の PVC へのリンクを示します。
元の namespace を再作成します。
oc create namespace myproject
oc create namespace myproject
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 元の PVC リソース仕様を再作成し、PVC を該当する PV にリンクします。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PV 仕様を編集して、元の PVC にバインドされた
claimRef
プロパティーを削除します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、以下のプロパティーが削除されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator をデプロイします。
oc apply -f install/cluster-operator -n my-project
oc apply -f install/cluster-operator -n my-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターを再作成します。
クラスターの再作成に必要なすべての
KafkaTopic
リソースがあるかどうかに応じて、以下の手順を実行します。オプション 1: クラスターを失う前に存在した
KafkaTopic
リソースが すべて ある場合 (__consumer_offsets
からコミットされたオフセットなどの内部トピックを含む)。すべての
KafkaTopic
リソースを再作成します。クラスターをデプロイする前にリソースを再作成する必要があります。そうでないと、Topic Operator によってトピックが削除されます。
Kafka クラスターをデプロイします。
以下に例を示します。
oc apply -f kafka.yaml
oc apply -f kafka.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション 2: クラスターを失う前に存在したすべての
KafkaTopic
リソースがない場合。オプション 1 と同様に Kafka クラスターをデプロイしますが、デプロイ前に Kafka リソースから
topicOperator
プロパティーを削除して、Topic Operator がない状態でデプロイします。デプロイメントに Topic Operator が含まれると、Topic Operator によってすべてのトピックが削除されます。
exec
コマンドを Kafka ブローカー Pod の 1 つに実行し、ZooKeeper シェルスクリプトを開きます。たとえば、my-cluster-kafka-0 はブローカー Pod の名前になります。
oc exec my-cluster-kafka-0 bin/zookeeper-shell.sh localhost:2181
oc exec my-cluster-kafka-0 bin/zookeeper-shell.sh localhost:2181
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /strimzi
パス全体を削除して、Topic Operator ストレージを削除します。deleteall /strimzi
deleteall /strimzi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka クラスターを
topicOperator
プロパティーで再デプロイして TopicOperator を有効にし、KafkaTopic
リソースを再作成します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- ここで示すデフォルト設定には、追加のプロパティーはありません。「
EntityTopicOperatorSpec
スキーマ参照」に説明されているプロパティーを使用して、必要な設定を指定します。
KafkaTopic
リソースのリストを表示して、復旧を確認します。oc get KafkaTopic
oc get KafkaTopic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow