6.2. 部署 Cluster Operator
Cluster Operator 负责在 OpenShift 集群中部署和管理 Kafka 集群。
当 Cluster Operator 运行时,它会开始监视 Kafka 资源的更新。
默认情况下,会部署 Cluster Operator 的单个副本。您可以使用领导选举机制添加副本,以便在出现问题时有其他 Cluster Operator 处于待机状态。如需更多信息,请参阅 第 8.5.3 节 “使用领导选举机制运行多个 Cluster Operator 副本”。
6.2.1. 指定 Cluster Operator 监视的命名空间 复制链接链接已复制到粘贴板!
Cluster Operator 监视部署了 Kafka 资源的命名空间中是否有更新。部署 Cluster Operator 时,您可以指定要在 OpenShift 集群中监视的命名空间。您可以指定以下命名空间:
- 单个所选命名空间 (包含 Cluster Operator 的同一命名空间)
- 多个所选命名空间
- 集群中的所有命名空间
监视多个所选命名空间会因为增加处理开销而对性能有影响。要优化命名空间监控的性能,通常建议监视单个命名空间或监控整个集群。监控单个命名空间允许集中监控特定于命名空间的资源,而监控所有命名空间则提供所有命名空间中集群资源的全面视图。
Cluster Operator 会监视以下资源的更改:
-
Kafka集群的 Kafka。 -
Kafka Connect 集群的
KafkaConnect。 -
在 Kafka Connect 集群中创建和管理连接器的
KafkaConnector。 -
Kafka MirrorMaker实例的 KafkaMirrorMaker。 -
Kafka MirrorMaker 2 实例的
KafkaMirrorMaker2。 -
KafkaBridge用于 Kafka Bridge 实例。 -
Cruise Control 优化请求的
KafkaRebalance。
当在 OpenShift 集群中创建其中一个资源时,Operator 会从资源获取集群描述,并通过创建必要的 OpenShift 资源(如 Deployments、Pod、服务和 ConfigMap)开始为资源创建新集群。
每次更新 Kafka 资源时,Operator 会在为资源组成集群的 OpenShift 资源上执行对应的更新。
资源可以被修补或删除,然后重新创建资源以便使集群反映集群的所需状态。此操作可能会导致滚动更新导致服务中断。
删除资源时,操作器会取消部署集群并删除所有相关 OpenShift 资源。
虽然 Cluster Operator 可以监控 OpenShift 集群中的一个、多个或所有命名空间,但主题 Operator 和 User Operator 会监视单个命名空间中的 KafkaTopic 和 KafkaUser 资源。如需更多信息,请参阅 第 1.2.1 节 “在 OpenShift 命名空间中观察 AMQ Streams 资源”。
6.2.2. 部署 Cluster Operator 以观察单个命名空间 复制链接链接已复制到粘贴板!
此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中的单个命名空间中的 AMQ Streams 资源。
先决条件
-
您需要具有创建和管理
CustomResourceDefinition和 RBAC (ClusterRole、RoleBinding和 RoleBinding )资源的权限的帐户。
流程
编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。
例如,在这个流程中,Cluster Operator 已安装到命名空间
my-cluster-operator-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显示就绪/预期的副本数。当AVAILABLE输出显示为1时,部署成功。
6.2.3. 部署 Cluster Operator 以观察多个命名空间 复制链接链接已复制到粘贴板!
此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中的多个命名空间中的 AMQ Streams 资源。
先决条件
-
您需要具有创建和管理
CustomResourceDefinition和 RBAC (ClusterRole、RoleBinding和 RoleBinding )资源的权限的帐户。
流程
编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。
例如,在这个流程中,Cluster Operator 已安装到命名空间
my-cluster-operator-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 将监视到STRIMZI_NAMESPACE环境变量的所有命名空间的列表。例如,在这个流程中,Cluster Operator 将监视
watched-namespace-1,watched-namespace-2,watched-namespace-3。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于列出的每个命名空间,安装
RoleBindings。在这个示例中,将这些命令的
watched-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显示就绪/预期的副本数。当AVAILABLE输出显示为1时,部署成功。
6.2.4. 部署 Cluster Operator 以监视所有命名空间 复制链接链接已复制到粘贴板!
此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中所有命名空间的 AMQ Streams 资源。
在这种模式下运行时,Cluster Operator 会在创建的任何新命名空间中自动管理集群。
先决条件
-
您需要具有创建和管理
CustomResourceDefinition和 RBAC (ClusterRole、RoleBinding和 RoleBinding )资源的权限的帐户。
流程
编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。
例如,在这个流程中,Cluster Operator 已安装到命名空间
my-cluster-operator-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 创建
ClusterRoleBindings,将所有命名空间的集群范围访问权限授予 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-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显示就绪/预期的副本数。当AVAILABLE输出显示为1时,部署成功。