KRaft uses the Raft consensus algorithm. A subset of brokers (3 or 5, configurable) form the controller quorum. One is elected the active controller; the others are standby controllers. Controller election requires a majority vote — with 3 controllers, you need 2 votes; with 5, you need 3. This means you can tolerate 1 failure with 3 controllers, or 2 failures with 5.
Key configuration
process.roles=controller — dedicated controller node
process.roles=broker,controller — combined mode (small clusters)
controller.quorum.voters=1@host1:9093,2@host2:9093,3@host3:9093