# Create and Manage Kafka Connect Connectors in Kubernetes

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [streaming-full.txt](https://docs.redpanda.com/streaming-full.txt)

---
title: Create and Manage Kafka Connect Connectors in Kubernetes
latest-redpanda-tag: v25.3.11
latest-console-tag: v3.7.3
latest-operator-version: v26.1.4
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "false"
page-eol-date: November 19, 2026
latest-connect-version: 4.93.0
docname: kubernetes/k-manage-connectors
page-component-name: streaming
page-version: "25.3"
page-component-version: "25.3"
page-component-title: Streaming
page-relative-src-path: kubernetes/k-manage-connectors.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/25.3/modules/manage/pages/kubernetes/k-manage-connectors.adoc
description: Learn how to create and manage connectors using Redpanda Console or the Kafka Connect REST API.
page-git-created-date: "2024-01-04"
page-git-modified-date: "2026-05-26"
support-status: supported
---

<!-- Source: https://docs.redpanda.com/streaming/25.3/manage/kubernetes/k-manage-connectors.md -->

When you have Kafka Connect deployed, you can create and manage connectors using Redpanda Console or the Kafka Connect REST API.

> 📝 **NOTE: Community**
>
> **The Connectors Helm chart is a community-supported artifact**. Redpanda Data does not provide enterprise support for this chart. For support, reach out to the Redpanda team in [Redpanda Community Slack](https://redpanda.com/slack).

## [](#prerequisites)Prerequisites

-   [Deploy a Redpanda cluster with Redpanda Console](https://docs.redpanda.com/streaming/25.3/deploy/redpanda/kubernetes/k-production-deployment/).

-   [Deploy Kafka Connect](https://docs.redpanda.com/streaming/25.3/deploy/kafka-connect/k-deploy-kafka-connect/).

-   Ensure Redpanda Console is configured to connect to Kafka Connect (see the [Redpanda Console configuration](https://docs.redpanda.com/streaming/25.3/deploy/kafka-connect/k-deploy-kafka-connect/#configure-redpanda-console-to-connect-to-kafka-connect) in the deployment guide).


## [](#verify-kafka-connect-is-accessible)Verify Kafka Connect is accessible

Before managing connectors, verify that Kafka Connect is running and accessible:

1.  Check the Pod status:

    ```bash
    kubectl get pod -l app.kubernetes.io/name=connectors --namespace <namespace>
    ```

    Expected output:

    ```bash
    NAME                                   READY   STATUS    RESTARTS   AGE
    redpanda-connectors-6d64b948f6-dk484   1/1     Running   0          5m
    ```

2.  Test the Kafka Connect REST API:

    ```bash
    POD_NAME=$(kubectl get pod -l app.kubernetes.io/name=connectors --namespace <namespace> -o jsonpath='{.items[0].metadata.name}')
    kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083 | jq '.version'
    ```

    This should return the Kafka Connect version.

3.  Verify the available connector plugins:

    ```bash
    kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connector-plugins | jq '.[].class'
    ```

    Expected output should include the MirrorMaker2 connectors:

    ```bash
    "org.apache.kafka.connect.mirror.MirrorCheckpointConnector"
    "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector"
    "org.apache.kafka.connect.mirror.MirrorSourceConnector"
    ```


## [](#manage-connectors-in-redpanda-console)Manage connectors in Redpanda Console

Redpanda Console provides a web interface for managing Kafka Connect connectors. This is the recommended approach for most users as it provides a user-friendly interface and validation.

### [](#access-redpanda-console)Access Redpanda Console

By default, Redpanda Console is deployed with a ClusterIP Service. To access Redpanda Console, you can use the `kubectl port-forward` command to forward one of your local ports to the Pod.

> 📝 **NOTE**
>
> The `kubectl port-forward` command is a development tool. To expose services to external traffic in a more permanent and controlled manner, use Kubernetes Services such as LoadBalancer or NodePort.

1.  Expose Redpanda Console to your localhost:

    ```bash
    kubectl --namespace <namespace> port-forward svc/redpanda-console 8080:8080
    ```

    This command actively runs in the command-line window. To execute other commands while the command is running, open another command-line window.

2.  Open Redpanda Console on [http://localhost:8080](http://localhost:8080).


### [](#using-the-connect-interface)Using the Connect interface

When you have access to Redpanda Console:

1.  Navigate to **Connect** in the left menu.

2.  If Kafka Connect is properly configured, you should see:

    -   The Kafka Connect cluster

    -   A list of available connector types

    -   Any existing tasks



From here, you can:

-   View connector status and health

-   Pause/resume connectors

-   View connector configuration

-   Delete connectors

-   View connector logs and metrics


### [](#troubleshoot-redpanda-console-connectivity)Troubleshoot Redpanda Console connectivity

If you see "Kafka Connect is not configured":

1.  Verify the Redpanda Console configuration includes Kafka Connect settings (see [deployment guide troubleshooting](https://docs.redpanda.com/streaming/25.3/deploy/kafka-connect/k-deploy-kafka-connect/#troubleshooting-console-connectivity))

2.  Check the Redpanda Console logs for connection errors:

    ```bash
    kubectl logs -n <namespace> -l app.kubernetes.io/name=console --tail=20
    ```

3.  Look for successful connection messages:

    "creating Kafka connect HTTP clients and testing connectivity to all clusters"
    "tested Kafka connect cluster connectivity","successful\_clusters":1,"failed\_clusters":0"


## [](#manage-connectors-with-the-rest-api)Manage connectors with the REST API

This section provides examples of managing connectors using the Kafka Connect REST API with cURL. This approach is useful for automation, scripting, and CI/CD pipelines.

All REST API commands should be executed from within the Kafka Connect Pod or through `kubectl exec`. For comprehensive REST API documentation, see the [Kafka Connect REST API reference](https://kafka.apache.org/documentation/#connect_rest).

> 💡 **TIP**
>
> For complex connector configurations and production deployments, consider using the [Helm chart configuration options](https://docs.redpanda.com/streaming/25.3/reference/k-connector-helm-spec/) to manage connector settings.

### [](#get-connector-pod-information)Get connector Pod information

Get the Pod name and verify connectivity:

```bash
# Get the connector Pod name
POD_NAME=$(kubectl get pod -l app.kubernetes.io/name=connectors --namespace <namespace> -o jsonpath='{.items[0].metadata.name}')
echo "Using pod: $POD_NAME"

# Test basic connectivity
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083
```

### [](#view-version-of-kafka-connect)View version of Kafka Connect

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083 | jq
```

Expected output:

```json
{
  "version": "3.8.0",
  "commit": "771b9576b00ecf5b",
  "kafka_cluster_id": "redpanda.3e2649b0-f84c-4c03-b5e3-d6d1643f65b2"
}
```

### [](#view-available-connector-plugins)View available connector plugins

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connector-plugins | jq
```

### [](#view-cluster-worker-information)View cluster worker information

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083 | jq
```

This returns basic cluster information including version and Kafka cluster ID.

### [](#view-all-connectors)View all connectors

```bash
# List connector names only
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors | jq

# View connectors with detailed status and configuration
kubectl exec $POD_NAME --namespace <namespace> -- curl -s 'localhost:8083/connectors?expand=status&expand=info' | jq
```

### [](#create-a-connector)Create a connector

To create a connector, use a POST request with JSON configuration:

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors" \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "name": "heartbeat-connector",
    "config": {
      "connector.class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector",
      "heartbeats.topic.replication.factor": "1",
      "replication.factor": "1",
      "source.cluster.alias": "source",
      "target.cluster.alias": "target",
      "source.cluster.bootstrap.servers": "redpanda.redpanda.svc.cluster.local:9093",
      "target.cluster.bootstrap.servers": "redpanda.redpanda.svc.cluster.local:9093",
      "emit.heartbeats.interval.seconds": "30"
    }
  }' | jq
```

Example for MirrorSourceConnector:

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors" \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "name": "mirror-source-connector",
    "config": {
      "connector.class": "org.apache.kafka.connect.mirror.MirrorSourceConnector",
      "source.cluster.alias": "source",
      "target.cluster.alias": "target",
      "source.cluster.bootstrap.servers": "source-cluster:9092",
      "target.cluster.bootstrap.servers": "redpanda.redpanda.svc.cluster.local:9093",
      "topics": "my-topic",
      "replication.factor": "1"
    }
  }' | jq
```

### [](#view-connector-details)View connector details

```bash
# View connector configuration
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/<connector-name>/config | jq

# View connector status
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/<connector-name>/status | jq

# View connector tasks
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/<connector-name>/tasks | jq
```

Example:

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/heartbeat-connector/status | jq
```

### [](#update-connector-configuration)Update connector configuration

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/<connector-name>/config" \
  -H 'Content-Type: application/json' \
  -X PUT \
  --data-raw '{
    "connector.class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector",
    "heartbeats.topic.replication.factor": "1",
    "replication.factor": "1",
    "source.cluster.alias": "source",
    "target.cluster.alias": "target",
    "source.cluster.bootstrap.servers": "redpanda.redpanda.svc.cluster.local:9093",
    "target.cluster.bootstrap.servers": "redpanda.redpanda.svc.cluster.local:9093",
    "emit.heartbeats.interval.seconds": "60"
  }' | jq
```

### [](#pause-and-resume-connectors)Pause and resume connectors

```bash
# Pause a connector
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/<connector-name>/pause" -X PUT

# Resume a connector
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/<connector-name>/resume" -X PUT

# Restart a connector
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/<connector-name>/restart" -X POST
```

### [](#delete-a-connector)Delete a connector

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/<connector-name>" -X DELETE
```

Example:

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connectors/heartbeat-connector" -X DELETE
```

### [](#troubleshoot-rest-api-issues)Troubleshoot REST API issues

#### [](#common-error-responses)Common error responses

-   **404 Not Found**: Connector doesn’t exist

-   **409 Conflict**: Connector with the same name already exists

-   **400 Bad Request**: Invalid configuration


#### [](#debugging-connector-failures)Debugging connector failures

1.  Check connector status for error details:

    ```bash
    kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/<connector-name>/status | jq '.connector.trace'
    ```

2.  View task-level errors:

    ```bash
    kubectl exec $POD_NAME --namespace <namespace> -- curl -s localhost:8083/connectors/<connector-name>/status | jq '.tasks[].trace'
    ```

3.  Check Kafka Connect logs:

    ```bash
    kubectl logs -n <namespace> -l app.kubernetes.io/name=connectors --tail=50
    ```

    For more detailed logging configuration, see [logging configuration](https://docs.redpanda.com/streaming/25.3/deploy/kafka-connect/k-deploy-kafka-connect/#logging) in the deployment guide.


### [](#connector-management-best-practices)Connector management best practices

#### [](#configuration-validation)Configuration validation

Before creating a connector, validate the configuration:

```bash
kubectl exec $POD_NAME --namespace <namespace> -- curl -s "localhost:8083/connector-plugins/<connector-class>/config/validate" \
  -H 'Content-Type: application/json' \
  -X PUT \
  --data-raw '{"connector.class": "<connector-class>", ...}' | jq
```

#### [](#monitoring-connector-health)Monitoring connector health

Regularly check connector status:

```bash
# Check all connectors at once
kubectl exec $POD_NAME --namespace <namespace> -- curl -s 'localhost:8083/connectors?expand=status' | \
  jq '.[] | {name: .status.name, state: .status.connector.state, tasks: [.status.tasks[].state]}'
```

For comprehensive monitoring and alerting, see [Kafka Connect monitoring guide](https://docs.redpanda.com/streaming/25.3/manage/kubernetes/monitoring/k-monitor-connectors/).

#### [](#backup-connector-configurations)Backup connector configurations

Save connector configurations for disaster recovery:

```bash
# Export all connector configs
kubectl exec $POD_NAME --namespace <namespace> -- curl -s 'localhost:8083/connectors?expand=info' | \
  jq '.[] | {name: .info.name, config: .info.config}' > connectors-backup.json
```

## [](#next-steps)Next steps

-   [Monitor Kafka Connect performance and health](https://docs.redpanda.com/streaming/25.3/manage/kubernetes/monitoring/k-monitor-connectors/)

-   [Install additional connector plugins](https://docs.redpanda.com/streaming/25.3/deploy/kafka-connect/k-deploy-kafka-connect/#install-a-new-connector)

-   [Configure advanced Kafka Connect settings](https://docs.redpanda.com/streaming/25.3/reference/k-connector-helm-spec/)

-   Explore [Redpanda Connect](https://docs.redpanda.com/connect/home/) for simpler data pipeline creation


## Suggested labs

-   [Redpanda Iceberg Docker Compose Example](https://docs.redpanda.com/labs/docker-compose/iceberg/)
-   [Migrate Data with Redpanda Migrator](https://docs.redpanda.com/labs/docker-compose/redpanda-migrator/)
-   [Iceberg Streaming on Kubernetes with Redpanda, MinIO, and Spark](https://docs.redpanda.com/labs/kubernetes/iceberg/)

[Search all labs](https://docs.redpanda.com/labs)