9.5. Cluster Operator の設定


環境変数を使用して Cluster Operator を設定します。Cluster Operator のコンテナーイメージの環境変数を Deployment 設定ファイルに指定します。以下の環境変数を使用して Cluster Operator を設定できます。Cluster Operator レプリカをスタンバイモードで実行している場合、リーダーの選択を有効にする追加の環境変数 があります。

Kafka、Kafka Connect、および Kafka MirrorMaker では、複数のバージョンがサポートされます。STRIMZI_<COMPONENT_NAME>_IMAGES 環境変数を使用して、各バージョンで使用されるデフォルトのコンテナーイメージを設定します。この設定により、バージョンとイメージ間のマッピングが提供されます。必要な構文は空白またはコンマで区切られた <version> = <image> のペアで、これによって特定のバージョンに使用するイメージが決まります。たとえば、3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。これらのデフォルトのイメージは、コンポーネントの設定で image プロパティー値が指定されている場合にオーバーライドされます。コンポーネントの image 設定の詳細は、Streams for Apache Kafka カスタムリソース API リファレンス を参照してください。

注記

Streams for Apache Kafka リリースアーティファクトに付属する Deployment 設定ファイルは、install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml です。

STRIMZI_NAMESPACE

Operator が操作する namespace のコンマ区切りリスト。設定されていない場合や、空の文字列や * に設定されている場合には、Cluster Operator はすべての namespace で動作します。

Cluster Operator デプロイメントでは downward API を使用して、これを Cluster Operator がデプロイされる namespace に自動設定することがあります。

Cluster Operator namespace の設定例

env:
  - name: STRIMZI_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace

STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
オプションです。デフォルトは 120000 ミリ秒です。定期的な調整の間隔 (秒単位)。
STRIMZI_OPERATION_TIMEOUT_MS
オプションです。デフォルトは 300000 ミリ秒です。内部操作のタイムアウト (ミリ秒単位)。通常の OpenShift 操作に (コンテナーイメージのダウンロードに長時間かかるなどの要因により) 通常より時間がかかるクラスターで Streams for Apache Kafka を使用する場合は、この値を増やしてください。
STRIMZI_ZOOKEEPER_ADMIN_SESSION_TIMEOUT_MS
オプションです。デフォルトは 10000 ミリ秒です。Cluster Operator の ZooKeeper 管理クライアントのセッションタイムアウト (ミリ秒単位)。タイムアウトの問題が原因で Cluster Operator からの ZooKeeper 要求が定期的に失敗する場合は、この値を増やします。maxSessionTimeout 設定で ZooKeeper サーバー側に最大許容セッション時間が設定されます。デフォルトでは、最大セッションタイムアウト値はデフォルトの tickTime (デフォルトは 2000) の 20 倍、つまり 40000 ミリ秒です。タイムアウト時間を伸ばす必要がある場合は、maxSessionTimeout ZooKeeper サーバー設定値を変更する必要があります。
STRIMZI_OPERATIONS_THREAD_POOL_SIZE
オプションです。デフォルトは 10 です。Cluster Operator によって実行されるさまざまな非同期およびブロッキング操作に使用されるワーカースレッドのプールサイズです。
STRIMZI_OPERATOR_NAME
オプションです。デフォルトは Pod のホスト名です。Operator 名により、OpenShift イベントを発行 するときに Streams for Apache Kafka インスタンスが識別されます。
STRIMZI_OPERATOR_NAMESPACE

Cluster Operator が稼働している namespace の名前。この変数は手動で設定しないでください。Downward API を使用します。

env:
  - name: STRIMZI_OPERATOR_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
STRIMZI_OPERATOR_NAMESPACE_LABELS

オプション: Streams for Apache Kafka Cluster Operator が実行されている namespace のラベル。namespace のラベルは、ネットワークポリシー で namespace セレクターを設定するために使用します。ネットワークポリシーを使用すると、AMQ Streams Cluster Operator がアクセスできるオペランドを、このラベルを持つ namespace のオペランドだけに限定できます。設定されていない場合、ネットワークポリシーの namespace セレクターは、OpenShift クラスターのすべての namespace から Cluster Operator にアクセスできるように設定されます。

env:
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
STRIMZI_LABELS_EXCLUSION_PATTERN

オプションです。デフォルトの正規表現パターンは ^app.kubernetes.io/(?!part-of).* です。メインのカスタムリソースからサブリソースへのラベル伝搬をフィルターするために使用される正規表現除外パターン。ラベル除外フィルターは、spec.kafka.template.pod.metadata.labels などのテンプレートセクションのラベルには適用されません。

env:
  - name: STRIMZI_LABELS_EXCLUSION_PATTERN
    value: "^key1.*"
STRIMZI_CUSTOM_<COMPONENT_NAME>_LABELS

オプション: コンポーネントのカスタムリソースによって作成されたすべての Pod に適用する 1 つ以上のカスタムラベル。Cluster Operator は、カスタムリソースの作成時か、次の調整時に Pod にラベルを付けます。

ラベルは以下のコンポーネントに適用できます。

  • KAFKA
  • KAFKA_CONNECT
  • KAFKA_CONNECT_BUILD
  • ZOOKEEPER
  • ENTITY_OPERATOR
  • KAFKA_MIRROR_MAKER2
  • KAFKA_MIRROR_MAKER
  • CRUISE_CONTROL
  • KAFKA_BRIDGE
  • KAFKA_EXPORTER
STRIMZI_CUSTOM_RESOURCE_SELECTOR

オプション: Cluster Operator によって処理されるカスタムリソースをフィルターするラベルセレクター。Operator は、指定されたラベルが設定されているカスタムリソースでのみ動作します。これらのラベルのないリソースは Operator によって認識されません。ラベルセレクターは、KafkaKafkaConnectKafkaBridgeKafkaMirrorMaker、および KafkaMirrorMaker2 リソースに適用されます。KafkaRebalanceKafkaConnector リソースは、対応する Kafka および Kafka Connect クラスターに一致するラベルがある場合にのみ操作されます。

env:
  - name: STRIMZI_CUSTOM_RESOURCE_SELECTOR
    value: label1=value1,label2=value2
STRIMZI_KAFKA_IMAGES
必須。Kafka バージョンから、そのバージョンの Kafka ブローカーが含まれる該当のイメージへのマッピング。たとえば、3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel9:2.7.0、3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。
STRIMZI_KAFKA_CONNECT_IMAGES
必須。Kafka バージョンから、そのバージョンの Kafka Connect の該当のイメージに対するマッピング。たとえば、3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel9:2.7.0、3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。
STRIMZI_KAFKA_MIRROR_MAKER2_IMAGES
必須。Kafka バージョンから、そのバージョンの MirrorMaker 2 の対応するイメージへのマッピング。たとえば、3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel9:2.7.0、3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。
(非推奨) STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
必須。Kafka バージョンから、そのバージョンの MirrorMakerの該当のイメージに対するマッピング。たとえば、3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel9:2.7.0、3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。
STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0 です。Kafka リソースでイメージが Kafka.spec.entityOperator.topicOperator.image として指定されていない場合に、Topic Operator のデプロイ時にデフォルトとして使用するイメージ名。
STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0 です。Kafka リソースの Kafka.spec.entityOperator.userOperator.image にイメージが指定されていない場合に、User Operator をデプロイする際にデフォルトで使用するイメージ名です。
STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。Kafka リソースの Kafka.spec.entityOperator.tlsSidecar.image にイメージが指定されていない場合に、Entity Operator のサイドカーコンテナーをデプロイする際にデフォルトで使用するイメージ名です。サイドカーは TLS サポートを提供します。
STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。Kafka リソースで Kafka.spec.kafkaExporter.image としてイメージが指定されていない場合に、Kafka Exporter をデプロイするときにデフォルトとして使用するイメージ名。
STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 です。Kafka リソースで Kafka.spec.cruiseControl.image としてイメージが指定されていない場合に、Cruise Control をデプロイするときにデフォルトとして使用するイメージ名。
STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/bridge-rhel9:2.7.0 です。Kafka リソースで Kafka.spec.kafkaBridge.image としてイメージが指定されていない場合に、Kafka Bridge をデプロイするときにデフォルトとして使用するイメージ名。
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
オプション: デフォルトは registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0 です。Kafka リソースの brokerRackInitImage または Kafka Connect リソースの clientRackInitImage でイメージが指定されていない場合に、Kafka イニシャライザーコンテナーのデフォルトとして使用するイメージ名。init コンテナーは、ラックサポートなどの初期設定作業のために、Kafka クラスターの前に起動します。
STRIMZI_IMAGE_PULL_POLICY
オプション: Cluster Operator によって管理されるすべての Pod のコンテナーに適用される ImagePullPolicy。有効な値は AlwaysIfNotPresent、および Never です。指定のない場合は、OpenShift のデフォルトが使用されます。ポリシーを変更すると、すべての Kafka、Kafka Connect、および Kafka MirrorMaker クラスターのローリング更新が実行されます。
STRIMZI_IMAGE_PULL_SECRETS
オプション: Secret 名のコンマ区切りのリスト。ここで参照されるシークレットには、コンテナーイメージがプルされるコンテナーレジストリーへのクレデンシャルが含まれます。シークレットは、Cluster Operator によって作成されるすべての Pod の imagePullSecrets プロパティーで指定されます。このリストを変更すると、Kafka、Kafka Connect、および Kafka MirrorMaker のすべてのクラスターのローリング更新が実行されます。
STRIMZI_KUBERNETES_VERSION

オプション: API サーバーから検出された OpenShift バージョン情報をオーバーライドします。

OpenShift バージョンオーバーライドの設定例

env:
  - name: STRIMZI_KUBERNETES_VERSION
    value: |
           major=1
           minor=16
           gitVersion=v1.16.2
           gitCommit=c97fe5036ef3df2967d086711e6c0c405941e14b
           gitTreeState=clean
           buildDate=2019-10-15T19:09:08Z
           goVersion=go1.12.10
           compiler=gc
           platform=linux/amd64

KUBERNETES_SERVICE_DNS_DOMAIN

オプション: デフォルトの OpenShift DNS 接尾辞を上書きします。

デフォルトでは、OpenShfit クラスターで割り当てられるサービスに、デフォルトの接尾辞 cluster.local を使用する DNS ドメイン名があります。

ブローカーが kafka-0 の場合の例は次のとおりです。

<cluster-name>-kafka-0.<cluster-name>-kafka-brokers.<namespace>.svc.cluster.local

DNS ドメイン名は、ホスト名の検証に使用される Kafka ブローカー証明書に追加されます。

クラスターで異なる DNS 接尾辞を使用している場合、Kafka ブローカーとの接続を確立するために、KUBERNETES_SERVICE_DNS_DOMAIN 環境変数をデフォルトから現在使用中の DNS 接尾辞に変更します。

STRIMZI_CONNECT_BUILD_TIMEOUT_MS
オプションです。デフォルトは 300000 ミリ秒です。追加のコネクターで新しい Kafka Connect イメージをビルドする場合のタイムアウト (ミリ秒単位)。Streams for Apache Kafka を使用して多くのコネクターが含まれるコンテナーイメージをビルドする場合や、低速なコンテナーレジストリーを使用する場合は、この値を増やすことを検討してください。
STRIMZI_NETWORK_POLICY_GENERATION

オプションです。デフォルトは true です。リソースのネットワークポリシー。ネットワークポリシーにより、Kafka コンポーネント間の接続が許可されます。

ネットワークポリシーの生成を無効にするには、この環境変数を false に設定します。たとえば、カスタムのネットワークポリシーを使用する場合は、これを行うことができます。カスタムネットワークポリシーを使用すると、コンポーネント間の接続をより詳細に制御できます。

STRIMZI_DNS_CACHE_TTL
オプションです。デフォルトは 30 です。ローカル DNS リゾルバーで成功した名前のルックアップをキャッシュする秒数。負の値を指定すると、キャッシュの期限はありません。ゼロはキャッシュされないことを意味します。これは、長いキャッシュポリシーが適用されることが原因の接続エラーを回避する場合に便利です。
STRIMZI_POD_SET_RECONCILIATION_ONLY
オプションです。デフォルトは false です。true に設定すると、Cluster Operator は StrimziPodSet リソースのみを調整し、他のカスタムリソース (KafkaKafkaConnect など) への変更は無視されます。このモードは、必要に応じて Pod が再作成されるようにするのに役立ちますが、クラスターに他の変更は加えられません。
STRIMZI_FEATURE_GATES
オプション: フィーチャーゲートで制御される機能を有効または無効にします。
STRIMZI_POD_SECURITY_PROVIDER_CLASS
オプション: Pod とコンテナーのセキュリティーコンテキスト設定を提供するために使用できるプラグ可能な PodSecurityProvider クラスを設定します。

9.5.1. ネットワークポリシーを使用した Cluster Operator へのアクセス制限

STRIMZI_OPERATOR_NAMESPACE_LABELS 環境変数を使用して Cluster Operator のネットワークポリシーを確立するには、namespace ラベルを使用します。

Cluster Operator は、管理するリソースと同じ namespace または別の namespace で実行できます。デフォルトでは、STRIMZI_OPERATOR_NAMESPACE 環境変数は、Downward API を使用して、Cluster Operator がどの namespace で実行されているかを検索するように設定されています。Cluster Operator がリソースと同じ namespace で実行されている場合は、ローカルアクセスのみが必要で、Streams for Apache Kafka によって許可されます。

Cluster Operator が管理するリソースとは別の namespace で実行されている場合、ネットワークポリシーが設定されている場合を除き、OpenShift クラスターのすべての namespace は Cluster Operator へのアクセスが許可されます。namespace ラベルを追加すると、Cluster Operator へのアクセスは指定された namespace に限定されます。

Cluster Operator デプロイメントに設定されたネットワークポリシー

#...
env:
  # ...
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
  #...

9.5.2. カスタムリソースの定期的な調整の設定

STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 変数を使用して、Cluster Operator による定期的な調整の時間間隔を設定します。この値は、指定する間隔 (ミリ秒単位) に置き換えます。

Cluster Operator デプロイメント用に設定された調整期間

#...
env:
  # ...
  - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
    value: "120000"
  #...

Cluster Operator は、OpenShift クラスターから受信した対象のクラスターリソースに関するすべての通知に反応します。Operator が実行されていない場合や、何らかの理由で通知を受信しない場合に、リソースは実行中の OpenShift クラスターの状態と同期しなくなります。フェイルオーバーを適切に処理するために、Cluster Operator によって定期的な調整プロセスが実行され、リソースの状態を現在のクラスターデプロイメントと比較して、すべてのリソースで一貫した状態を保つことができます。

関連情報

9.5.3. アノテーションを使用したカスタムリソースの調整の一時停止

場合によっては、修正や更新を実行できるように、Streams for Apache Kafka Operator によって管理されるカスタムリソースの調整を一時停止すると便利なことがあります。調整を一時停止すると、Operator は、一時停止が終了するまでカスタムリソースに加えた変更を無視します。

カスタムリソースの調整を一時停止するには、configure で strimzi.io/pause-reconciliation アノテーションを true に設定します。これにより、適切な Operator に対し、カスタムリソースの調整を一時停止するように指示します。たとえば、Cluster Operator による調整が一時停止されるように、アノテーションを KafkaConnect リソースに適用できます。

pause アノテーションを有効にしてカスタムリソースを作成することもできます。カスタムリソースは作成されますが、無視されます。

前提条件

  • カスタムリソースを管理する Streams for Apache Kafka Operator が実行中である。

手順

  1. pause-reconciliationtrue に設定して、OpenShift のカスタムリソースにアノテーションを付けます。

    oc annotate <kind_of_custom_resource> <name_of_custom_resource> strimzi.io/pause-reconciliation="true"

    たとえば、KafkaConnect カスタムリソースの場合は以下のようになります。

    oc annotate KafkaConnect my-connect strimzi.io/pause-reconciliation="true"
  2. カスタムリソースの status 条件で、ReconciliationPaused への変更が表示されることを確認し ます。

    oc describe <kind_of_custom_resource> <name_of_custom_resource>

    type 条件は、lastTransitionTimeReconciliationPaused に変わります。

    一時停止された調整条件タイプを持つカスタムリソースの例

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnect
    metadata:
      annotations:
        strimzi.io/pause-reconciliation: "true"
        strimzi.io/use-connector-resources: "true"
      creationTimestamp: 2021-03-12T10:47:11Z
      #...
    spec:
      # ...
    status:
      conditions:
      - lastTransitionTime: 2021-03-12T10:47:41.689249Z
        status: "True"
        type: ReconciliationPaused

一時停止からの再開

  • 調整を再開するには、アノテーションを false に設定するか、アノテーションを削除します。

9.5.4. リーダーの選択による複数の Cluster Operator レプリカの実行

デフォルトの Cluster Operator 設定では、リーダーの選択が有効になっており、Cluster Operator の並列レプリカを複数実行します。1 つのレプリカがアクティブなリーダーとして選択され、デプロイされたリソースを操作します。他のレプリカはスタンバイモードで実行されます。リーダーが停止またはクラッシュすると、スタンバイレプリカの 1 つが新しいリーダーとして選出され、デプロイされたリソースの操作を開始します。

デフォルトでは、Streams for Apache Kafka は、常にリーダーレプリカである単一の Cluster Operator レプリカで実行されます。単一の Cluster Operator レプリカが停止または失敗すると、OpenShift は新しいレプリカを起動します。

複数のレプリカを使用した Cluster Operator の実行は必須ではありません。ただし、重大な障害による大規模な中断が発生した場合に備えて、レプリカをスタンバイにしておくと便利です。たとえば、複数のワーカーノードまたはアベイラビリティーゾーン全体に障害が発生したとします。このような障害が発生すると、Cluster Operator Pod と多くの Kafka Pod が同時にダウンする可能性があります。後続の Pod スケジューリングがリソース不足によって輻輳を引き起こす場合、単一の Cluster Operator を実行しているときに操作が遅延する可能性があります。

9.5.4.1. Cluster Operator レプリカのリーダー選択の有効化

追加の Cluster Operator レプリカを実行する場合は、リーダー選出環境変数を設定します。以下の環境変数がサポートされています。

STRIMZI_LEADER_ELECTION_ENABLED
デフォルトでは無効 (false) になります (任意)。リーダーの選出を有効または無効にし、追加の Cluster Operator レプリカをスタンバイで実行できます。
注記

リーダーの選択はデフォルトで無効になっています。インストール時にこの環境変数を適用する場合にのみ有効になります。

STRIMZI_LEADER_ELECTION_LEASE_NAME
リーダー選出が有効な場合に必要です。リーダーの選出に使用される OpenShift Lease リソースの名前。
STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE

リーダー選出が有効な場合に必要です。リーダー選出に使用される OpenShift Lease リソースが作成される namespace。Downward API を使用して、Cluster Operator がデプロイされている namespace に設定できます。

env:
  - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
STRIMZI_LEADER_ELECTION_IDENTITY

リーダー選出が有効な場合に必要です。リーダーの選択中に使用される特定の Cluster Operator インスタンスのアイデンティティーを設定します。アイデンティティーは、Operator インスタンスごとに一意である必要があります。Downward API を使用して、Cluster Operator がデプロイされている Pod の名前に設定できます。

env:
  - name: STRIMZI_LEADER_ELECTION_IDENTITY
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
STRIMZI_LEADER_ELECTION_LEASE_DURATION_MS
オプションです。デフォルトは 15000 ミリ秒です。取得したリースの有効期間を設定します。
STRIMZI_LEADER_ELECTION_RENEW_DEADLINE_MS
オプションです。デフォルトは 10000 ミリ秒です。リーダーがリーダーシップを維持しようと試行する期間を指定します。
STRIMZI_LEADER_ELECTION_RETRY_PERIOD_MS
オプションです。デフォルトは 2000 ミリ秒です。リーダーによるリースロックへの更新頻度を指定します。

9.5.4.2. Cluster Operator レプリカの設定

追加の Cluster Operator レプリカをスタンバイモードで実行するには、レプリカ数を増やし、リーダーの選択を有効にする必要があります。リーダーの選択を設定するには、リーダー選択用の環境変数を使用します。

必要な変更を行うには、install/cluster-operator/ にある以下の Cluster Operator インストールファイルを設定します。

  • 060-Deployment-strimzi-cluster-operator.yaml
  • 022-ClusterRole-strimzi-cluster-operator-role.yaml
  • 022-RoleBinding-strimzi-cluster-operator.yaml

リーダーの選出には、監視している namespace ではなく、Cluster Operator が実行されている namespace を対象とする独自の ClusterRole および RoleBinding RBAC リソースがあります。

デフォルトのデプロイメント設定は、strimzi-cluster-operator という Lease リソースを Cluster Operator と同じ namespace に作成します。Cluster Operator はリースを使用してリーダーの選択を管理します。RBAC リソースは、Lease リソースを使用するためのパーミッションを提供します。別の Lease 名または namespace を使用する場合は、ClusterRole および RoleBinding ファイルを適宜更新します。

前提条件

  • CustomResourceDefinition および RBAC (ClusterRole および RoleBinding) リソースを作成および管理する権限を持つアカウント。

手順

Cluster Operator のデプロイに使用される Deployment リソースを編集します。これは、060-Deployment-strimzi-cluster-operator.yaml ファイルで定義します。

  1. replicas プロパティーの値は、デフォルトの (1) から、必要なレプリカ数に変更します。

    Cluster Operator レプリカの数の増加

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-cluster-operator
      labels:
        app: strimzi
    spec:
      replicas: 3

  2. リーダー選択の env プロパティーが設定されていることを確認します。

    設定されていない場合には、設定を行います。

    リーダーの選出を有効にするには、STRIMZI_LEADER_ELECTION_ENABLEDtrue (デフォルト) に設定する必要があります。

    この例では、リースの名前は my-strimzi-cluster-operator に変更されています。

    Cluster Operator のリーダー選択用の環境変数の設定

    # ...
    spec
      containers:
        - name: strimzi-cluster-operator
          # ...
          env:
            - name: STRIMZI_LEADER_ELECTION_ENABLED
              value: "true"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAME
              value: "my-strimzi-cluster-operator"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.namespace
            - name: STRIMZI_LEADER_ELECTION_IDENTITY
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.name

    利用可能な環境変数の説明は、「Cluster Operator レプリカのリーダー選択の有効化」 を参照してください。

    リーダーの選択に使用する Lease リソースに別の名前または namespace を指定している場合は、RBAC リソースを更新します。

  3. (オプション) 022-ClusterRole-strimzi-cluster-operator-role.yaml ファイルで ClusterRole リソースを編集します。

    resourceNames は、Lease リソースの名前に更新します。

    リースへの ClusterRole 参照の更新

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    rules:
      - apiGroups:
          - coordination.k8s.io
        resourceNames:
          - my-strimzi-cluster-operator
    # ...

  4. (オプション) 022-RoleBinding-strimzi-cluster-operator.yaml ファイルで RoleBinding リソースを編集します。

    subjects.name および subjects.namespaceLease リソースの名前と、そのリソースが作成された namespace に更新します。

    RoleBinding 参照のリースへの更新

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    subjects:
      - kind: ServiceAccount
        name: my-strimzi-cluster-operator
        namespace: myproject
    # ...

  5. Cluster Operator をデプロイします。

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

    oc get deployments -n myproject

    デプロイメント名と準備状態が表示されている出力

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  3/3    3           3

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に正しい数のレプリカが表示されると、デプロイは成功です。

9.5.5. Cluster Operator HTTP プロキシーの設定

HTTP プロキシーの背後で Kafka クラスターを実行している場合は、クラスターとの間でデータを出し入れできます。たとえば、プロキシー外からデータをプッシュおよびプルするコネクターで Kafka Connect を実行できます。または、プロキシーを使用して認可サーバーに接続できます。

プロキシー環境変数を指定するように Cluster Operator デプロイメントを設定します。Cluster Operator は、標準のプロキシー設定 (HTTP_PROXYHTTPS_PROXY、および NO_PROXY) を環境変数として受け入れます。プロキシー設定はすべての Streams for Apache Kafka コンテナーに適用されます。

プロキシーアドレスの形式は http://<ip_address>:<port_number> です。名前とパスワードを使用してプロキシーを設定する場合、形式は http://<username>:<password>@<ip-address>:<port_number> です。

前提条件

  • CustomResourceDefinition および RBAC (ClusterRole および RoleBinding) リソースを作成および管理する権限を持つアカウント。

手順

  1. Cluster Operator にプロキシー環境変数を追加するには、その Deployment 設定 (install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml) を更新します。

    Cluster Operator のプロキシー設定の例

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "HTTP_PROXY"
              value: "http://proxy.com" 1
            - name: "HTTPS_PROXY"
              value: "https://proxy.com" 2
            - name: "NO_PROXY"
              value: "internal.com, other.domain.com" 3
      # ...

    1
    プロキシーサーバーのアドレス。
    2
    プロキシーサーバーのセキュアなアドレス。
    3
    プロキシーサーバーの例外として直接アクセスされるサーバーのアドレス。URL はコンマで区切られます。

    または、Deployment を直接編集します。

    oc edit deployment strimzi-cluster-operator
  2. Deployment を直接編集せずに YAML ファイルを更新する場合は、変更を適用します。

    oc create -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml

9.5.6. Cluster Operator 設定を使用した FIPS モードの無効化

Streams for Apache Kafka は、FIPS 対応の OpenShift クラスターで実行されると、自動的に FIPS モードに切り替わります。FIPS モードを無効にするには、Cluster Operator のデプロイメント設定で FIPS_MODE 環境変数を disabled に設定します。FIPS モードを無効にすると、Streams for Apache Kafka はすべてのコンポーネントの OpenJDK で FIPS を自動的に無効にします。FIPS モードが無効な場合、Streams for Apache Kafka は FIPS に準拠しません。Streams for Apache Kafka の Operator とすべてのオペランドが、FIPS が有効でない OpenShift クラスターで実行されている場合と同じように実行されます。

手順

  1. Cluster Operator で FIPS モードを無効にするには、Deployment 設定 (install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml) を更新し、FIPS_MODE 環境変数を追加します。

    Cluster Operator の FIPS 設定例

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "FIPS_MODE"
              value: "disabled" 1
      # ...

    1
    FIPS モードを無効にします。

    または、Deployment を直接編集します。

    oc edit deployment strimzi-cluster-operator
  2. Deployment を直接編集せずに YAML ファイルを更新する場合は、変更を適用します。

    oc apply -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.