• Русский
  • Создание экземпляра

    Вы можете создать экземпляр Kafka для построения высокопроизводительного, с низкой задержкой канала передачи данных в реальном времени, поддерживающего разнообразные потребности бизнес-систем в таких сценариях, как обработка потоковых данных и разделение сервисов.

    Содержание

    Создание экземпляра Kafka

    Процедура

    CLI
    Web Console

    Создайте экземпляр Kafka через CLI:

    cat << EOF | kubectl -n default create -f -
    apiVersion: middleware.alauda.io/v1
    kind: RdsKafka
    metadata:
      name: my-cluster
    spec:
      entityOperator:
        topicOperator:
          resources:
            limits:
              cpu: 1
              memory: 2Gi
            requests:
              cpu: 1
              memory: 2Gi
        userOperator:
          resources:
            limits:
              cpu: 1
              memory: 2Gi
            requests:
              cpu: 1
              memory: 2Gi
        tlsSidecar:
          resources:
            limits:
              cpu: 200m
              memory: 128Mi
            requests:
              cpu: 200m
              memory: 128Mi
      version: 3.8
      replicas: 3
      config:
        auto.create.topics.enable: "false"
        auto.leader.rebalance.enable: "true"
        background.threads: "10"
        compression.type: producer
        default.replication.factor: "3"
        delete.topic.enable: "true"
        log.retention.hours: "168"
        log.roll.hours: "168"
        log.segment.bytes: "1073741824"
        message.max.bytes: "1048588"
        min.insync.replicas: "1"
        num.io.threads: "8"
        num.network.threads: "3"
        num.recovery.threads.per.data.dir: "1"
        num.replica.fetchers: "1"
        unclean.leader.election.enable: "false"
      resources:
        limits:
          cpu: 2
          memory: 4Gi
        requests:
          cpu: 2
          memory: 4Gi
      storage:
        size: 1Gi
        # Замените на доступный класс хранилища
        class: local-path
        deleteClaim: false
      kafka:
        listeners:
          plain: {}
          external:
            type: nodeport
            tls: false
      zookeeper:
        # В настоящее время такой же, как у Kafka брокера
        replicas: 3
        resources:
          limits:
            cpu: 1
            memory: 2Gi
          requests:
            cpu: 1
            memory: 2Gi
        # Хранилище поддерживается такое же, как у Kafka брокера
        storage:
          size: 1Gi
          # Замените на доступный класс хранилища
          class: local-path
          deleteClaim: false
    EOF

    После создания экземпляра вы можете проверить его статус с помощью следующей команды:

    $ kubectl get rdskafka -n <namespace> -o=custom-columns=NAME:.metadata.name,VERSION:.spec.version,STATUS:.status.phase,MESSAGE:.status.reason,CreationTimestamp:.metadata.creationTimestamp
    NAME         VERSION   STATUS   MESSAGE                                   CreationTimestamp
    my-cluster   3.8       Active   <none>                                    2025-03-06T08:46:57Z
    test38       3.8       Failed   Pod is unschedulable or is not starting   2025-03-06T08:46:36Z

    Значения полей таблицы вывода следующие:

    ПолеОписание
    NAMEИмя экземпляра
    VERSIONВ настоящее время поддерживаются только следующие 4 версии: 2.5.0, 2.7.0, 2.8.2, 3.8
    STATUSТекущий статус экземпляра, который может принимать следующие значения:
    • Creating: экземпляр создаётся
    • Updating: экземпляр обновляется
    • Failed: экземпляр столкнулся с необратимой ошибкой
    • Paused: экземпляр был вручную приостановлен
    • Restarting: экземпляр перезапускается
    • Active: экземпляр готов к использованию
    MESSAGEПричина текущего статуса экземпляра
    CreationTimestampВременная метка создания экземпляра

    Создание однузлового экземпляра Kafka

    Важное уведомление

    Рекомендуется устанавливать количество брокерских узлов равным 3 при создании экземпляра. Если количество брокерских узлов меньше рекомендованного значения 3, необходимо изменить некоторые параметры при создании.

    Процедура

    CLI
    Web Console

    Создайте однузловой экземпляр Kafka через CLI:

    cat << EOF | kubectl -n default create -f -
    apiVersion: middleware.alauda.io/v1
    kind: RdsKafka
    metadata:
      name: my-cluster
    spec:
      entityOperator:
        topicOperator:
          resources:
            limits:
              cpu: 1
              memory: 2Gi
            requests:
              cpu: 1
              memory: 2Gi
        userOperator:
          resources:
            limits:
              cpu: 1
              memory: 2Gi
            requests:
              cpu: 1
              memory: 2Gi
        tlsSidecar:
          resources:
            limits:
              cpu: 200m
              memory: 128Mi
            requests:
              cpu: 200m
              memory: 128Mi
      version: 3.8
      replicas: 1
      config:
        auto.create.topics.enable: "false"
        auto.leader.rebalance.enable: "true"
        background.threads: "10"
        compression.type: producer
        delete.topic.enable: "true"
        log.retention.hours: "168"
        log.roll.hours: "168"
        log.segment.bytes: "1073741824"
        message.max.bytes: "1048588"
        min.insync.replicas: "1"
        num.io.threads: "8"
        num.network.threads: "3"
        num.recovery.threads.per.data.dir: "1"
        num.replica.fetchers: "1"
        unclean.leader.election.enable: "false"
        ## Убедитесь, что следующие параметры настроены корректно
        default.replication.factor: "1"
        offsets.topic.replication.factor: 1
        transaction.state.log.replication.factor: 1
        transaction.state.log.min.isr: 1
      resources:
        limits:
          cpu: 2
          memory: 4Gi
        requests:
          cpu: 2
          memory: 4Gi
      storage:
        size: 1Gi
        # Замените на доступный класс хранилища
        class: local-path
        deleteClaim: false
      kafka:
        listeners:
          plain: {}
          external:
            type: nodeport
            tls: false
      zookeeper:
        # В настоящее время такой же, как у Kafka брокера
        replicas: 1
        resources:
          limits:
            cpu: 1
            memory: 2Gi
          requests:
            cpu: 1
            memory: 2Gi
        # Хранилище поддерживается такое же, как у Kafka брокера
        storage:
          size: 1Gi
          # Замените на доступный класс хранилища
          class: local-path
          deleteClaim: false
    EOF