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 によって認識されません。ラベルセレクターは、
Kafka
、KafkaConnect
、KafkaBridge
、KafkaMirrorMaker
、およびKafkaMirrorMaker2
リソースに適用されます。KafkaRebalance
とKafkaConnector
リソースは、対応する 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
。有効な値はAlways
、IfNotPresent
、および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
リソースのみを調整し、他のカスタムリソース (Kafka
、KafkaConnect
など) への変更は無視されます。このモードは、必要に応じて 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 が実行中である。
手順
pause-reconciliation
をtrue
に設定して、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"
カスタムリソースの status 条件で、
ReconciliationPaused
への変更が表示されることを確認し ます。oc describe <kind_of_custom_resource> <name_of_custom_resource>
type
条件は、lastTransitionTime
でReconciliationPaused
に変わります。一時停止された調整条件タイプを持つカスタムリソースの例
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
ファイルで定義します。
replicas
プロパティーの値は、デフォルトの (1) から、必要なレプリカ数に変更します。Cluster Operator レプリカの数の増加
apiVersion: apps/v1 kind: Deployment metadata: name: strimzi-cluster-operator labels: app: strimzi spec: replicas: 3
リーダー選択の
env
プロパティーが設定されていることを確認します。設定されていない場合には、設定を行います。
リーダーの選出を有効にするには、
STRIMZI_LEADER_ELECTION_ENABLED
をtrue
(デフォルト) に設定する必要があります。この例では、リースの名前は
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 リソースを更新します。(オプション)
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 # ...
(オプション)
022-RoleBinding-strimzi-cluster-operator.yaml
ファイルでRoleBinding
リソースを編集します。subjects.name
およびsubjects.namespace
はLease
リソースの名前と、そのリソースが作成された 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 # ...
Cluster Operator をデプロイします。
oc create -f install/cluster-operator -n myproject
デプロイメントのステータスを確認します。
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_PROXY
、HTTPS_PROXY
、および NO_PROXY
) を環境変数として受け入れます。プロキシー設定はすべての Streams for Apache Kafka コンテナーに適用されます。
プロキシーアドレスの形式は http://<ip_address>:<port_number> です。名前とパスワードを使用してプロキシーを設定する場合、形式は http://<username>:<password>@<ip-address>:<port_number> です。
前提条件
-
CustomResourceDefinition
および RBAC (ClusterRole
およびRoleBinding
) リソースを作成および管理する権限を持つアカウント。
手順
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 # ...
または、
Deployment
を直接編集します。oc edit deployment strimzi-cluster-operator
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 クラスターで実行されている場合と同じように実行されます。
手順
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
Deployment
を直接編集せずに YAML ファイルを更新する場合は、変更を適用します。oc apply -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml