<a id="upgrade-os"></a>

# Upgrade the Operating System

To upgrade the operating system (OS) on Confluent Platform hosts, upgrade clients
and non-broker components first, then upgrade Apache Kafka® brokers one at a
time. The procedure follows the same workflow as a standard Confluent Platform
upgrade but does not require configuration changes like modifying
the `inter.broker.protocol.version`.

#### NOTE
Confluent does not provide support for issues encountered during the operating system upgrade itself. Confluent recommends reaching out to your OS provider for any OS-specific issues.

## Upgrade order

To reduce the impact of an OS upgrade, upgrade your Confluent Platform hosts in
the following order.

1. **Clients and non-broker components**: Start with the machines
   running Kafka clients, ksqlDB, Kafka Connect, and other
   components. The Kafka cluster backs these components, so issues
   during the OS upgrade have limited impact.
2. **Kafka brokers**: Upgrade brokers last, one at a time. Issues
   on a broker can affect every downstream service.

## Pre-upgrade checks

Before you take a broker down, confirm the cluster can tolerate the
loss of one broker by verifying the `min.insync.replicas` setting
on every topic.

**Minimum in-sync replicas**: Verify that `min.insync.replicas` is
lower than your replication factor so the cluster stays available
when one broker is down. For example, with replication factor 3,
`min.insync.replicas` should be 2. Check the topic configuration
with the following command:

```bash
kafka-configs --bootstrap-server <broker-host>:<port> --describe --entity-type topics --entity-name <topic-name>
```

## Post-upgrade checks

After you upgrade the OS on a broker and restart the Confluent Platform services, perform these checks to verify that the broker has successfully rejoined the cluster and is functioning correctly:

**Describe Topics**: Use the `kafka-topics --describe` command to check the status of your topics.

```bash
kafka-topics --bootstrap-server <broker-host>:<port> --describe
```

Verify the following:

- **Under-Replicated Partitions (URPs)**: Ensure there are no under-replicated partitions.

```bash
kafka-topics --bootstrap-server <broker-host>:<port> --describe --under-replicated-partitions
```

- **In-Sync Replicas (ISR)**: Confirm that the broker you upgraded is in the ISR list for the partitions it hosts.

```bash
kafka-topics --bootstrap-server <broker-host>:<port> --describe --under-min-isr-partitions
```

## Related content

- [Overview of Confluent Platform Upgrade](upgrade-checklist.md#cp-upgrade-checklist)
- [Upgrade Confluent Platform](upgrade.md#upgrade)
- [Supported Versions and Interoperability for Confluent Platform](versions-interoperability.md#interoperability-versions)
- [Migrate from ZooKeeper to KRaft on Confluent Platform](migrate-zk-kraft.md#migrate-zk-kraft)
