検索

第6章 インストールアーティファクトを使用した AMQ Streams のデプロイ

download PDF

AMQ Streams のデプロイメント環境を準備 したら、AMQ Streams を OpenShift クラスターにデプロイできます。リリースアーティファクトで提供されるデプロイメントファイルを使用できます。

デプロイメントファイルを使用して Kafka クラスターを作成します

任意で、要件に応じて以下の Kafka コンポーネントをデプロイできます。

AMQ Streams は Strimzi 0.28.x をベースとしています。AMQ Streams 2.1 は、OpenShift 4.6 から 4.10 にデプロイできます。

注記

本ガイドのコマンドを実行するには、クラスターユーザーに RBAC (ロールベースアクセス制御) および CRD を管理する権限を付与する必要があります。

6.1. Kafka クラスターの作成

Cluster Operator で Kafka クラスターを管理できるようにするには、これを Kafka リソースとしてデプロイする必要があります。AMQ Streams では、これ用のデプロイメントファイルのサンプルが同梱されています。これらのファイルを使用して、Topic Operator および User Operator を同時にデプロイできます。

Kafka クラスターを Kafka リソースとしてデプロイしていない場合は、Cluster Operator を使用してこれを管理できません。これは、たとえば OpenShift 外で実行されている Kafka クラスターに適用されます。ただし、Topic Operator および User Operator は、スタンドアロンコンポーネントとしてデプロイし、使用することができます。

注記

Cluster Operator は、OpenShift クラスターの 1 つ、複数、またはすべての namespace を監視できます。Topic Operator および User Operator は、Kafka クラスターデプロイメントの単一の namespace で KafkaTopics および KafkaUsers を監視します。

Kafka クラスターを Topic Operator および User Operator とデプロイ

AMQ Streams によって管理される Kafka クラスターを Topic Operator および User Operator と使用する場合は、このデプロイメント手順を実行します。

  1. Cluster Operator をデプロイします
  2. Cluster Operator を使用して以下をデプロイします。

スタンドアロン Topic Operator および User Operator のデプロイ

AMQ Streams によって管理されない Kafka クラスターを Topic Operator および User Operator と使用する場合は、このデプロイメント手順を実行します。

6.1.1. Cluster Operator のデプロイ

Cluster Operator は、OpenShift クラスター内で Apache Kafka クラスターのデプロイおよび管理を行います。

本セクションの手順では、以下のいずれかを監視するように Cluster Operator をデプロイする方法を説明します。

6.1.1.1. Cluster Operator デプロイメントの監視オプション

Cluster Operator の稼働中に、Kafka リソースの更新に対する監視が開始されます。

Cluster Operator をデプロイして、以下からの Kafka リソースの監視を選択できます。

  • 単一の namespace (Cluster Operator が含まれる同じ namespace)
  • 複数の namespace
  • すべての namespace
注記

AMQ Streams では、デプロイメントの処理を簡単にするため、YAML ファイルのサンプルが提供されます。

Cluster Operator では、以下のリソースの変更が監視されます。

  • Kafka クラスターの Kafka
  • Kafka Connect クラスターの KafkaConnect
  • Kafka Connect クラスターでコネクターを作成および管理するための KafkaConnector
  • Kafka MirrorMaker インスタンスの KafkaMirrorMaker
  • Kafka MirrorMaker 2.0 インスタンスの KafkaMirrorMaker2
  • Kafka Bridge インスタンスの KafkaBridge
  • Cruise Control の最適化リクエストの KafkaRebalance

OpenShift クラスターでこれらのリソースの 1 つが作成されると、Operator によってクラスターの詳細がリソースより取得されます。さらに、StatefulSet、Service、および ConfigMap などの必要な OpenShift リソースが作成され、リソースの新しいクラスターの作成が開始されます。

Kafka リソースが更新されるたびに、リソースのクラスターを構成する OpenShift リソースで該当する更新が Operator によって実行されます。

クラスターの望ましい状態がリソースのクラスターに反映されるようにするため、リソースへのパッチ適用後またはリソースの削除後にリソースが再作成されます。この操作は、サービスの中断を引き起こすローリングアップデートの原因となる可能性があります。

リソースが削除されると、Operator によってクラスターがアンデプロイされ、関連する OpenShift リソースがすべて削除されます。

6.1.1.2. 単一の namespace を監視対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターの単一の namespace で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。

前提条件

  • この手順では、CustomResourceDefinitionsClusterRoles、および ClusterRoleBindings を作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーは system:admin などの OpenShift クラスター管理者に限定されます。

手順

  1. Cluster Operator がインストールされる namespace を使用するように、AMQ Streams のインストールファイルを編集します。

    たとえば、この手順では Cluster Operator は <my_cluster_operator_namespace> という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml
  2. Cluster Operator をデプロイします。

    oc create -f install/cluster-operator -n <my_cluster_operator_namespace>
  3. デプロイメントのステータスを確認します。

    oc get deployments -n <my_cluster_operator_namespace>

    出力には、デプロイメント名と準備状態が表示されます。

    NAME                                READY  UP-TO-DATE  AVAILABLE
    amq-streams-cluster-operator-<version>  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.1.1.3. 複数の namespace を監視対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターの複数の namespace 全体で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。

前提条件

  • この手順では、CustomResourceDefinitionsClusterRoles、および ClusterRoleBindings を作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーは system:admin などの OpenShift クラスター管理者に限定されます。

手順

  1. Cluster Operator がインストールされる namespace を使用するように、AMQ Streams のインストールファイルを編集します。

    たとえば、この手順では Cluster Operator は <my_cluster_operator_namespace> という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml ファイルを編集し、Cluster Operator によって監視されるすべての namespace のリストを STRIMZI_NAMESPACE 環境変数に追加します。

    たとえば、この手順では Cluster Operator は watched-namespace-1watched-namespace-2、および watched-namespace-3 という namespace を監視します。

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq7/amq-streams-rhel8-operator:2.1.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: watched-namespace-1,watched-namespace-2,watched-namespace-3
  3. リストした各 namespace に RoleBindings をインストールします。

    この例では、コマンドの watched-namespace を前述のステップでリストした namespace に置き換えます。watched-namespace-1watched-namespace-2、および watched-namespace-3 に対してこれを行います。

    oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml -n <watched_namespace>
  4. Cluster Operator をデプロイします。

    oc create -f install/cluster-operator -n <my_cluster_operator_namespace>
  5. デプロイメントのステータスを確認します。

    oc get deployments -n <my_cluster_operator_namespace>

    出力には、デプロイメント名と準備状態が表示されます。

    NAME                                READY  UP-TO-DATE  AVAILABLE
    amq-streams-cluster-operator-<version>  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.1.1.4. すべての namespace を対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターのすべての namespace 全体で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。

このモードで実行している場合、Cluster Operator によって、新規作成された namespace でクラスターが自動的に管理されます。

前提条件

  • この手順では、CustomResourceDefinitionsClusterRoles、および ClusterRoleBindings を作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーは system:admin などの OpenShift クラスター管理者に限定されます。

手順

  1. Cluster Operator がインストールされる namespace を使用するように、AMQ Streams のインストールファイルを編集します。

    たとえば、この手順では Cluster Operator は <my_cluster_operator_namespace> という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: <my_cluster_operator_namespace>/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml ファイルを編集し、STRIMZI_NAMESPACE 環境変数の値を * に設定します。

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          # ...
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq7/amq-streams-rhel8-operator:2.1.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: "*"
            # ...
  3. クラスター全体ですべての namespace にアクセスできる権限を Cluster Operator に付与する ClusterRoleBindings を作成します。

    oc create clusterrolebinding strimzi-cluster-operator-namespaced --clusterrole=strimzi-cluster-operator-namespaced --serviceaccount <my_cluster_operator_namespace>:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount <my_cluster_operator_namespace>:strimzi-cluster-operator

    <my_cluster_operator_namespace> は、Cluster Operator をインストールする namespace に置き換えます。

  4. Cluster Operator を OpenShift クラスターにデプロイします。

    oc create -f install/cluster-operator -n <my_cluster_operator_namespace>
  5. デプロイメントのステータスを確認します。

    oc get deployments -n <my_cluster_operator_namespace>

    出力には、デプロイメント名と準備状態が表示されます。

    NAME                                READY  UP-TO-DATE  AVAILABLE
    amq-streams-cluster-operator-<version>  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.1.2. Kafka のデプロイ

Apache Kafka は、耐障害性のリアルタイムデータフィードを実現する、オープンソースの分散型 publish/subscribe メッセージングシステムです。

本セクションの手順では、以下を説明します。

Kafka をインストールする場合、AMQ Streams によって ZooKeeper クラスターもインストールされ、Kafka と ZooKeeper との接続に必要な設定が追加されます。

6.1.2.1. Kafka クラスターのデプロイメント

この手順では、Cluster Operator を使用して Kafka クラスターを OpenShift クラスターにデプロイする方法を説明します。

デプロイメントでは、YAML ファイルの仕様を使って Kafka リソースが作成されます。

AMQ Streams には、設定ファイルのサンプルが含まれています。Kafka デプロイメントでは、以下の例が提供されます。

kafka-persistent.yaml
3 つの Zookeeper ノードと 3 つの Kafka ノードを使用して永続クラスターをデプロイします。
kafka-jbod.yaml
それぞれが複数の永続ボリューを使用する、3 つの ZooKeeper ノードと 3 つの Kafka ノードを使用して、永続クラスターをデプロイします。
kafka-persistent-single.yaml
1 つの ZooKeeper ノードと 1 つの Kafka ノードを使用して、永続クラスターをデプロイします。
kafka-ephemeral.yaml
3 つの ZooKeeper ノードと 3 つの Kafka ノードを使用して、一時クラスターをデプロイします。
kafka-ephemeral-single.yaml
3 つの ZooKeeper ノードと 1 つの Kafka ノードを使用して、一時クラスターをデプロイします。

この手順では、一時 および 永続 Kafka クラスターデプロイメントの例を使用します。

一時クラスター
通常、Kafka の一時クラスターは開発およびテスト環境での使用に適していますが、本番環境での使用には適していません。このデプロイメントでは、ブローカー情報 (ZooKeeper) と、トピックまたはパーティション (Kafka) を格納するための emptyDir ボリュームが使用されます。emptyDir ボリュームを使用すると、その内容は厳密に Pod のライフサイクルと関連し、Pod がダウンすると削除されます。
永続クラスター
Kafka の永続クラスターでは、PersistentVolumes を使用して ZooKeeper および Kafka データを格納します。PersistentVolumeClaim を使用して PersistentVolume が取得され、PersistentVolume の実際のタイプには依存しません。たとえば、YAML ファイルを変更しなくても Amazon AWS デプロイメントで Amazon EBS ボリュームを使用できます。PersistentVolumeClaimStorageClass を使用し、自動ボリュームプロビジョニングをトリガーすることができます。

サンプル YAML ファイルは、サポートされる最新の Kafka バージョンを指定し、サポートされるログメッセージ形式バージョンの設定とブローカー間のプロトコルバージョンの設定を指定します。Kafka configinter.broker.protocol.version プロパティーは、指定された Kafka バージョン (spec.kafka.version) によってサポートされるバージョンである必要があります。このプロパティーは、Kafka クラスターで使用される Kafka プロトコルのバージョンを表します。

Kafka 3.0.0 以降、inter.broker.protocol.version3.0 以上に設定されていると、log.message.format.version オプションは無視されるため、設定する必要はありません。

Kafka のアップグレード 時に、inter.broker.protocol.version への更新が必要です。

サンプルクラスターの名前はデフォルトで my-cluster になります。クラスター名はリソースの名前によって定義され、クラスターがデプロイされた後に変更できません。クラスターをデプロイする前にクラスター名を変更するには、関連する YAML ファイルにある Kafka リソースの Kafka.metadata.name プロパティーを編集します。

デフォルトのクラスター名および指定された Kafka バージョン

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 3.1.0
    #...
    config:
      #...
      log.message.format.version: "3.1"
      inter.broker.protocol.version: "3.1"
  # ...

手順

  1. 一時 または 永続 クラスターを作成およびデプロイします。

    開発またはテストでは、一時クラスターの使用が適している可能性があります。永続クラスターはどのような状況でも使用することができます。

    • 一時 クラスターを作成およびデプロイするには、以下を実行します。

      oc apply -f examples/kafka/kafka-ephemeral.yaml
    • 永続 クラスターを作成およびデプロイするには、以下を実行します。

      oc apply -f examples/kafka/kafka-persistent.yaml
  2. デプロイメントのステータスを確認します。

    oc get pods -n <my_cluster_operator_namespace>

    出力には、Pod 名および readiness が表示されます。

    NAME                        READY   STATUS    RESTARTS
    my-cluster-entity-operator  3/3     Running   0
    my-cluster-kafka-0          1/1     Running   0
    my-cluster-kafka-1          1/1     Running   0
    my-cluster-kafka-2          1/1     Running   0
    my-cluster-zookeeper-0      1/1     Running   0
    my-cluster-zookeeper-1      1/1     Running   0
    my-cluster-zookeeper-2      1/1     Running   0

    my-cluster は Kafka クラスターの名前です。

    デフォルトのデプロイメントでは、Entity Operator クラスター、3 つの Kafka Pod、および 3 つの ZooKeeper Pod をインストールします。

    READY は、Ready/expected 状態のレプリカ数を表示します。STATUSRunning と表示されると、デプロイメントは成功しています。

6.1.2.2. Cluster Operator を使用した Topic Operator のデプロイ

この手順では、Cluster Operator を使用して Topic Operator をデプロイする方法を説明します。

Kafka リソースの entityOperator プロパティーを設定し、topicOperator が含まれるようにします。デフォルトでは、Topic Operator は Kafka クラスターデプロイメントの namespace で KafkaTopics を監視します。

AMQ Streams によって管理されない Kafka クラスターを Topic Operator と使用する場合は、Topic Operator をスタンドアロンコンポーネントとしてデプロイする必要があります。

entityOperator および topicOperator プロパティーの設定に関する詳細は、Configuring the Entity Operator を参照してください。

手順

  1. Kafka リソースの entityOperator プロパティーを編集し、topicOperator が含まれるようにします。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      #...
      entityOperator:
        topicOperator: {}
        userOperator: {}
  2. EntityTopicOperatorSpec schema reference」に記載されているプロパティーを使用して、Topic Operator の spec を設定します。

    すべてのプロパティーにデフォルト値を使用する場合は、空のオブジェクト ({}) を使用します。

  3. リソースを作成または更新します。

    次のように oc apply を使用します。

    oc apply -f <your-file>

6.1.2.3. Cluster Operator を使用した User Operator のデプロイ

この手順では、Cluster Operator を使用して User Operator をデプロイする方法を説明します。

Kafka リソースの entityOperator プロパティーを設定し、userOperator が含まれるようにします。デフォルトでは、User Operator は Kafka クラスターデプロイメントの namespace で KafkaUsers を監視します。

AMQ Streams によって管理されない Kafka クラスターを User Operator と使用する場合は、User Operator をスタンドアロンコンポーネントとしてデプロイする必要があります。

entityOperator および userOperator プロパティーの設定に関する詳細は、Configuring the Entity Operator を参照してください。

手順

  1. Kafka リソースの entityOperator プロパティーを編集し、userOperator が含まれるようにします。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      #...
      entityOperator:
        topicOperator: {}
        userOperator: {}
  2. EntityUserOperatorSpec スキーマ参照」に記載されているプロパティーを使用して、User Operator の spec を設定します。

    すべてのプロパティーにデフォルト値を使用する場合は、空のオブジェクト ({}) を使用します。

  3. リソースを作成または更新します。

    oc apply -f <your-file>

6.1.3. AMQ Streams Operator の代替のスタンドアロンデプロイメントオプション

Topic Operator および User Operator のスタンドアロンデプロイメントを実行できます。Cluster Operator によって管理されない Kafka クラスターを使用している場合は、これらの Operator のスタンドアロンデプロイメントを検討してください。

Operator を OpenShift にデプロイします。Kafka は OpenShift 外で実行できます。たとえば、Kafka を管理対象サービスとして使用する場合があります。スタンドアロン Operator のデプロイメント設定を調整し、Kafka クラスターのアドレスと一致するようにします。

6.1.3.1. スタンドアロン Topic Operator のデプロイ

この手順では、Topic Operator をトピック管理のスタンドアロンコンポーネントとしてデプロイする方法を説明します。スタンドアロン Topic Operator を Cluster Operator によって管理されない Kafka クラスターと使用できます。

スタンドアロンデプロイメントは、任意の Kafka クラスターと操作できます。

スタンドアロンデプロイメントファイルは AMQ Streams で提供されます。05-Deployment-strimzi-topic-operator.yaml デプロイメントファイルを使用して、Topic Operator をデプロイします。Kafka クラスターへの接続に必要な環境変数を追加または設定します。

前提条件

  • Topic Operator が接続する Kafka クラスターを実行しています。

    スタンドアロンの Topic Operator が接続用に正しく設定されている限り、Kafka クラスターはベアメタル環境、仮想マシン、または管理対象クラウドアプリケーションサービスで実行できます。

手順

  1. install/topic-operator/05-Deployment-strimzi-topic-operator.yaml スタンドアロンデプロイメントファイルの env プロパティーを編集します。

    スタンドアロンの Topic Operator デプロイメント設定の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-topic-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-topic-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 1
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 2
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_RESOURCE_LABELS 3
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_ZOOKEEPER_CONNECT 4
                  value: my-cluster-zookeeper-client:2181
                - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS 5
                  value: "18000"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 6
                  value: "120000"
                - name: STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS 7
                  value: "6"
                - name: STRIMZI_LOG_LEVEL 8
                  value: INFO
                - name: STRIMZI_TLS_ENABLED 9
                  value: "false"
                - name: STRIMZI_JAVA_OPTS 10
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 11
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
                - name: STRIMZI_PUBLIC_CA 12
                  value: "false"
                - name: STRIMZI_TLS_AUTH_ENABLED 13
                  value: "false"
                - name: STRIMZI_SASL_ENABLED 14
                  value: "false"
                - name: STRIMZI_SASL_USERNAME 15
                  value: "admin"
                - name: STRIMZI_SASL_PASSWORD 16
                  value: "password"
                - name: STRIMZI_SASL_MECHANISM 17
                  value: "scram-sha-512"
                - name: STRIMZI_SECURITY_PROTOCOL 18
                  value: "SSL"

    1
    KafkaTopic リソースを監視する Topic Operator の OpenShift namespace。Kafka クラスターの namespace を指定します。
    2
    Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
    3
    Topic Operator によって管理される KafkaTopic リソースを識別するためのラベルセレクター。
    4
    ZooKeeper クラスターに接続するためのアドレスのホストおよびポートのペア。これは、Kafka クラスターが使用する ZooKeeper クラスターと同じである必要があります。
    5
    ZooKeeper セッションのタイムアウト (秒単位)。デフォルトは 18000 (18 秒) です。
    6
    定期的な調整の間隔 (秒単位)。デフォルトは 120000 (2 分) です。
    7
    Kafka からトピックメタデータの取得を試行する回数。各試行の間隔は、指数バックオフとして定義されます。パーティションまたはレプリカの数が原因で、トピックの作成に時間がかかる場合は、この値を大きくすることを検討してください。デフォルトの試行回数は 6 回です。
    8
    ロギングメッセージの出力レベル。レベルを、ERRORWARNINGINFODEBUG、または TRACE に設定できます。
    9
    Kafka ブローカーとの暗号化された通信の TLS サポートを有効にします。
    10
    (任意) Topic Operator を実行する JVM に使用される Java オプション。
    11
    (任意) Topic Operator に設定されたデバッグ (-D) オプション。
    12
    (オプション)TLS が STRIMZI_TLS_ENABLED によって有効になっている場合、トラストストア証明書の生成を省略します。この環境変数が有効になっている場合、ブローカーは TLS 証明書に公的に信頼できる認証局を使用する必要があります。デフォルトは false です。
    13
    (オプション)相互 TLS 認証用のキーストア証明書を生成します。これを false に設定すると、TLS を使用した Kafka ブローカーへのクライアント認証が無効になります。デフォルトは true です。
    14
    (オプション)Kafka ブローカーに接続するときにクライアント認証の SASL サポートを有効にします。デフォルトは false です。
    15
    (任意)クライアント認証用の SASL ユーザー名。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。
    16
    (任意)クライアント認証用の SASL パスワード。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。
    17
    (任意)クライアント認証用の SASL メカニズム。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。この値は plainscram-sha-256、または scram-sha-512 に設定できます。
    18
    (任意)Kafka ブローカーとの通信に使用されるセキュリティープロトコル。デフォルト値は「PLAINTEXT」です。値は PLAINTEXTSSLSASL_PLAINTEXT、または SASL_SSL に設定できます。
  2. 公開認証局から証明書を使用している Kafkaブ ローカーに接続する場合は、STRIMZI_PUBLIC_CAtrue に設定します。たとえば、Amazon AWS MSK サービスを使用している場合は、このプロパティーを true に設定します。
  3. STRIMZI_TLS_ENABLED 環境変数で TLS を有効にした場合、Kafka クラスターへの接続を認証するために使用されるキーストアおよびトラストストアを指定します。

    TLS 設定の例

    # ....
    env:
      - name: STRIMZI_TRUSTSTORE_LOCATION 1
        value: "/path/to/truststore.p12"
      - name: STRIMZI_TRUSTSTORE_PASSWORD 2
        value: "TRUSTSTORE-PASSWORD"
      - name: STRIMZI_KEYSTORE_LOCATION 3
        value: "/path/to/keystore.p12"
      - name: STRIMZI_KEYSTORE_PASSWORD 4
        value: "KEYSTORE-PASSWORD"
    # ...

    1
    トラストストアには、Kafka および ZooKeeper サーバー証明書の署名に使用される認証局の公開鍵が含まれます。
    2
    トラストストアにアクセスするためのパスワード。
    3
    キーストアには、TLS クライアント認証の秘密鍵が含まれます。
    4
    キーストアにアクセスするためのパスワード
  4. Topic Operator をデプロイします。

    oc create -f install/topic-operator
  5. デプロイメントのステータスを確認します。

    oc get deployments

    出力には、デプロイメント名と準備状態が表示されます。

    NAME                    READY  UP-TO-DATE  AVAILABLE
    strimzi-topic-operator  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.1.3.2. スタンドアロン User Operator のデプロイ

この手順では、ユーザー管理のスタンドアロンコンポーネントとして User Operator をデプロイする方法を説明します。スタンドアロン User Operator を Cluster Operator によって管理されない Kafka クラスターと使用できます。

スタンドアロンデプロイメントは、任意の Kafka クラスターと操作できます。

スタンドアロンデプロイメントファイルは AMQ Streams で提供されます。05-Deployment-strimzi-user-operator.yaml デプロイメントファイルを使用して、User Operator をデプロイします。Kafka クラスターへの接続に必要な環境変数を追加または設定します。

前提条件

  • User Operator が接続する Kafka クラスターを実行しています。

    スタンドアロンの User Operator が接続用に正しく設定されている限り、Kafka クラスターはベアメタル環境、仮想マシン、または管理対象クラウドアプリケーションサービスで実行できます。

手順

  1. 以下の env プロパティーを install/user-operator/05-Deployment-strimzi-user-operator.yaml スタンドアロンデプロイメントファイルで編集します。

    スタンドアロン User Operator デプロイメント設定の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-user-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-user-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 1
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 2
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_CA_CERT_NAME 3
                  value: my-cluster-clients-ca-cert
                - name: STRIMZI_CA_KEY_NAME 4
                  value: my-cluster-clients-ca
                - name: STRIMZI_LABELS 5
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 6
                  value: "120000"
                - name: STRIMZI_LOG_LEVEL 7
                  value: INFO
                - name: STRIMZI_GC_LOG_ENABLED 8
                  value: "true"
                - name: STRIMZI_CA_VALIDITY 9
                  value: "365"
                - name: STRIMZI_CA_RENEWAL 10
                  value: "30"
                - name: STRIMZI_JAVA_OPTS 11
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 12
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
                - name: STRIMZI_SECRET_PREFIX 13
                  value: "kafka-"
                - name: STRIMZI_ACLS_ADMIN_API_SUPPORTED 14
                  value: "true"

    1
    KafkaUser リソースを監視する User Operator の OpenShift namespace。指定できる namespace は 1 つだけです。
    2
    Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
    3
    TLS クライアント認証に対して新しいユーザー証明書に署名する認証局の公開鍵 (ca.crt) の値が含まれる OpenShift Secret
    4
    TLS クライアント認証に対して新しいユーザー証明書に署名する認証局の秘密鍵 (ca.key) の値が含まれる OpenShift Secret
    5
    User Operator によって管理される KafkaUser リソースを識別するために使用されるラベルセレクター。
    6
    定期的な調整の間隔 (秒単位)。デフォルトは 120000 (2 分) です。
    7
    ロギングメッセージの出力レベル。レベルを、ERRORWARNINGINFODEBUG、または TRACE に設定できます。
    8
    ガベッジコレクション (GC) ロギングを有効にします。デフォルトは true です。
    9
    認証局の有効期間。デフォルトは 365 日です。
    10
    認証局の更新期間。更新期間は、現在の証明書の有効期日から逆算されます。デフォルトでは、古い証明書が期限切れになる前の証明書の更新期間は 30 日です。
    11
    (任意) User Operator を実行する JVM に使用される Java オプション。
    12
    (任意) User Operator に設定されたデバッグ (-D) オプション。
    13
    (オプション)User Operator によって作成される OpenShift シークレットの名前のプレフィックス。
    14
    (任意)Kafka クラスターが Kafka Admin API を使用した承認 ACL ルールの管理をサポートするかどうかを示します。false に設定すると、User Operator は simple 承認 ACL ルールを持つすべてのリソースを拒否します。これは、Kafka クラスターログで不要な例外を回避するのに役立ちます。デフォルトは true です。
  2. TLS を使用して Kafka クラスターに接続する場合は、接続の認証に使用されるシークレットを指定します。それ以外の場合は、次のステップに進みます。

    TLS 設定の例

    # ....
    env:
      - name: STRIMZI_CLUSTER_CA_CERT_SECRET_NAME 1
        value: my-cluster-cluster-ca-cert
      - name: STRIMZI_EO_KEY_SECRET_NAME 2
        value: my-cluster-entity-operator-certs
    # ..."

    1
    TLS クライアント認証に対して Kafka ブローカー証明書に署名する認証局の公開鍵 (ca.crt) の値が含まれる OpenShift Secret
    2
    Kafka クラスターに対する TLS 認証の秘密鍵と証明書が含まれるキーストア (entity-operator.p12) が含まれる OpenShift SecretSecret には、キーストアにアクセスするためのパスワード (entity-operator.password) も含まれる必要があります。
  3. User Operator をデプロイします。

    oc create -f install/user-operator
  4. デプロイメントのステータスを確認します。

    oc get deployments

    出力には、デプロイメント名と準備状態が表示されます。

    NAME                   READY  UP-TO-DATE  AVAILABLE
    strimzi-user-operator  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.