6.2. Cluster Operator のデプロイ
Cluster Operator は、OpenShift クラスター内で Kafka クラスターのデプロイおよび管理を行います。
Cluster Operator の稼働中に、Kafka リソースの更新に対する監視が開始されます。
デフォルトでは、Cluster Operator の単一のレプリカがデプロイされます。リーダーの選択でレプリカを追加し、中断が発生した場合に追加の Cluster Operator がスタンバイ状態になるようにすることができます。詳細は、「リーダーの選択による複数の Cluster Operator レプリカの実行」 を参照してください。
6.2.1. Cluster Operator が監視する namespace の指定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator は、Kafka リソースがデプロイされている namespace の更新を監視します。Cluster Operator をデプロイするときは、OpenShift クラスター内で監視する namespace を指定します。次の namespace を指定できます。
- 選択された単一の namespace (Cluster Operator を含む同じ namespace)
- 複数の選択された namespace
- クラスター内のすべての namespace
選択した複数の namespace を監視すると、処理オーバーヘッドが増加するため、パフォーマンスに最も大きな影響を与えます。namespace の監視のパフォーマンスを最適化するには、通常、単一の namespace を監視するか、クラスター全体を監視することが推奨されます。単一の namespace を監視すると、namespace 固有のリソースを集中的に監視することができますが、すべての namespace を監視すると、すべての namespace にわたるクラスターのリソースの包括的なビューが提供されます。
Cluster Operator では、以下のリソースの変更が監視されます。
-
Kafka クラスターの
Kafka。 -
Kafka Connect クラスターの
KafkaConnect。 -
Kafka Connect クラスターでコネクターを作成および管理するための
KafkaConnector。 -
Kafka MirrorMaker インスタンスの
KafkaMirrorMaker。 -
KafkaMirrorMaker2(Kafka MirrorMaker 2 インスタンスの場合)。 -
Kafka Bridge インスタンスの
KafkaBridge。 -
Cruise Control の最適化リクエストの
KafkaRebalance。
OpenShift クラスターでこれらのリソースの 1 つが作成されると、Operator がクラスターの詳細をリソースから取得します。さらに、Deployment、Pod、Service、および ConfigMap などの必要な OpenShift リソースが作成され、リソースの新しいクラスターの作成が開始されます。
Kafka リソースが更新されるたびに、リソースのクラスターを設定する OpenShift リソースで該当する更新が Operator によって実行されます。
リソースは、パッチを適用するか削除してから、再作成して、目的とするクラスターの状態を、リソースのクラスターに反映させます。この操作は、サービスの中断を引き起こすローリング更新の原因となる可能性があります。
リソースが削除されると、Operator によってクラスターがアンデプロイされ、関連する OpenShift リソースがすべて削除されます。
Cluster Operator は OpenShift クラスター内の 1 つ、複数、またはすべての namespace を監視できますが、Topic Operator と User Operator は単一の namespace 内の KafkaTopic リソースと KafkaUser リソースを監視します。詳細は、「OpenShift namespace 内の Streams for Apache Kafka リソースの監視」 を参照してください。
6.2.2. 単一の namespace を監視対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターの単一の namespace で Streams for Apache Kafka リソースを監視するように Cluster Operator をデプロイする方法を説明します。
前提条件
-
CustomResourceDefinitionおよび RBAC (ClusterRoleおよびRoleBinding) リソースを作成および管理する権限を持つアカウント。
手順
Cluster Operator がインストールされる namespace を使用するように、Streams for Apache Kafka インストールファイルを編集します。
たとえば、この手順では Cluster Operator は
my-cluster-operator-namespaceという namespace にインストールされます。Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator をデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespace
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントのステータスを確認します。
oc get deployments -n my-cluster-operator-namespace
oc get deployments -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow READYは、Ready/expected 状態のレプリカ数を表示します。AVAILABLE出力に1が表示されれば、デプロイメントは成功しています。
6.2.3. 複数の namespace を監視対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターの複数の namespace にまたがって Streams for Apache Kafka リソースを監視するように Cluster Operator をデプロイする方法を説明します。
前提条件
-
CustomResourceDefinitionおよび RBAC (ClusterRoleおよびRoleBinding) リソースを作成および管理する権限を持つアカウント。
手順
Cluster Operator がインストールされる namespace を使用するように、Streams for Apache Kafka インストールファイルを編集します。
たとえば、この手順では Cluster Operator は
my-cluster-operator-namespaceという namespace にインストールされます。Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow install/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 を監視します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リストした各 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/023-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>
oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace> oc create -f install/cluster-operator/023-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>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator をデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespace
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントのステータスを確認します。
oc get deployments -n my-cluster-operator-namespace
oc get deployments -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow READYは、Ready/expected 状態のレプリカ数を表示します。AVAILABLE出力に1が表示されれば、デプロイメントは成功しています。
6.2.4. すべての namespace を対象とする Cluster Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift クラスターのすべての namespace にまたがって Streams for Apache Kafka リソースを監視するように Cluster Operator をデプロイする方法を説明します。
このモードで実行している場合、Cluster Operator は、新規作成された namespace でクラスターを自動的に管理します。
前提条件
-
CustomResourceDefinitionおよび RBAC (ClusterRoleおよびRoleBinding) リソースを作成および管理する権限を持つアカウント。
手順
Cluster Operator がインストールされる namespace を使用するように、Streams for Apache Kafka インストールファイルを編集します。
たとえば、この手順では Cluster Operator は
my-cluster-operator-namespaceという namespace にインストールされます。Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow install/cluster-operator/060-Deployment-strimzi-cluster-operator.yamlファイルを編集し、STRIMZI_NAMESPACE環境変数の値を*に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター全体ですべての 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-watched --clusterrole=strimzi-cluster-operator-watched --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
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-watched --clusterrole=strimzi-cluster-operator-watched --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-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator を OpenShift クラスターにデプロイします。
oc create -f install/cluster-operator -n my-cluster-operator-namespace
oc create -f install/cluster-operator -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントのステータスを確認します。
oc get deployments -n my-cluster-operator-namespace
oc get deployments -n my-cluster-operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1
NAME READY UP-TO-DATE AVAILABLE strimzi-cluster-operator 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow READYは、Ready/expected 状態のレプリカ数を表示します。AVAILABLE出力に1が表示されれば、デプロイメントは成功しています。