第5章 AMQ Streams operator の使用
AMQ Streams の operator を使用して Kafka クラスターと Kafka トピックおよびユーザーを管理します。
5.1. Cluster Operator の使用 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は Kafka クラスターや他の Kafka コンポーネントをデプロイするために使用されます。
Cluster Operator は YAML インストールファイルを使用してデプロイされます。
OpenShift では、Kafka Connect デプロイメントに Source2Image 機能を組み込み、追加のコネクターを加えるための便利な方法として利用できます。
5.1.1. Cluster Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は、サポートされる環境変数を使用してロギング設定から設定できます。
環境変数は、Cluster Operator イメージのデプロイメンのコンテナー設定に関連します。image
設定の詳細については、「image
」 を参照してください。
STRIMZI_NAMESPACE
Operator が操作する namespace のカンマ区切りのリスト。設定されていない場合や、空の文字列や
*
に設定された場合、Cluster Operator はすべての namespace で操作します。Cluster Operator デプロイメントでは OpenShift Downward API を使用して、これを Cluster Operator がデプロイされる namespace に自動設定することがあります。Cluster Operator namespace の設定例
env: - name: STRIMZI_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
env: - name: STRIMZI_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
- 任意設定、デフォルトは 120000 ミリ秒です。定期的な調整の間隔 (秒単位)。
STRIMZI_OPERATION_TIMEOUT_MS
- 任意設定、デフォルトは 300000 ミリ秒です。内部操作のタイムアウト (ミリ秒単位)。この値は、標準の OpenShift 操作の時間が通常よりも長いクラスターで (Docker イメージのダウンロードが遅い場合など) AMQ Streams を使用する場合に増やす必要があります。
STRIMZI_OPERATIONS_THREAD_POOL_SIZE
- 任意設定で、デフォルトは 10 です。クラスターオペレーターによって実行されるさまざまな非同期およびブロッキング操作に使用されるワーカースレッドのプールサイズです。
STRIMZI_OPERATOR_NAMESPACE
AMQ Streams Cluster Operator が稼働している namespace の名前。この変数は手動で設定しないでください。OpenShift Downward API を使用します。
env: - name: STRIMZI_OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
env: - name: STRIMZI_OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STRIMZI_OPERATOR_NAMESPACE_LABELS
オプション。AMQ Streams Cluster Operator が稼働している namespace のラベル。namespace ラベルは、ネットワークポリシーで namespace セレクターを設定するために使用されます。これにより、AMQ Streams Cluster Operator はこれらのラベルを持つ namespace からのオペランドのみにアクセスできます。設定されていない場合、ネットワークポリシーの namespace セレクターは、OpenShift クラスターのすべての namespace から AMQ Streams Cluster Operator にアクセスできるように設定されます。
env: - name: STRIMZI_OPERATOR_NAMESPACE_LABELS value: label1=value1,label2=value2
env: - name: STRIMZI_OPERATOR_NAMESPACE_LABELS value: label1=value1,label2=value2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STRIMZI_CUSTOM_RESOURCE_SELECTOR
オプション。Operator によって処理されるカスタムリソースのフィルタリングに使用されるラベルセレクターを指定します。Operator は、指定されたラベルが設定されているカスタムリソースでのみ動作します。これらのラベルのないリソースは Operator によって認識されません。ラベルセレクターは、
Kafka
、KafkaConnect
、KafkaConnectS2I
、KafkaBridge
、KafkaMirrorMaker
およびKafkaMirrorMaker2
リソースに適用されます。KafkaRebalance
とKafkaConnector
リソースは、対応する Kafka および Kafka Connect クラスターに一致するラベルがある場合にのみ操作されます。env: - name: STRIMZI_CUSTOM_RESOURCE_SELECTOR value: label1=value1,label2=value2
env: - name: STRIMZI_CUSTOM_RESOURCE_SELECTOR value: label1=value1,label2=value2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STRIMZI_LABELS_EXCLUSION_PATTERN
任意設定、デフォルトの正規表現パターンは
^app.kubernetes.io/(?!part-of).*
です。メインのカスタムリソースからサブリソースへのラベル伝搬をフィルターするために使用される正規表現除外パターンを指定します。ラベル除外フィルターは、spec.kafka.template.pod.metadata.labels
などのテンプレートセクションのラベルには適用されません。env: - name: STRIMZI_LABELS_EXCLUSION_PATTERN value: "^key1.*"
env: - name: STRIMZI_LABELS_EXCLUSION_PATTERN value: "^key1.*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STRIMZI_KAFKA_IMAGES
-
必須。Kafka バージョンから、そのバージョンの Kafka ブローカーが含まれる該当の Docker イメージへのマッピングが提供されます。必要な構文は、空白またはカンマ区切りの
<version>=<image>
ペアです。例:2.7.0=registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.8.0, 2.8.0=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
.これはKafka.spec.kafka.version
プロパティが指定されていて、Kafka
リソースのKafka.spec.kafka.image
が指定されていない場合に使用されます。 STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
-
任意設定、デフォルトは
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.8.0
です。Kafka
リソースのkafka-init-image
としてイメージが指定されていない場合に、初期設定作業(ラックサポート)のためにブローカーの前に開始される init コンテナのデフォルトとして使用するイメージ名。 STRIMZI_KAFKA_CONNECT_IMAGES
-
必須。Kafka バージョンから、そのバージョンの Kafka Connect が含まれる該当の Docker イメージへのマッピングが提供されます。必要な構文は、空白またはカンマ区切りの
<version>=<image>
ペアです。例:2.7.0=registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.8.0, 2.8.0=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
.これは、KafkaConnect.spec.version
プロパティが指定され、KafkaConnect.spec.image
が指定されていない場合に使用されます。 STRIMZI_KAFKA_CONNECT_S2I_IMAGES
-
必須。Kafka バージョンから、そのバージョンの Kafka Connect が含まれる該当の Docker イメージへのマッピングが提供されます。必要な構文は、空白またはカンマ区切りの
<version>=<image>
ペアです。例:2.7.0=registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.8.0, 2.8.0=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
.KafkaConnectS2I.spec.version
プロパティーが指定されていても、KafkaConnectS2I.spec.image
プロパティーが指定されていない場合に使用されます。 STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
-
必須。Kafka バージョンから、そのバージョンの Kafka Mirror Maker が含まれる該当の Docker イメージへのマッピングが提供されます。必要な構文は、空白またはカンマ区切りの
<version>=<image>
ペアです。例:2.7.0=registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.8.0, 2.8.0=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
.これは、KafkaMirrorMaker.spec.version
プロパティーが指定されていてもKafkaMirrorMaker.spec.image
プロパティーが指定されていない場合に使用されます。 STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
-
任意設定、デフォルトは
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.8.0
です。Kafka
リソースのKafka.spec.entityOperator.topicOperator.image
として指定されたイメージがない場合に、Topic Operator のデプロイ時にデフォルトとして使用するイメージ名。 STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
-
任意設定、デフォルトは
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.8.0
です。Kafka
リソースのKafka.spec.entityOperator.userOperator.image
にイメージが指定されていない場合に、ユーザーオペレーターをデプロイする際にデフォルトで使用するイメージ名です。 STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE
-
任意設定、デフォルトは
registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
です。Kafka
リソースのKafka.spec.entityOperator.tlsSidecar.image
にイメージが指定されていない場合に、Entity OperatorのTLSサポートを提供するサイドカーコンテナをデプロイする際にデフォルトで使用するイメージ名です。 STRIMZI_IMAGE_PULL_POLICY
-
任意設定。AMQ Streams の Cluster Operator によって管理されるすべての Pod のコンテナーに適用される
ImagePullPolicy
。有効な値はAlways
、IfNotPresent
、およびNever
です。指定のない場合、OpenShift のデフォルトが使用されます。ポリシーを変更すると、すべての Kafka、Kafka Connect、および Kafka MirrorMaker クラスターのローリングアップデートが実行されます。 STRIMZI_IMAGE_PULL_SECRETS
-
任意設定。
Secret
名のカンマ区切りのリスト。ここで参照されるシークレットには、コンテナーイメージがプルされるコンテナーレジストリーへのクレデンシャルが含まれます。シークレットは、Cluster Operator によって作成されるすべてのPods
のimagePullSecrets
フィールドで使用されます。このリストを変更すると、Kafka、Kafka Connect、および Kafka MirrorMaker のすべてのクラスターのローリングアップデートが実行されます。 STRIMZI_KUBERNETES_VERSION
任意設定。API サーバーから検出された Kubernetes バージョン情報をオーバーライドします。
Kubernetes バージョンオーバーライドの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KUBERNETES_SERVICE_DNS_DOMAIN
任意設定。デフォルトの OpenShift DNS サフィックスを上書きします。
デフォルトでは、OpenShfit クラスターで割り当てられるサービスに、デフォルトのサフィックス
cluster.local
を使用する DNS ドメイン名があります。ブローカーが kafka-0 の場合の例は次のとおりです。
<cluster-name>-kafka-0.<cluster-name>-kafka-brokers.<namespace>.svc.cluster.local
<cluster-name>-kafka-0.<cluster-name>-kafka-brokers.<namespace>.svc.cluster.local
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS ドメイン名は、ホスト名の検証に使用される Kafka ブローカー証明書に追加されます。
クラスターで異なる DNS サフィックスを使用している場合、Kafka ブローカーとの接続を確立するために、
KUBERNETES_SERVICE_DNS_DOMAIN
環境変数をデフォルトから現在使用中の DNS サフィックスに変更します。STRIMZI_CONNECT_BUILD_TIMEOUT_MS
- 任意設定、デフォルトは 300000 ミリ秒です。追加のコネクターで新しい Kafka Connect イメージをビルドする場合のタイムアウト (ミリ秒単位)。AMQ Streams を使用して多くのコネクターが含まれるコンテナーイメージをビルドしたり、低速なコンテナーレジストリーを使用する場合は、この値を大きくする必要があります。
STRIMZI_FEATURE_GATES
- オプション。フィーチャーゲートによって制御される機能を有効または無効にします。各フィーチャーゲートについての詳細は、「フィーチャーゲート」 を参照してください。
5.1.1.1. フィーチャーゲート リンクのコピーリンクがクリップボードにコピーされました!
AMQ Streams Operator は、特定の機能および機能を有効または無効にする フィーチャーゲート をサポートします。フィーチャーゲートを有効にすると、関連する operator の動作が変更され、AMQStreams デプロイメントに機能が導入されます。
フィーチャーゲートのデフォルトの状態は enabled または disabled のいずれかになります。機能ゲートのデフォルト状態を変更するには、Operator の設定で STRIMZI_FEATURE_GATES
環境変数を使用します。この 1 つの環境変数を使用して、複数のフィーチャーゲートを変更することができます。
フィーチャーゲートには、3 段階の成熟度があります。
- Alpha: 通常はデフォルトで無効
- Beta: 通常はデフォルトで有効
- General Availability (GA): 通常はデフォルトで有効
Alpha ステージの機能は実験的で不安定である可能性があり、変更される可能性があり、実稼働用に十分にテストされていない可能性があります。Beta ステージの機能は、十分にテストされており、その機能は変更されない可能性が高くなります。GA ステージの機能は安定しており、今後変更されることはないでしょう。Alpha または Bata ステージの機能は、有用であることが証明されない場合は削除されます。
フィーチャーゲートは、GA に達した時点で削除される可能性があります。これは、この機能が AMQ Streams コア機能に組み込まれ、無効にできないことを意味します。
フィーチャーゲート | Alpha | Beta | GA |
---|---|---|---|
| 1.8 | - | - |
| 1.8 | - | - |
フィーチャーゲートの設定
Operator の設定で STRIMZI_FEATURE_GATES
環境変数を使用して、機能ゲートを設定します。フィーチャーゲート名とプレフィックスのコンマ区切りリストを指定します。+
プレフィックスはフィーチャーゲートを有効にし、-
プレフィックスを無効にします。
FeatureGate1
を有効にし、FeatureGate2
を無効にするフィーチャーゲートの設定例
env: - name: STRIMZI_FEATURE_GATES value: +FeatureGate1,-FeatureGate2
env:
- name: STRIMZI_FEATURE_GATES
value: +FeatureGate1,-FeatureGate2
5.1.1.1.1. コントロールプレーンリスナーフィーチャーゲート リンクのコピーリンクがクリップボードにコピーされました!
ControlPlaneListener
機能ゲートを使用して、Kafkaクラスタ内のブローカー間通信に使用される通信パスを変更します。
OpenShift コントロールプレーンは、ワーカーノードで実行されるワークロードを管理します。Kubernetes API サーバーやコントローラーマネージャーなどのサービスは、コントロールプレーンで実行されます。OpenShift データプレーン は、CPU、メモリー、ネットワーク、およびストレージなどのコンテナーにリソースを提供します。
AMQ Streams では、コントロールプレーンのトラフィックは、Kafka クラスターの必要な状態を維持するコントローラーコネクションで構成されます。データプレーントラフィックは、主にリーダーブローカーとフォロワーブローカー間のデータレプリケーションで構成されます。
ControlPlaneListener
機能ゲートが無効になっている場合、コントロールプレーンおよびデータプレーンのトラフィックはポート9091 の同じ内部リスナーを通過します。これは、フィーチャーゲート導入前のデフォルトの動作でした。
ControlPlaneListener
が有効にされている場合、コントロールプレーンのトラフィックはポート 9090 の専用の コントロールプレーンリスナー を通過します。データプレーントラフィックは、引き続きポート 9091 で内部リスナーを使用します。
コントロールプレーンリスナーを使用すると、パーティションリーダーシップの変更などの重要なコントローラーコネクションが、ブローカー全体のデータレプリケーションによって遅延されないため、パフォーマンスが向上する可能性があります。
コントロールプレーンリスナーフィーチャーゲートの有効化
ControlPlaneListener
機能のゲートはアルファ段階であり、デフォルトの状態はdisabledです。これを有効にするには、Cluster Operator 設定の STRIMZI_FEATURE_GATES
環境変数で +ControlPlaneListener
を指定します。
以下の場合にフィーチャーゲートを無効にする必要があります。
- AMQ Streams 1.7 以前からのアップグレード
- AMQ Streams 1.7 以前へのダウングレード
ControlPlaneListener
機能ゲートは AMQ Streams 1.8 に導入されました。これは、ベータステージに移行する前に、複数のリリースのアルファステージ内に留まることが予想されます。
5.1.1.1.2. サービスアカウントパッチ適用のフィーチャーゲート リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、Cluster Operator はサービスアカウントを更新しません。Cluster Operator による更新を適用できるようにするには、ServiceAccountPatching
機能ゲートを有効にします。
Cluster Operator 設定の STRIMZI_FEATURE_GATES
環境変数に +ServiceAccountPatching
を追加します。
フィーチャーゲートは現在アルファフェーズにあり、デフォルトでは無効になっています。フィーチャーゲートを有効にすると、Cluster Operator は調整ごとに更新をサービスアカウント設定に適用します。たとえば、オペランドが作成された後に、サービスアカウントのラベルおよびアノテーションを変更できます。
ServiceAccountPatching
機能ゲートは AMQ Streams 1.8 に導入されました。これは、ベータフェーズに移行する前に、多くのリリースのアルファフェーズ内に留まり、デフォルトで有効になっています。
5.1.1.2. ConfigMap による設定のロギング リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator のロギングは、strimzi-cluster-operator
ConfigMap
によって設定されます。
ロギング設定が含まれる ConfigMap
は、Cluster Operator のインストール時に作成されます。この ConfigMap
は、install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
ファイルに記述されます。このConfigMap
のデータフィールドlog4j2.properties
を変更することで、Cluster Operatorのロギングを設定します。
ロギング設定を更新するには、050-ConfigMap-strimzi-cluster-operator.yaml
ファイルを編集し、以下のコマンドを実行します。
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
または、ConfigMap
を直接編集することもできます。
oc edit configmap strimzi-cluster-operator
oc edit configmap strimzi-cluster-operator
リロード間隔の頻度を変更するには、作成された ConfigMap
の monitorInterval
オプションで秒単位の時間を設定します。
クラスタオペレータのデプロイ時にConfigMap
がない場合、デフォルトのロギング値が使用されます。
Cluster Operator のデプロイ後に ConfigMap
が誤って削除される場合、最後に読み込まれたロギング設定が使用されます。新規のロギング設定を読み込むために新規 ConfigMap
を作成します。
ConfigMap から monitorInterval
オプションを削除しないでください。
5.1.1.3. ネットワークポリシーによる Cluster Operator アクセスの制限 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は、管理するリソースと同じ namespace または別の namespace で実行できます。デフォルトでは、STRIMZI_OPERATOR_NAMESPACE
環境変数は、OpenShift Downward APIを使用して、クラスターオペレーターがどのネームスペースで実行されているかを見つけるように構成されています。Cluster Operator がリソースと同じ namespace で実行されている場合は、ローカルアクセスのみが必要で、AMQ Sreams によって許可されます。
Cluster Operator が管理するリソースとは別の namespace で実行されている場合、ネットワークポリシーが設定されている場合を除き、OpenShift クラスターのすべての namespace は Cluster Operator へのアクセスが許可されます。オプションの STRIMZI_OPERATOR_NAMESPACE_LABELS
環境変数を使用して、namespace ラベルを使用して Cluster Operator のネットワークポリシーを確立します。namespace ラベルを追加すると、Cluster Operator へのアクセスは指定された namespace に限定されます。
Cluster Operator デプロイメントに設定されたネットワークポリシー
5.1.1.4. 定期的な調整 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は OpenShift クラスターから受信する必要なクラスターリソースに関するすべての通知に対応しますが、Operator が実行されていない場合や、何らかの理由で通知が受信されない場合、必要なリソースは実行中の OpenShift クラスターの状態と同期しなくなります。
フェイルオーバーを適切に処理するために、Cluster Operator によって定期的な調整プロセスが実行され、必要なリソースすべてで一貫した状態になるように、必要なリソースの状態を現在のクラスターデプロイメントと比較できます。[STRIMZI_FULL_RECONCILIATION_INTERVAL_MS] 変数を使用して、定期的な調整の時間間隔を設定できます。
5.1.2. ロールベースアクセス制御 (RBAC) のプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
クラスターオペレーターが機能するためには、OpenShiftクラスター内で、Kafka
、KafkaConnect
などのリソースや、ConfigMaps
、Pod
、Deployments
、StatefulSets
、Services
などの管理されたリソースとやりとりする権限が必要です。このようなパーミッションは、OpenShift のロールベースアクセス制御 (RBAC) リソースに記述されます。
-
ServiceAccount
-
Role
およびClusterRole
-
RoleBinding
およびClusterRoleBinding
Cluster Operator は、ClusterRoleBinding
を使用して独自の ServiceAccount
で実行される他に、OpenShift リソースへのアクセスを必要とするコンポーネントの RBAC リソースを管理します。
また OpenShift には、ServiceAccount
で動作するコンポーネントが、その ServiceAccount
にはない他の ServiceAccounts
の権限を付与しないようにするための特権昇格の保護機能も含まれています。Cluster Operator は、ClusterRoleBindings
と、それが管理するリソースで必要な RoleBindings
を作成できる必要があるため、Cluster Operator にも同じ権限が必要です。
5.1.2.1. 委譲された権限 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator が必要な Kafka
リソースのリソースをデプロイする場合、以下のように ServiceAccounts
、RoleBindings、および
ClusterRoleBindings
も作成します。
Kafka ブローカー Pod は、
cluster-name-kafka
というServiceAccount
を使用します。-
ラック機能が使用されると、
strimzi-cluster-name-kafka-init
ClusterRoleBinding
は、strimzi-kafka-broker
と呼ばれるClusterRole
経由で、クラスター内のノードへのServiceAccount
アクセスを付与するために使用されます。 - ラック機能が使用されておらず、クラスターがノードポートを介して公開されていない場合、バインディングは作成されません。
-
ラック機能が使用されると、
-
ZooKeeper Pod では
cluster-name-zookeeper
というServiceAccount
が使用されます。 Entity Operator Pod では
cluster-name-entity-operator
というServiceAccount
が使用されます。-
Topic Operator はステータス情報のある OpenShift イベントを生成するため、
ServiceAccount
はstrimzi-entity-operator
というClusterRole
にバインドされ、strimzi-entity-operator
RoleBinding
経由でこのアクセス権限を付与します。
-
Topic Operator はステータス情報のある OpenShift イベントを生成するため、
-
KafkaConnect
およびKafkaConnectS2I
リソースの Pod は、cluster-name-cluster-connect
というServiceAccount
を使用します。 -
KafkaMirrorMaker
の Pod は、cluster-name-mirror-maker
というServiceAccount
を使用します。 -
KafkaMirrorMaker2
の Pod は、cluster-name-mirrormaker2
というServiceAccount
を使用します。 -
KafkaBridge
の Pod は、cluster-name-bridge
というServiceAccount
を使用します。
5.1.2.2. ServiceAccount リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は ServiceAccount
を使用して最適に実行されます。
Cluster Operator の ServiceAccount
の例
その後、Cluster Operator の Deployment
で、これを spec.template.spec.serviceAccountName
に指定する必要があります。
Cluster Operator の Deployment
の部分的な例
12 行目で、strimzi-cluster-operator
ServiceAccount
が serviceAccountName
として指定されています。
5.1.2.3. ClusterRoles リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は、必要なリソースへのアクセス権限を付与する ClusterRole
を使用して操作する必要があります。OpenShift クラスターの設定によっては、クラスター管理者が ClusterRoles
を作成する必要があることがあります。
クラスター管理者の権限は ClusterRoles
の作成にのみ必要です。Cluster Operator はクラスター管理者アカウントで実行されません。
ClusterRoles
は、 最小権限の原則に従い、Kafka、Kafka Connect、および ZooKeeper クラスターを操作するために Cluster Operator が必要とする権限のみが含まれます。最初に割り当てられた一連の権限により、Cluster Operator で StatefulSets
、Deployments
、Pods
、および ConfigMaps
などの OpenShift リソースを管理できます。
Cluster Operator は ClusterRoles を使用して、namespace スコープリソースのレベルおよびクラスタースコープリソースのレベルで権限を付与します。
Cluster Operator の namespaced リソースのある ClusterRole
2 番目の一連の権限には、クラスタースコープリソースに必要な権限が含まれます。
Cluster Operator のクラスタースコープリソースのある ClusterRole
strimzi-kafka-broker
ClusterRole
は、ラック機能に使用される Kafka Pod の init コンテナーが必要とするアクセス権限を表します。「委譲された権限」 で説明したように、このアクセスを委譲できるようにするには、このロールも Cluster Operator に必要です。
Cluster Operator の ClusterRole
により、OpenShift ノードへのアクセスを Kafka ブローカー Pod に委譲できます。
strimzi-topic-operator
の ClusterRole
は、Topic Operator が必要とするアクセスを表します。「委譲された権限」 で説明したように、このアクセスを委譲できるようにするには、このロールも Cluster Operator に必要です。
Cluster Operator のClusterRole
により、イベントへのアクセスを Topic Operator に委譲できます。
strimzi-kafka-client
ClusterRole
は、クライアントのラックアウェアネスを使用する Kafka クライアントをベースとしたコンポーネントが必要とするアクセス権限を表します。「委譲された権限」 で説明したように、このアクセスを委譲できるようにするには、このロールも Cluster Operator に必要です。
Cluster Operator の ClusterRole
により、OpenShift ノードへのアクセスを Kafka クライアントベースの Pod に委譲できます。
5.1.2.4. ClusterRoleBindings リンクのコピーリンクがクリップボードにコピーされました!
Operator には ClusterRoleBindings
が必要であり、Operator の ClusterRole
を ServiceAccount
と関連付ける RoleBindings
も必要です。ClusterRoleBindings
はクラスタースコープリソースが含まれる ClusterRoles
に必要です。
Cluster Operator の ClusterRoleBinding
の例
ClusterRoleBindings
は、委譲に必要な ClusterRole
にも必要です。
Kafka ブローカーラックアウェアネスの Cluster Operator の ClusterRoleBinding
の例
および
Kafka クライアントラックアウェアネスの Cluster Operator の ClusterRoleBinding
の例
namespaced リソースのみが含まれる ClusterRoles
は、RoleBindings
のみを使用してバインドされます。
5.1.3. デフォルトのプロキシー設定を使用した Cluster Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
HTTP プロキシーの背後で Kafka クラスターを実行している場合は、クラスターとの間でデータを出し入れできます。たとえば、プロキシー外からデータをプッシュおよびプルするコネクターで Kafka Connect を実行できます。または、プロキシーを使用して承認サーバーに接続できます。
プロキシー環境変数を指定するように Cluster Operator デプロイメントを設定します。クラスタオペレータは標準的なプロキシ設定(HTTP_PROXY
、HTTPS_PROXY
、NO_PROXY
)を環境変数として受け入れます。プロキシー設定はすべての AMQ Streams コンテナーに適用されます。
プロキシーアドレスの形式は http://IP-ADDRESS:PORT-NUMBER です。名前とパスワードでプロキシーを設定する場合、形式は http://USERNAME:PASSWORD@IP-ADDRESS:PORT-NUMBER です。
前提条件
この手順では、CustomResourceDefinitions
、ClusterRoles
、および ClusterRoleBindings
を作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーは system:admin
などの OpenShift クラスター管理者に限定されます。
手順
クラスタオペレータにプロキシ環境変数を追加するには、その
Deployment
構成(install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
)を更新します。Cluster Operator のプロキシー設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
Deployment
を直接編集します。oc edit deployment strimzi-cluster-operator
oc edit deployment strimzi-cluster-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Deployment
を直接編集せずに YAML ファイルを更新する場合は、変更を適用します。oc create -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
oc create -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow