Migrazione da Zookeeper a Raft (KRaft) dell' Apache Kafka e per Kafka online
KRaft sostituisce Zookeeper. Kafka I pod diventano broker, mentre i pod Zookeeper diventano controller. Kafka funziona in modalità duale durante la migrazione.
Prerequisiti
Per eseguire il bootstrap da un cluster attivo, procedere come segue:
Assicurati che tutti i pod degli operatori e dei datastore siano in esecuzione prima di avviare la migrazione.
kubectl get all -n instana-kafka
Passi di migrazione
È necessario abilitare il pool di nodi per supportare sia il broker che il controller.
kubectl annotate kafka instana -n instana-kafka strimzi.io/node-pools="enabled" --overwriteDisattiva KRaft.
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="disabled" --overwriteCrea un file ` YAML ` per il broker. Ad esempio,
kafka-broker.yamlper quanto riguarda la configurazione del broker.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: 500MiEseguire il deployment di Broker.
kubectl apply -f kafka-broker.yaml -n instana-kafkaCompaiono i gruppi di broker.
Crea un file ` YAML ` per il controller. Ad esempio,
kafka-controller.yamlper quanto riguarda la configurazione del controller.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: 500MiDistribuire il controller.
kubectl apply -f kafka-controller.yaml -n instana-kafkaÈ possibile utilizzare questo comando per verificare lo stato dei pool di nodi.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaNodePools}'Abilita la migrazione.
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="migration" --overwriteVengono avviati i pod del controller e i pod del broker si riavviano per connettersi al controller.
Verifica lo stato della migrazione.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaMetadataState}'I campi relativi alla replica e all'archiviazione nel file ` kafka.yaml ` vengono ora ignorati. È possibile rimuovere questi campi dal file.
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 ...Imposta lo stato di KRaft su "abilitato" quando lo stato è " 'KRaftPostMigration' ".
kubectl annotate kafka instana -n instana-kafka strimzi.io/kraft="enabled" --overwriteI pod dei broker e dei controller vengono riavviati. Kafka e i pod Zookeeper vengono chiusi.
- Verifica nuovamente lo stato della migrazione.
kubectl get kafka instana -n instana-kafka -o jsonpath='{.status.kafkaMetadataState}'Lo Stato deve dare prova di forza adesso.
- Verificare l'implementazione.
kubectl get all -n instana-kafka
Il risultato potrebbe essere simile a quello dell'esempio seguente.
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