jsancio commented on code in PR #20071: URL: https://github.com/apache/kafka/pull/20071#discussion_r2192968185
########## docs/ops.html: ########## @@ -3948,6 +3948,40 @@ <h4 class="anchor-heading"><a id="others_monitoring" class="anchor-link"></a><a <h3 class="anchor-heading"><a id="kraft" class="anchor-link"></a><a href="#kraft">6.8 KRaft</a></h3> + <h4 class="anchor-heading"><a id="kraft_upgrade" class="anchor-link"></a><a href="#kraft_upgrade">Upgrade</a></h4> + + Apache Kafka 4.1 added support for upgrading cluster from a static controller configuration to a dynamic controller configuration. This feature upgrade is done by upgrading the kraft feature version and updating the nodes configuration. + + <h5 class="anchor-heading"><a id="kraft_upgrade_describe" class="anchor-link"></a><a href="#kraft_upgrade_describe">Describe KRaft Version</a></h5> + + <p>Dynamic controller cluster was added in <code>kraft.version=1</code> or <code>release-version 4.1</code>. To determine which kraft feature version the cluster is using you can execute the following CLI command:</p> + + <pre><code class="language-bash">$ bin/kafka-features.sh --bootstrap-controller localhost:9093 describe +... +Feature: kraft.version SupportedMinVersion: 0 SupportedMaxVersion: 1 FinalizedVersionLevel: 0 Epoch: 7 +Feature: metadata.version SupportedMinVersion: 3.3-IV3 SupportedMaxVersion: 4.0-IV3 FinalizedVersionLevel: 4.0-IV3 Epoch: 7</code></pre> + + <p>If the <code>FinalizedVersionLevel</code> for <code>Feature: kraft.version</code> is <code>0</code>, the version need to be upgraded to at least <code>1</code> to support a dynamic controller cluster.</p> + + <h5 class="anchor-heading"><a id="kraft_upgrade_version" class="anchor-link"></a><a href="#kraft_upgrade_version">Upgrade KRaft Version</a></h5> + + <p>The kraft feature version can be upgraded to support dynamic controller clusters by using the <code>kafka-feature</code> CLI command. To upgrade all of the feature versions to the latest version:</p> + + <pre><code class="language-bash">$ bin/kafka-features.sh --bootstrap-server localhost:9092 upgrade --release-version 4.1</code></pre> + + <p>To upgrade just the kraft feature version:</p> + + <pre><code class="language-bash">$ bin/kafka-features.sh --bootstrap-server localhost:9092 upgrade --feature kraft.version=1</code></pre> + + <h5 class="anchor-heading"><a id="kraft_upgrade_config" class="anchor-link"></a><a href="#kraft_upgrade_config">Update KRaft Config</a></h5> + + <p>KRaft version 1 deprecated the <code>controller.quorum.voters</code> property and added the <code>controller.quorum.bootstrap.servers</code> property. After checking that the kraft version has been successfully upgrade to at least version <code>1</code>. Remove the <code>controller.quorum.voters</code> property and add the <code>controller.quorum.bootstrap.servers</code> to all of the nodes (controllers and brokers) in the cluster.</p> + + <pre><code class="language-bash">process.roles=... Review Comment: I am not sure. Let me see what I can do. I wanted to document the steps needed to upgrade the KRaft feature version without the user having to jump/read other sections. It is interesting that you both suggest different sections. I think we can solve this issue by moving the configuration section first. Above the upgrade the section. The upgrade section can repeat this information by saying that they need to remove `controller.quorum.voters` and added `controller.quorum.bootstrap.servers`. Let me make that change and you can tell me what you think. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org