2.4. クラスターの作成

AMQ Streams がインストールされている状態で、Kafka クラスターを作成し、クラスター内でトピックを作成します。

クラスターの作成時に、AMQ Streams のインストール時にデプロイされた Cluster Operator によって新規の Kafka リソースが監視されます。

前提条件

  • Kafka クラスターでは、Cluster Operator がデプロイされている必要があります。
  • トピックでは、Kafka クラスターが稼働中である必要があります。

手順

  1. ユーザー developer として my-kafka-project namespace にログインします。

    以下に例を示します。

    oc login -u developer
    oc project my-kafka-project

    新規ユーザーが OpenShift Container Platform にログインした後に、そのユーザーのアカウントが作成されます。

  2. 3 つの Zookeeper ノードと 3 つのブローカーノードで、新しい my-cluster Kafka クラスターを作成します。

    • ephemeral ストレージを使用します。
    • route を使用するよう設定された外部リスナーを使用して、OpenShift クラスター外部の Kafka クラスターを公開します。

      cat << EOF | oc create -f -
      apiVersion: kafka.strimzi.io/v1beta2
      kind: Kafka
      metadata:
        name: my-cluster
      spec:
        kafka:
          replicas: 3
          listeners:
            - name: plain
              port: 9092
              type: internal
              tls: false
            - name: tls
              port: 9093
              type: internal
              tls: true
            - name: external
              port: 9094
              type: route 1
              tls: true
          storage:
            type: ephemeral
        zookeeper:
          replicas: 3
          storage:
            type: ephemeral
        entityOperator:
          topicOperator: {}
      EOF
  3. クラスターがデプロイされるまで待機します。

    oc wait my-kafka-project/my-cluster --for=condition=Ready --timeout=300s -n kafka
  4. クラスターの準備ができたら、パブリッシュするトピックを作成し、外部クライアントからサブスクライブします。

    my-cluster Kafka クラスターで 3 つのレプリカと 3 つのパーティションを使用して、以下の my-topic カスタムリソース定義を作成します。

    cat << EOF | oc create -f -
    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaTopic
    metadata:
      name: my-topic
      labels:
        strimzi.io/cluster: "my-cluster"
    spec:
      partitions: 3
      replicas: 3
    EOF