# Deploy and Manage Confluent Platform Using Confluent for Kubernetes

Confluent for Kubernetes (CFK) is a cloud-native management control plane for deploying and
managing Confluent Platform in your Kubernetes private cloud environment. It offers a
standard and simple interface to customize, deploy, and manage [Confluent
Platform](_glossary.md#term-Confluent-Platform) through a declarative API.

CFK is a Kubernetes Deployment whose lifecycle is managed by Helm, but all the
Confluent Platform components define their own custom resource definitions (CRDs) that
you can manage like any other Kubernetes resource.

CFK actively monitors the custom resources (CRs) to ensure their state matches
the desired state.

#### NOTE
CFK is the next generation of Confluent Operator. For Confluent Operator
1.x documentation, see [Confluent Operator](https://docs.confluent.io/operator/1.7.0/overview.html), or use the
version picker to browse to a specific version of the documentation.

For an overview of CFK, see the [Confluent for Kubernetes Offers
Cloud-Native Kafka Automation](https://www.confluent.io/blog/confluent-for-kubernetes-offers-cloud-native-kafka-automation/) blog.

The following video introduces CFK.

<iframe width="560" height="315" src="https://www.youtube.com/embed/3UUGrBK0BIQ" frameborder="0" allowfullscreen title="Introduction to Confluent for Kubernetes"></iframe>
<br/>

<a id="co-features"></a>
<span id="features"></span>

## What you can do with CFK

With CFK, you can:

- **Deploy declaratively**: Configure and deploy Apache Kafka®, Connect workers,
  ksqlDB, Schema Registry, Confluent Control Center, Confluent REST Proxy, and KRaft or ZooKeeper, along with
  application resources such as topics and rolebindings, as code. Customize
  components with server properties, Java Virtual Machine (JVM),
  Log4j, and Log4j 2 configuration overrides.
- **Automate upgrades**: Roll out configuration changes and version upgrades
  with automated rolling updates that avoid impact to Kafka availability.
- **Scale on demand**: Scale components and storage with single commands and
  built-in reliability checks.
- **Stay resilient**: Restore a Kafka pod with the same broker ID,
  configuration, and storage after a failure, and spread partition replicas
  across racks or zones with automated rack awareness.
- **Schedule workloads**: Use Kubernetes labels and annotations to identify
  and organize workloads, and use tolerations and pod or node affinity to
  control where workloads run and how resources are used.
- **Secure by default**: Apply granular role-based access control (RBAC), authentication, and
  TLS network encryption, use auto-generated certificates, and integrate
  credential management systems such as HashiCorp Vault.
- **Monitor**: Aggregate metrics with Java Management Extensions (JMX) and
  Jolokia, and export aggregated metrics to Prometheus.

## What CFK does not do

- CFK deploys Confluent Platform on Kubernetes only. To install Confluent Platform on bare-metal hosts or
  virtual machines, use the manual or [Ansible Playbooks](https://docs.confluent.io/ansible/current/overview.html) installation
  instead.
- CFK manages Confluent components and Confluent application resources,
  not arbitrary third-party Kubernetes workloads.
- CFK manages self-managed Confluent Platform in your own Kubernetes environment. It does
  not manage Confluent Cloud.

<a id="co-new-to-cfk"></a>
<span id="documentation"></span>

## New to CFK?

If you are getting started, use the following as a suggested path.

Learn the architecture and core concepts behind Confluent for Kubernetes.

Get familiar with the key terms you see throughout the docs.

Deploy Confluent Platform on Kubernetes in a few steps.

Review supported environments and options for production.

## Related deployment and configuration topics

- [Prepare your cluster](co-prepare.md#co-prepare) and
  [deploy Confluent for Kubernetes](co-deploy-operator.md#co-deploy-operator).
- [Configure](co-configure.md#co-config) and [deploy Confluent Platform](co-deploy-cp.md#co-deploy-cp).
- [Manage your deployment](co-manage-cp.md#co-manage-cp),
  [monitor your deployment](co-monitor-cp.md#co-monitor-cp), and
  [upgrade your deployment](co-upgrade.md#co-upgrade).
- Review [deployment patterns](co-scenarios.md#co-scenarios).
- Look up reference details in the [API reference](co-api.md#cfk-api) and
  [release notes](release-notes.md#release-notes).
- Review and start using example declarative specifications in
  the [example repository](https://github.com/confluentinc/confluent-kubernetes-examples).
- [Troubleshoot deployment or operation issues](co-troubleshooting.md#co-troubleshooting).
