23.4. 升级 Cluster Operator
使用相同的方法升级 Cluster Operator,作为部署的初始方法。
- 使用安装文件
- 如果您使用安装 YAML 文件部署 Cluster Operator,修改 Operator 安装文件来执行升级,如 使用安装文件 升级 Cluster Operator 所述。
- 使用 OperatorHub
如果您从 OperatorHub 部署 AMQ Streams,请使用 Operator Lifecycle Manager (OLM)将 AMQ Streams operator 的更新频道改为新的 AMQ Streams 版本。
根据您选择的升级策略,更新频道会启动以下类型之一:
- 启动自动升级
- 在安装开始前需要批准的手动升级
注意如果您订阅了 stable 频道,可以在不更改频道的情况下获得自动更新。但是,不建议启用自动更新,因为缺少任何预安装升级步骤。仅在特定于版本的频道中使用自动升级。
有关使用 OperatorHub 升级 Operator 的更多信息,请参阅 升级已安装的 Operator (OpenShift 文档)。
23.4.1. 升级 Cluster Operator 返回 Kafka 版本错误 复制链接链接已复制到粘贴板!
如果将 Cluster Operator 升级到不支持您使用的 Kafka 当前版本的版本,则会出现一个 不支持的 Kafka 版本 错误。这个错误适用于所有安装方法,这意味着您必须将 Kafka 升级到支持的 Kafka 版本。将 Kafka 资源中的 spec.kafka.version 更改为支持的版本。
您可以使用 oc 检查错误信息,如包括在 Kafka 资源的 status 中的信息。
检查 Kafka 状态中的错误
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
将 <kafka_cluster_name> 替换为 Kafka 集群的名称,将 <namespace> 替换为运行 pod 的 OpenShift 命名空间。
23.4.2. 使用 OperatorHub 从 AMQ Streams 1.7 或更早版本升级 复制链接链接已复制到粘贴板!
使用 OperatorHub 从 AMQ Streams 1.7 或更早版本升级时需要的操作
在将 AMQ Streams Operator 升级到 2.6 之前,您需要进行以下更改:
-
将自定义资源和 CRD 转换为
v1beta2 -
升级到禁用
ControlPlaneListener功能门的 AMQ Streams 版本
这些要求在 第 23.1.2 节 “从 1.7 之前的 AMQ Streams 版本升级” 中进行了描述。
如果您要从 AMQ Streams 1.7 或更早版本升级,请执行以下操作:
- 升级到 AMQ Streams 1.7。
- 从 AMQ Streams 软件下载页下载 AMQ Streams 1.8 提供的 Red Hat AMQ Streams API Conversion Tool。
将自定义资源和 CRD 转换为
v1beta2。如需更多信息,请参阅 AMQ Streams 1.7 升级文档。
- 在 OperatorHub 中,删除 AMQ Streams Operator 的版本 1.7。
如果也存在,删除 AMQ Streams Operator 的版本 2.6。
如果不存在,请转到下一步。
如果 AMQ Streams Operator 的批准策略被设置为 Automatic,则集群中可能已存在 operator 版本 2.6。如果您在发行版本 前没有 将自定义资源和 CRD 转换为
v1beta2API 版本,Operator 管理的自定义资源和 CRD 将使用旧的 API 版本。因此,2.6 Operator 处于 Pending 状态。在这种情况下,您需要删除 AMQ Streams Operator 和版本 1.7 的 2.6 版本。如果同时删除这两个 Operator,协调将暂停,直到安装了新的 Operator 版本。立即遵循后续步骤,对自定义资源的任何更改都不会延迟。
在 OperatorHub 中,执行以下操作之一:
-
升级到 AMQ Streams Operator 的 1.8 版本(默认禁用
ControlPlaneListener功能门)。 -
在禁用了
ControlPlaneListener功能门的情况下,升级到 AMQ Streams Operator 的 2.0 或 2.2 版本(其中ControlPlaneListener功能门被默认启用)。
-
升级到 AMQ Streams Operator 的 1.8 版本(默认禁用
立即升级到 AMQ Streams Operator 版本 2.6。
安装的 2.6 operator 会开始监控集群并执行滚动更新。您可能会注意到在此过程中,集群性能可能会临时降低。
23.4.3. 使用安装文件升级 Cluster Operator 复制链接链接已复制到粘贴板!
此流程描述了如何升级 Cluster Operator 部署以使用 AMQ Streams 2.6。
如果您使用安装 YAML 文件部署 Cluster Operator,请按照以下步骤操作。
由 Cluster Operator 管理的 Kafka 集群的可用性不受升级操作的影响。
有关如何升级到该版本的信息,请参阅支持特定版本的 AMQ Streams 文档。
先决条件
- 提供了现有 Cluster Operator 部署。
- 您已下载了 AMQ Streams 2.6 的发行工件。
流程
-
记录对现有 Cluster Operator 资源所做的任何配置更改(在
/install/cluster-operator目录中)。任何更改都会被 Cluster Operator 的新版本 覆盖。 - 更新自定义资源,以反映 AMQ Streams 版本 2.6 支持的配置选项。
更新 Cluster Operator。
根据 Cluster Operator 运行的命名空间,为新的 Cluster Operator 版本修改安装文件。
在 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
Deployment中修改了一个或多个环境变量,请编辑install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml文件以使用这些环境变量。
当您有更新的配置时,将其与其余安装资源一起部署:
oc replace -f install/cluster-operator
oc replace -f install/cluster-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 等待滚动更新完成。
如果新 Operator 版本不再支持您要从中升级的 Kafka 版本,Cluster Operator 会返回错误消息,表示不支持该版本。否则,不会返回任何错误消息。
如果返回错误消息,请升级到新 Cluster Operator 版本支持的 Kafka 版本:
-
编辑
Kafka自定义资源。 -
将
spec.kafka.version属性改为支持的 Kafka 版本。
-
编辑
- 如果没有 返回错误消息,请转到下一步。稍后您将升级 Kafka 版本。
获取 Kafka pod 的镜像以确保升级成功:
oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像标签显示新的 AMQ Streams 版本,后跟 Kafka 版本:
registry.redhat.io/amq-streams/strimzi-kafka-36-rhel8:2.6.0
registry.redhat.io/amq-streams/strimzi-kafka-36-rhel8:2.6.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以从
Kafka资源的状态检查升级是否已成功完成。
Cluster Operator 升级到 2.6 版本,但它管理的 Kafka 版本不会改变。在 Cluster Operator 升级后,您必须执行 Kafka 升级。