3.5. 重要的流收集器配置注意事项
创建 FlowCollector
实例后,您可以重新配置它,但 pod 被终止并重新创建,这可能会具有破坏性。因此,您可以考虑在第一次创建 FlowCollector
时配置以下选项:
其他资源
有关流收集器规格和 Network Observability Operator 架构和资源使用的常规信息,请参阅以下资源:
3.5.1. 迁移删除了 FlowCollector CRD 的存储版本
Network Observability Operator 版本 1.6 会删除 FlowCollector
API 的旧和已弃用的 v1alpha1
版本。如果您之前在集群中安装此版本,它可能仍然在 FlowCollector
CRD 的 storedVersion
中被引用,即使它已从 etcd 存储中删除,这会阻止升级过程。这些引用需要手动删除。
删除存储版本有两个选项:
- 使用 Storage Version Migrator Operator。
- 卸载并重新安装 Network Observability Operator,确保安装处于干净的状态。
先决条件
-
已安装旧版本的 Operator,并希望准备集群来安装最新版本的 Operator。或者您试图安装 Network Observability Operator 1.6 并遇到错误:
Failed risk of data loss updating "flowcollectors.flows.netobserv.io": new CRD removes version v1alpha1 that is listed as a stored version on the existing CRD
。
流程
验证旧的
FlowCollector
CRD 版本仍然在storedVersion
中被引用:$ oc get crd flowcollectors.flows.netobserv.io -ojsonpath='{.status.storedVersions}'
如果
v1alpha1
出现在结果列表中,请按照以下步骤 a 使用 Kubernetes Storage Version Migrator 或 Step b 来卸载并重新安装 CRD 和 Operator。选项 1: Kubernetes Storage Version Migrator: 创建一个 YAML 来定义
StorageVersionMigration
对象,如migrate-flowcollector-v1alpha1.yaml
:apiVersion: migration.k8s.io/v1alpha1 kind: StorageVersionMigration metadata: name: migrate-flowcollector-v1alpha1 spec: resource: group: flows.netobserv.io resource: flowcollectors version: v1alpha1
- 保存该文件。
运行以下命令来应用
StorageVersionMigration
:$ oc apply -f migrate-flowcollector-v1alpha1.yaml
更新
FlowCollector
CRD,以从storedVersion
中手动删除v1alpha1
:$ oc edit crd flowcollectors.flows.netobserv.io
选项 2: 将
FlowCollector
CR 的 Network Observability Operator 1.5 版本保存到文件中,如flowcollector-1.5.yaml
。$ oc get flowcollector cluster -o yaml > flowcollector-1.5.yaml
-
按照"卸载 Network Observability Operator"中的步骤,它会卸载 Operator 并删除现有的
FlowCollector
CRD。 - 安装 Network Observability Operator 最新版本 1.6.0。
-
使用在第 b 步中保存的备份创建
FlowCollector
。
-
按照"卸载 Network Observability Operator"中的步骤,它会卸载 Operator 并删除现有的
验证
运行以下命令:
$ oc get crd flowcollectors.flows.netobserv.io -ojsonpath='{.status.storedVersions}'
结果列表应该不再显示
v1alpha1
,仅显示最新版本v1beta1
。