第5章 インストールアーティファクトを使用した AMQ Streams のデプロイ
OperatorHub で AMQ Streams Operator を使用して AMQ Streams をデプロイする代わりに、インストールアーティファクトを使用できます。AMQ Streams のデプロイメント環境の準備 が整ったら、以下を実行できます。
- Kafka クラスターの作成方法
要件に応じてその他の Kafka コンポーネントをデプロイする任意の手順。
これらの手順は、OpenShift クラスターが利用可能で稼働していることを想定しています。
AMQ Streams は AMQ Streams Strimzi 0.24.x をベースとしています。ここでは、OpenShift 4.6 および 4.8 に AMQ Streams をデプロイする方法を説明します。
本ガイドのコマンドを実行するには、クラスターユーザーに RBAC (ロールベースアクセス制御) および CRD を管理する権限を付与する必要があります。
5.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 と使用する場合は、このデプロイメント手順を実行します。
- Cluster Operator をデプロイします。
Cluster Operator を使用して以下をデプロイします。
スタンドアロン Topic Operator および User Operator のデプロイ
AMQ Streams によって管理されない Kafka クラスターを Topic Operator および User Operator と使用する場合は、このデプロイメント手順を実行します。
5.1.1. Cluster Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は、OpenShift クラスター内で Apache Kafka クラスターのデプロイおよび管理を行います。
本セクションの手順は以下を説明します。
以下を監視するよう Cluster Operator をデプロイする方法。
- 代替のデプロイメント
5.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。 -
Source2Image がサポートされる Kafka Connect クラスターの
KafkaConnectS2I。 -
Kafka Connect クラスターでコネクターを作成および管理するための
KafkaConnector。 -
Kafka MirrorMaker インスタンスの
KafkaMirrorMaker。 -
Kafka Bridge インスタンスの
KafkaBridge。
OpenShift クラスターでこれらのリソースの 1 つが作成されると、Operator によってクラスターの詳細がリソースより取得されます。さらに、StatefulSet、Service、および ConfigMap などの必要な OpenShift リソースが作成され、リソースの新しいクラスターの作成が開始されます。
Kafka リソースが更新されるたびに、リソースのクラスターを構成する OpenShift リソースで該当する更新が Operator によって実行されます。
クラスターの望ましい状態がリソースのクラスターに反映されるようにするため、リソースへのパッチ適用後またはリソースの削除後にリソースが再作成されます。この操作は、サービスの中断を引き起こすローリングアップデートの原因となる可能性があります。
リソースが削除されると、Operator によってクラスターがアンデプロイされ、関連する OpenShift リソースがすべて削除されます。
5.1.1.2. 単一の namespace を監視対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターの単一の namespace で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。
前提条件
-
この手順では、
CustomResourceDefinitions、ClusterRoles、およびClusterRoleBindingsを作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーはsystem:adminなどの OpenShift クラスター管理者に限定されます。
手順
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*.yamlMacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCluster Operator をデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCluster Operator が正常にデプロイされたことを確認します。
oc get deployments
5.1.1.3. 複数の namespace を監視対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターの複数の namespace 全体で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。
前提条件
-
この手順では、
CustomResourceDefinitions、ClusterRoles、およびClusterRoleBindingsを作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーはsystem:adminなどの OpenShift クラスター管理者に限定されます。
手順
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*.yamlMacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlinstall/cluster-operator/060-Deployment-strimzi-cluster-operator.yamlファイルを編集し、Cluster Operator によって監視されるすべての namespace のリストをSTRIMZI_NAMESPACE環境変数に追加します。たとえば、この手順では Cluster Operator は
watched-namespace-1、watched-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-rhel7-operator:1.8.0 imagePullPolicy: IfNotPresent env: - name: STRIMZI_NAMESPACE value: watched-namespace-1,watched-namespace-2,watched-namespace-3リストした各 namespace に
RoleBindingsをインストールします。この例では、コマンドの
watched-namespaceを前述のステップでリストした namespace に置き換えます。watched-namespace-1、watched-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-namespaceCluster Operator をデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCluster Operator が正常にデプロイされたことを確認します。
oc get deployments
5.1.1.4. すべての namespace を対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターのすべての namespace 全体で AMQ Streams リソースを監視するように Cluster Operator をデプロイする方法を説明します。
このモードで実行している場合、Cluster Operator によって、新規作成された namespace でクラスターが自動的に管理されます。
前提条件
-
この手順では、
CustomResourceDefinitions、ClusterRoles、およびClusterRoleBindingsを作成できる OpenShift ユーザーアカウントを使用する必要があります。通常、OpenShift クラスターでロールベースアクセス制御 (RBAC) を使用する場合、これらのリソースを作成、編集、および削除する権限を持つユーザーはsystem:adminなどの OpenShift クラスター管理者に限定されます。
手順
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*.yamlMacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlinstall/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-rhel7-operator:1.8.0 imagePullPolicy: IfNotPresent env: - name: STRIMZI_NAMESPACE value: "*" # ...クラスター全体ですべての 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-operatormy-cluster-operator-namespaceは、Cluster Operator をインストールする namespace に置き換えます。Cluster Operator を OpenShift クラスターにデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCluster Operator が正常にデプロイされたことを確認します。
oc get deployments
5.1.2. Kafka のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka は、耐障害性のリアルタイムデータフィードを実現する、オープンソースの分散型 publish/subscribe メッセージングシステムです。
本セクションの手順は以下を説明します。
Cluster Operator を使用して以下をデプロイする方法
- 一時 または 永続 Kafka クラスター
Topic Operator および User Operator (
Kafkaカスタムリソースを設定してデプロイする)
Topic Operator および User Operator の代替のスタンドアロンデプロイメント手順
Kafka をインストールする場合、AMQ Streams によって ZooKeeper クラスターもインストールされ、Kafka と ZooKeeper との接続に必要な設定が追加されます。
5.1.2.1. Kafka クラスターのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、Cluster Operator を使用して Kafka クラスターを OpenShift にデプロイする方法を説明します。
デプロイメントでは、YAML ファイルの仕様を使って Kafka リソースが作成されます。
AMQ Streams では、デプロイメントの YAML ファイルのサンプルは examples/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 ボリュームを使用できます。PersistentVolumeClaimでStorageClassを使用し、自動ボリュームプロビジョニングをトリガーすることができます。
サンプル YAML ファイルは、サポートされる最新の Kafka バージョンを指定し、サポートされるログメッセージ形式バージョンの設定とブローカー間のプロトコルバージョンの設定を指定します。Kafka のアップグレード時に、これらのプロパティーの更新が必要になります。
サンプルクラスターの名前はデフォルトで my-cluster になります。クラスター名はリソースの名前によって定義され、クラスターがデプロイされた後に変更できません。クラスターをデプロイする前にクラスター名を変更するには、関連する YAML ファイルにある Kafka リソースの Kafka.metadata.name プロパティーを編集します。
デフォルトのクラスター名および指定された Kafka バージョン
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 2.8.0
#...
config:
#...
log.message.format.version: 2.8
inter.broker.protocol.version: 2.8
# ...
Kafka リソースの設定に関する詳細は、『Using AMQ Streams on OpenShift』の「Kafka cluster configuration」を参照してください。
手順
一時 または 永続 クラスターを作成およびデプロイします。
開発またはテストでは、一時クラスターの使用が適している可能性があります。永続クラスターはどのような状況でも使用することができます。
一時 クラスターを作成およびデプロイするには、以下を実行します。
oc apply -f examples/kafka/kafka-ephemeral.yaml永続 クラスターを作成およびデプロイするには、以下を実行します。
oc apply -f examples/kafka/kafka-persistent.yaml
Kafka クラスターが正常にデプロイされたことを確認します。
oc get deployments
5.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 プロパティーの設定に関する詳細は、『Using AMQ Streams on OpenShift』の「Configuring the Entity Operator」を参照してください。
手順
KafkaリソースのentityOperatorプロパティーを編集し、topicOperatorが含まれるようにします。apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: #... entityOperator: topicOperator: {} userOperator: {}「
EntityTopicOperatorSpecschema reference」に記載されているプロパティーを使用して、Topic Operator のspecを設定します。すべてのプロパティーにデフォルト値を使用する場合は、空のオブジェクト (
{}) を使用します。リソースを作成または更新します。
次のように
oc applyを使用します。oc apply -f <your-file>
5.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 プロパティーの設定に関する詳細は、『Using AMQ Streams on OpenShift』の「Configuring the Entity Operator」を参照してください。
手順
KafkaリソースのentityOperatorプロパティーを編集し、userOperatorが含まれるようにします。apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: #... entityOperator: topicOperator: {} userOperator: {}『Using AMQ Streams on OpenShift』の「
EntityUserOperatorSpecschema reference」に記載されているプロパティーを使用して、User Operator のspecを設定します。すべてのプロパティーにデフォルト値を使用する場合は、空のオブジェクト (
{}) を使用します。リソースを作成または更新します。
oc apply -f <your-file>
5.1.3. AMQ Streams Operator の代替のスタンドアロンデプロイメントオプション リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator を使用してこれらの operator をデプロイする代わりに、Topic Operator および User Operator のスタンドアロンデプロイメントを実行できます。Cluster Operator によって管理されない Kafka クラスターを Topic Operator および User Operator と使用する場合は、スタンドアロンデプロイメントを検討してください。
スタンドアロンデプロイメントでは、Kafka を OpenShift の外部で実行できます。たとえば、Kafka をマネージドサービスとして使用する場合があります。スタンドアロン operator のデプロイメント設定を調整し、Kafka クラスターのアドレスに一致するようにします。
スタンドアロンデプロイメントでは、Topic Operator および User Operator は AMQ Streams Kafka クラスター (つまり Cluster Operator を使用してデプロイされた Kafka クラスター) に接続しません。クラスターとの接続が確立されていても、operator は機能しません。
5.1.3.1. スタンドアロン Topic Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この手順では、Topic Operator をトピック管理のスタンドアロンコンポーネントとしてデプロイする方法を説明します。スタンドアロン Topic Operator を Cluster Operator によって管理されない Kafka クラスターと使用できます。
スタンドアロンデプロイメントは任意の Kafka クラスターと操作できます。
スタンドアロンデプロイメントファイルが提供されます。05-Deployment-strimzi-topic-operator.yaml デプロイメントファイルを設定し、Topic Operator が Kafka クラスターに接続できるようにする環境変数を追加します。
前提条件
- Topic Operator が接続する Kafka クラスターが稼働している。
手順
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_NAMESPACE1 valueFrom: fieldRef: fieldPath: metadata.namespace - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS2 value: my-kafka-bootstrap-address:9092 - name: STRIMZI_RESOURCE_LABELS3 value: "strimzi.io/cluster=my-cluster" - name: STRIMZI_ZOOKEEPER_CONNECT4 value: my-cluster-zookeeper-client:2181 - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS5 value: "18000" - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS6 value: "120000" - name: STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS7 value: "6" - name: STRIMZI_LOG_LEVEL8 value: INFO - name: STRIMZI_TLS_ENABLED9 value: "false" - name: STRIMZI_JAVA_OPTS10 value: "-Xmx=512M -Xms=256M" - name: STRIMZI_JAVA_SYSTEM_PROPERTIES11 value: "-Djavax.net.debug=verbose -DpropertyName=value"- 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
- ロギングメッセージの出力レベル。レベルを、
ERROR、WARNING、INFO、DEBUG、またはTRACEに設定できます。 - 9
- Kafka ブローカーとの暗号化通信の TLS サポートを有効にします。
- 10
- (任意) Topic Operator を実行する JVM によって使用される Java オプション。
- 11
- (任意) Topic Operator に設定されたデバッグ (
-D) オプション。
STRIMZI_TLS_ENABLED環境変数で TLS を有効にした場合、Kafka クラスターへの接続を認証するために使用されるキーストアおよびトラストストアを指定します。TLS の設定例
# .... env: - name: STRIMZI_TRUSTSTORE_LOCATION1 value: "/path/to/truststore.p12" - name: STRIMZI_TRUSTSTORE_PASSWORD2 value: "TRUSTSTORE-PASSWORD" - name: STRIMZI_KEYSTORE_LOCATION3 value: "/path/to/keystore.p12" - name: STRIMZI_KEYSTORE_PASSWORD4 value: "KEYSTORE-PASSWORD" # ..."スタンドアロン Topic Operator をデプロイします。
oc create -f install/topic-operatorスタンドアロン Topic Operator が正常にデプロイされていることを確認します。
oc describe deployment strimzi-topic-operatorスタンドアロン Topic Operator は、Replicas エントリーに
1 availableが表示されればデプロイされます。注記OpenShift への接続が低速な場合や Topic Operator イメージがこれまでダウンロードされたことがない場合は、デプロイメントに遅延が発生することがあります。
5.1.3.2. スタンドアロン User Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この手順では User Operator をユーザー管理のスタンドアロンコンポーネントとしてデプロイする方法を説明します。スタンドアロン User Operator を Cluster Operator によって管理されない Kafka クラスターと使用できます。
スタンドアロンデプロイメントは任意の Kafka クラスターと操作できます。
スタンドアロンデプロイメントファイルが提供されます。05-Deployment-strimzi-user-operator.yaml デプロイメントファイルを編集し、User Operator が Kafka クラスターに接続できるようにする環境変数を追加します。
前提条件
- User Operator が接続する Kafka クラスターが稼働している。
手順
以下の
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_NAMESPACE1 valueFrom: fieldRef: fieldPath: metadata.namespace - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS2 value: my-kafka-bootstrap-address:9092 - name: STRIMZI_CA_CERT_NAME3 value: my-cluster-clients-ca-cert - name: STRIMZI_CA_KEY_NAME4 value: my-cluster-clients-ca - name: STRIMZI_ZOOKEEPER_CONNECT5 value: my-cluster-zookeeper-client:2181 - name: STRIMZI_LABELS6 value: "strimzi.io/cluster=my-cluster" - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS7 value: "120000" - name: STRIMZI_ZOOKEEPER_CONNECT8 value: my-cluster-zookeeper-client:2181 - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS9 value: "18000" - name: STRIMZI_LOG_LEVEL10 value: INFO - name: STRIMZI_GC_LOG_ENABLED11 value: "true" - name: STRIMZI_CA_VALIDITY12 value: "365" - name: STRIMZI_CA_RENEWAL13 value: "30" - name: STRIMZI_JAVA_OPTS14 value: "-Xmx=512M -Xms=256M" - name: STRIMZI_JAVA_SYSTEM_PROPERTIES15 value: "-Djavax.net.debug=verbose -DpropertyName=value"- 1
KafkaUserリソースを監視する User Operator の OpenShift namespace。指定できる namespace は 1 つだけです。- 2
- Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
- 3
- TLS クライアント認証に対して新しいユーザー証明書に署名する認証局の公開鍵 (
ca.crt) の値が含まれる OpenShiftSecret。 - 4
- TLS クライアント認証に対して新しいユーザー証明書に署名する認証局の秘密鍵 (
ca.key) の値が含まれる OpenShiftSecret。 - 5
- ZooKeeper クラスターに接続するためのアドレスのホストおよびポートのペア。これは、Kafka クラスターが使用する ZooKeeper クラスターと同じである必要があります。
- 6
- User Operator によって管理される
KafkaUserリソースを識別するために使用されるラベルセレクター。 - 7
- 定期的な調整の間隔 (秒単位)。デフォルトは
120000(2 分) です。 - 8
- ZooKeeper クラスターに接続するためのアドレスのホストおよびポートのペア。これは、Kafka クラスターが使用する ZooKeeper クラスターと同じである必要があります。
- 9
- ZooKeeper セッションのタイムアウト (秒単位)。デフォルトは
18000(18 秒) です。 - 10
- ロギングメッセージの出力レベル。レベルを、
ERROR、WARNING、INFO、DEBUG、またはTRACEに設定できます。 - 11
- ガベッジコレクション (GC) ロギングを有効にします。デフォルトは
trueです。 - 12
- 認証局の有効期限。デフォルトは
365日です。 - 13
- 認証局の更新期間。更新期間は、現在の証明書の有効期日から逆算されます。デフォルトでは、古い証明書が期限切れになる前の証明書の更新期間は
30日です。 - 14
- (任意) User Operator を実行する JVM によって使用される Java オプション。
- 15
- (任意) User Operator に設定されたデバッグ (
-D) オプション。
TLS を使用して Kafka クラスターに接続する場合は、接続の認証に使用されるシークレットを指定します。それ以外の場合は、次のステップに進みます。
TLS の設定例
# .... env: - name: STRIMZI_CLUSTER_CA_CERT_SECRET_NAME1 value: my-cluster-cluster-cert - name: STRIMZI_EO_KEY_SECRET_NAME2 value: my-cluster-cluster-ca # ..."スタンドアロン User Operator をデプロイします。
oc create -f install/user-operatorスタンドアロン User Operator が正常にデプロイされていることを確認します。
oc describe deployment strimzi-user-operatorReplicasエントリーに1 availableが表示されれば、スタンドアロン User Operator はデプロイされています。注記OpenShift への接続が低速な場合や User Operator イメージがこれまでダウンロードされたことがない場合は、デプロイメントに遅延が発生することがあります。