16.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 文档)。
16.4.1. 升级 Cluster Operator 会返回 Kafka 版本错误 复制链接链接已复制到粘贴板!
如果升级 Cluster Operator 并获取 不受支持的 Kafka 版本 错误,您的 Kafka 集群部署会有一个旧的 Kafka 版本,新的 Operator 版本不支持它。这个错误适用于所有安装方法。
如果发生这个错误,将 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 命名空间。
16.4.2. 使用 OperatorHub 从 AMQ Streams 1.7 或更早版本升级 复制链接链接已复制到粘贴板!
使用 OperatorHub 从 AMQ Streams 1.7 或更早版本升级时需要的操作
在将 AMQ Streams Operator 升级到 2.4 之前,您需要进行以下更改:
-
将自定义资源和 CRD 转换为
v1beta2 -
升级到禁用
ControlPlaneListener功能门的 AMQ Streams 版本
这些要求在 第 16.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.4。
如果不存在,请进入下一步。
如果 AMQ Streams Operator 的批准策略被设置为 Automatic,则集群中可能已存在 operator 版本 2.4。如果您在发行版本 前没有 将自定义资源和 CRD 转换为
v1beta2API 版本,Operator 管理的自定义资源和 CRD 将使用旧的 API 版本。因此,2.4 Operator 处于 Pending 状态。在这种情况下,您需要删除 AMQ Streams Operator 版本 2.4 和版本 1.7。如果删除这两个 Operator,则协调将暂停,直到安装了新的 Operator 版本。立即按照以下步骤操作,以便对自定义资源的任何更改都不会延迟。
在 OperatorHub 中,执行以下操作之一:
-
升级到 AMQ Streams Operator 的 1.8 版本(默认禁用
ControlPlaneListener功能门)。 -
升级至 AMQ Streams Operator 的 2.0 或 2.2 版本(其中禁用了
ControlPlaneListener功能门),并禁用了ControlPlaneListener功能门。
-
升级到 AMQ Streams Operator 的 1.8 版本(默认禁用
立即升级到 AMQ Streams Operator 版本 2.4。
安装的 2.4 operator 开始监视集群并执行滚动更新。您可能会注意到在此过程中,集群性能可能会临时降低。
16.4.3. 使用安装文件升级 Cluster Operator 复制链接链接已复制到粘贴板!
此流程描述了如何升级 Cluster Operator 部署以使用 AMQ Streams 2.4。
如果您使用安装 YAML 文件部署 Cluster Operator,请按照以下步骤操作。
由 Cluster Operator 管理的 Kafka 集群的可用性不受升级操作的影响。
有关如何升级到该版本的信息,请参阅支持 AMQ Streams 特定版本的文档。
先决条件
- 提供了现有 Cluster Operator 部署。
- 您已下载了 AMQ Streams 2.4 的发行工件。
流程
-
记录在现有 Cluster Operator 资源(
/install/cluster-operator目录中)所做的任何配置更改。任何更改都会被 Cluster Operator 的新版本 覆盖。 - 更新自定义资源,以反映 AMQ Streams 版本 2.4 支持的配置选项。
更新 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 镜像标签显示新的 Operator 版本。例如:
registry.redhat.io/amq-streams/strimzi-kafka-34-rhel8:2.4.0
registry.redhat.io/amq-streams/strimzi-kafka-34-rhel8:2.4.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Cluster Operator 升级到 2.4 版本,但在它管理的集群中运行的 Kafka 版本不会改变。
在 Cluster Operator 升级后,您必须执行 Kafka 升级。