升级定制版
您可以使用 kubectl 插件来升级Custom Edition。
Instana kubectl 插件与 Instana Enterprise 操作员总是同步发布。 Instana 后端的更新与 Instana Enterprise操作员版本的发布相互独立。
如需在线升级 Custom Edition,请参阅 “在线升级 Custom Edition ”。
要在物理隔离环境中升级 Custom Edition,请参阅 《在物理隔离环境中升级 Custom Edition》。
定制版兼容性对照表
在安装、升级或迁移 Custom Edition 之前,务必确保部署中的所有组件均兼容。 每个定制版仅支持特定版本的 Instana 后端,使用不受支持的组合可能会导致部署失败或出现意外行为。 兼容性矩阵可帮助您确定某个 Custom Edition 版本支持哪些 Instana 后端版本。
在规划部署时,您必须使用此矩阵来选择 “自定义版本 ”与后端版本的有效组合。 请使用此表格:
- 确定与您所选的 Custom Edition 版本兼容的 Instana 后端版本
- 在安装或升级前验证版本组合
- 通过确定支持的目标版本来规划升级。
下表列出了 “自定义版 ”的版本及其兼容的 Instana 后端版本。
| 定制版 | Instana 后端版本 |
|---|---|
| 1.11.x | 3.319 |
| 1.10.x | 3.317 |
| 1.9.x | 3.315 |
| 1.8.x | 3.313, 3.311, 3.309 |
| 1.7.x | 3.307, 3.305 |
| 1.6.x | 3.303, 3.301 |
| 1.5.x | 3.299 |
| 1.4.x | 3.297, 3.295 |
| 1.3.x | 3.293 |
| 1.2.x | 3.291, 3.289, 3.287 |
| 1.1.x | 3.285, 3.283, 3.281 |
先决条件
在升级 Instana 之前,请确保满足以下先决条件:
- 多国办事处有足够的能力。 如果群集已接近其请求容量,请添加一个额外的节点,以避免 pod 陷入待处理状态。
- Elasticsearch 节点拥有足够的磁盘空间。 如果磁盘使用率超过 80%, Elasticsearch 节点会自动切换到只读模式,这可能会导致升级过程卡住或无提示地失败。
- 这些数据存储版本与您计划升级到的 Instana 版本兼容。 有关数据存储版本的信息,请参阅《 安装第三方数据存储操作员》。
升级步骤
Instana kubectl 插件与 Instana Enterprise 操作员总是同步发布。 Instana 后端的更新与 Instana Enterprise操作员版本的发布相互独立。
您可以使用 Instana kubectl 插件来检查支持的 Instana 后端版本,并根据需要更新后端。 在经历了多达 4 次 Instana 后端版本发布后, Instana Enterprise 操作员的新版本现已发布。
升级操作员
当 Instana Enterprise 操作员发布新版本时,您可以按照以下步骤进行升级:
安装目标版本的 Instana kubectl 插件。 Instana kubectl 插件与 Instana Enterprise Operator 采用版本绑定机制,因此请安装与您正在安装的 Operator 版本相匹配的插件版本。 如需更多信息,请参阅 《安装 Instana kubectl 插件》。
请使用以下任一方法升级操作符,此时新操作符将采用默认的 Instana 后端版本:
注:
请确保您已应用或生成新的 YAML 清单文件。 请勿直接更新现有 YAML 清单文件中的镜像版本。 如果您更新现有 YAML 清单中的镜像版本,可能会遗漏 CustomResourceDefinition (CRD)的更新或其他更改,从而导致无法预料的错误。
要升级到特定版本,您可能需要执行一些额外的操作。 请参阅 升级说明 部分。 跳过一个版本时,请确保考虑到升级说明(包括跳过版本和目标版本的升级说明)。
升级后端
若要升级到更高版本的 Instana 后端,您可以使用该
versions命令的以下子命令。 所有命令都有一个可选的--download-key标记。 如果不指定该标志,则使用现有安装的下载密钥。- 该子
identify命令会列出当前可用的、与已安装的 Custom Edition 兼容的 Instana 后端版本。 - 该子
list-images命令会打印 Instana Kubernetes 操作符及其所有 Instana 组件的图像列表。 您可以使用--instana-version标记指定操作符版本。 如果不使用标记,则会列出所有可用的操作符版本,然后可以选择一个版本。 update命令将现有安装升级到新版本。 您可以使用--instana-version标记指定升级版本。 否则,将显示所有支持的升级版本。 然后您可以选择一个版本。 或者,您可以在核心配置中设置要升级到的后端版本,然后应用该配置,请参阅以下示例代码。... spec: imageConfig: tag: 3.xxx.xxx-0 ...
- 该子
运行以下命令以验证 Instana 后端升级:
kubectl get core -n instana-corekubectl get units -n instana-units
升级注意事项
有关特定版本的要求,请参阅以下说明。
升级至 1.11.x 版本
从 1.10.0 版本升级无需执行任何特殊步骤。
升级至 1.10.x 版本
从 1.9.0 版本升级无需执行任何特殊操作。
升级至 1.9.x 版本
从 1.8.0 版本升级无需执行任何特殊步骤。
升级至 1.8.0 版本
将 ClickHouse 数据存储升级至版本 25.8.6.11。 请使用图片版本 25.8.13.73-2-lts-ibm。
将 ClickHouseKeeper 数据存储升级至版本 25.8.6.11。 请使用图片版本 25.8.13.73-2-lts-ibm。
升级至 1.7.0 版本
从版本 1.6.0 升级无需执行任何特殊步骤。
升级至 1.6.0 版本
从版本 1.5.0 升级无需执行任何特殊步骤。
升级至 1.5.0 版本
Core Secret 中 downloadKey 已废弃已久的 已被移除。 现在仅从单元密钥中读取。 如果您的安装环境仍将该密钥 downloadKey 保存在 Core Secret 中,您必须更新安装环境,并将该密钥移至 Unit Secret。
有关配置单元密钥的信息,请参阅 “单元密钥 ”。
升级至 1.4.0 版本
从版本 1.3.0 升级无需执行任何特殊步骤。
升级至 1.3.0 版本
在升级到 1.3.0 之前,请完成以下任务:
Instana Enterprise Operator 和 Webhook 的映像配置是分开的。 请参考新的 Instana Enterprise 操作员配置选项 ,更新您的 kubectl 插件自定义值文件。
可选:如果您计划启用新的网关控制器来管理自定义版本环境中的入站流量,请完成以下配置更改:
- 启用网关控制器,更多详细信息请参阅 “网关配置 ”。
- 请将网关负载均衡器中的
.spec.selector["app.kubernetes.io/component"]: gateway选择器标签更新为以下示例中所示的条目:
apiVersion: v1 kind: Service metadata: namespace: instana-core name: loadbalancer-gateway spec: type: LoadBalancer ... selector: ... app.kubernetes.io/component: gateway-v2 ...此更新旨在确保入站流量被转发至新的 Gateway-v2 组件Pod。
将 ClickHouse 数据存储升级至 24.8.x 版本。 请使用图片版本
24.8.12.28-5-lts-ibm。将 Elasticsearch 数据存储升级至 8.x 版本。 要升级数据存储,请按照以下示例更新您的 Elasticsearch 配置,以避免服务中断:
将:
config:
node.master: true
node.data: true
node.ingest: true
替换为:
config:
node.roles:
- master
- data
- ingest
此外,请使用该镜像版本 8.15.3_v0.15.0 ,并更新 Elasticsearch 清单中的 spec.version 相关内容,使其与升级后的镜像版本保持一致,以避免升级时出现错误。
升级至 1.2.0 版本
在升级到 1.2.0 之前,请完成以下任务:
- 在自定义
ClickHouseInstallation资源中,通过在default/allow_experimental_analyzer: "0"profiles 部分添加 来禁用查询分析器。 - 将 ClickHouse 数据存储升级至 24.3 版本。 使用图片版本
24.3.12.75-lts-ibm。
24.3.12.75-lts-ibm. 请继续使用该图片版本 23.3.2.37-4-lts-ibm。如果您是从早于 1.0.0 的版本进行升级,请查看版本模式的变更以及 kubectl 插件管理方面的变更。
升级至 1.1.0 版本
从 1.0.0 版升级无需特殊步骤。
如果您是从早于 1.0.0 的版本进行升级,请查看版本模式的变更以及 kubectl 插件管理方面的变更。
升级至 1.0.0 版本
通用升级说明和版本方案已更新。 不过,对于 Build 1.0.0 的 Instana 后端更新,无需执行任何特殊操作。
升级至 277 版
如果你从版本 273 或更早版本升级,请按照升级至版本 275 。 从版本 275 开始升级不需要特殊步骤。
升级至 275 版
从 Instana 275版本开始, ClickHouselogs 数据库中引入了一个新表,该表利用 ClickHouse 的TTL机制,随着时间的推移自动将数据移至冷存储,并在必要时将其过期。
需要更新 ClickHouse 数据存储配置,才能应用 release-275 迁移。
继续执行以下步骤:
- 通过更新 Core 规范,将您的 Instana 后端设置为
maintenance模式:kubectl patch core <core_name> -n <core_namespace> --type='merge' -p='{"spec": {"operationMode": "maintenance"}}' 将以下配置添加到您的ClickHouseInstallation资源:
在
<disks>中定义新的cold_disk,创建名为logs_policy_v4的新策略,并在新策略中引用cold_disk:config.d/storage.xml: | <clickhouse> <storage_configuration> <disks> <default/> <cold_disk> <path>/var/lib/clickhouse-cold/</path> </cold_disk> </disks> <policies> <logs_policy> <volumes> <data> <disk>default</disk> </data> <cold> <disk>cold_disk</disk> </cold> </volumes> </logs_policy> <logs_policy_v4> <volumes> <tier1> <disk>default</disk> </tier1> <tier2> <disk>cold_disk</disk> </tier2> </volumes> </logs_policy_v4> </policies> </storage_configuration> </clickhouse>定义一个新的
volumeClaimTemplateClickHouse 可用于为cold_disk创建额外的 PVC:volumeClaimTemplates: ... ... - name: instana-clickhouse-data-cold-volume spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi # storageClassName: <lower_or_cheaper_tier_storageclassname>最后,通过在
podTemplates中定义volumeMounts,在 ClickHouse Pod 中安装新卷:containers: - name: instana-clickhouse ... ... volumeMounts: - mountPath: /var/lib/clickhouse-cold/ name: instana-clickhouse-data-cold-volume如需查看完整的 ClickHouseInstallation 资源( YAML ),请访问:
在继续升级到 release-275 之前,请确保 ClickHouse 在应用新更改后显示
Completed状态。 使用以下命令:% kubectl get clickhouseinstallation -n instana-clickhouse NAME CLUSTERS HOSTS STATUS AGE instana 1 2 Completed 4d1h
通过更新 Core 配置文件,将您的 Instana 后端恢复为
normal模式:kubectl patch core <core_name> -n <core_namespace> --type='merge' -p='{"spec": {"operationMode": "normal"}}'- 请按照升级步骤将系统升级至 Instana 275。
升级至 273 版
升级不需要任何特殊步骤。