Migration von Zookeeper zu „ Apache Kafka Raft“ (KRaft) für „ Kafka “ online
KRaft ersetzt Zookeeper. Kafka Pods werden zu Brokern, und Zookeeper-Pods werden zu Controllern. Kafka läuft während der Migration im Dual-Modus.
Voraussetzungen
Um einen Live-Cluster zu starten, führen Sie die folgenden Schritte aus:
Stellen Sie sicher, dass alle Operator- und Datastore-Pods ausgeführt werden, bevor Sie mit der Migration beginnen.
kubectl get all -n instana-kafka
Migrationsschritte
Sie müssen den Knotenpool aktivieren, damit sowohl der Broker als auch der Controller unterstützt werden.
kubectl annotate kafka instana -n instana-kafka strimzi.io/node-pools="enabled" --overwriteKRaft deaktivieren.
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="disabled" --overwriteErstellen Sie eine Datei namens „ YAML “ für den Broker. Zum Beispiel bei der
kafka-broker.yamlBroker-Konfiguration.apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaNodePool metadata: name: kafka labels: strimzi.io/cluster: instana spec: replicas: 3 roles: - broker storage: type: jbod volumes: - id: 0 type: persistent-claim size: 50Gi deleteClaim: true template: pod: tmpDirSizeLimit: 500MiBroker bereitstellen.
kubectl apply -f kafka-broker.yaml -n instana-kafkaBroker-Pods werden angezeigt.
Erstellen Sie eine Datei „ YAML “ für den Controller. Zum Beispiel bei der Konfiguration
kafka-controller.yamldes Controllers.apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaNodePool metadata: name: controller labels: strimzi.io/cluster: instana spec: replicas: 3 roles: - controller storage: type: persistent-claim size: 50Gi deleteClaim: true template: pod: tmpDirSizeLimit: 500MiController bereitstellen.
kubectl apply -f kafka-controller.yaml -n instana-kafkaMit diesem Befehl können Sie den Status von Knotenpools überprüfen.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaNodePools}'Migration aktivieren.
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="migration" --overwriteEs werden Controller-Pods angezeigt, und die Broker-Pods werden neu gestartet, um eine Verbindung zum Controller herzustellen.
Überprüfen Sie den Migrationsstatus.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaMetadataState}'Die Felder „Replica“ und „storage“ in der Datei „ kafka.yaml “ werden nun ignoriert. Sie können diese Felder aus der Datei entfernen.
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: ... spec: kafka: ... # replicas: 3 ... # storage: # type: jbod # volumes: # - id: 0 # type: persistent-claim # size: 50Gi # deleteClaim: true # zookeeper: # replicas: 3 # storage: # type: persistent-claim # size: 5Gi # deleteClaim: true ...Setzen Sie den KRaft-Status auf „aktiviert“, wenn der Status „ 'KRaftPostMigration' “ lautet.
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="enabled" --overwriteDie Broker- und Controller-Pods werden neu gestartet. Kafka und die Zookeeper-Pods werden beendet.
- Überprüfen Sie den Migrationsstatus erneut.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaMetadataState}'Der Staat muss jetzt Stärke zeigen.
- Überprüfen Sie die Implementierung.
kubectl get all -n instana-kafka
Die Ausgabe könnte wie im folgenden Beispiel aussehen.
NAME READY STATUS RESTARTS AGE
pod/instana-entity-operator-8564975588-mrz2f 3/3 Running 0 15m
pod/instana-kafka-0 1/1 Running 0 16m
pod/instana-kafka-1 1/1 Running 0 16m
pod/instana-kafka-2 1/1 Running 0 16m
pod/instana-controller-0 1/1 Running 0 17m
pod/instana-controller-1 1/1 Running 0 17m
pod/instana-controller-2 1/1 Running 0 17m
pod/strimzi-cluster-operator-cf49c75d8-qm8jq 1/1 Running 0 34m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/instana-kafka-bootstrap ClusterIP 192.168.1.239 <none> 9091/TCP,9092/TCP 16m
service/instana-kafka-brokers ClusterIP None <none> 9090/TCP,9091/TCP,9092/TCP 16m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/instana-entity-operator 1/1 1 1 15m
deployment.apps/strimzi-cluster-operator 1/1 1 1 34m
NAME DESIRED CURRENT READY AGE
replicaset.apps/instana-entity-operator-8564975588 1 1 1 15m
replicaset.apps/strimzi-cluster-operator-cf49c75d8 1 1 1 34m