You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
FSX 客户端
FSX 客户端升级
复制全文
下载 pdf
FSX 客户端升级
FSX 客户端(fsx-agent)支持通过 FSXSet 实现镜像版本升级,支持滚动升级、灰度升级和轮转升级等多种升级方案。本文介绍各升级方案的触发方式、适用场景和选择建议,帮助用户根据业务连续性要求选择合适的升级策略。
升级方案
随着 FSX 功能持续迭代,FSX 客户端需要通过版本升级获取新的产品能力、修复已知问题,并提升运行稳定性。通过升级 FSX 客户端,您可以在不影响业务应用的情况下,使节点侧的 FSX 客户端获得新的挂载能力、兼容性优化和异常修复能力。
容器服务集群通过 FSXSet 自定义资源实现 FSX 客户端的全生命周期(创建、删除、升级等)管理。建议根据业务需求、版本发布说明和集群运行状态,选择合适的升级方案完成客户端版本更新。当前支持的升级方案,如下表所示。
升级方案
升级行为
适用场景
特点
滚动升级(RollingUpdate)
修改 FSXSet 的image字段后,FSXSet 对所有归属节点执行滚动升级。
需要在较短时间内完成集群内 FSX 客户端版本统一。
  • 升级效率较高。
  • 支持通过maxUnavailablemaxSurge控制升级并发度。
灰度升级(OnLabel)
  • 新增节点使用新版本镜像。
  • 存量节点不主动替换,允许为节点添加fsx.vke.volcengine.com/upgrade=true标签,触发升级。
需要先在少量节点验证新版本,确认稳定后再扩大升级范围。
  • 升级范围可控,支持管控发布节奏。
  • 适用于对版本变更较敏感的业务场景。
轮转升级(OnLabel)
  • 新增节点使用新版本镜像。
  • 存量节点不会被主动替换。当scaleDownAfterNoDependency配置为true时,系统会自动实现 FSX 客户端的回收和轮转:
  • 当节点上无业务依赖 FSX 时,系统会自动删除节点上的旧版本客户端。
  • 当该节点再次调度依赖 FSX 的业务时,系统将使用最新镜像重新创建客户端,从而逐步完成版本切换。
原版本较为稳定时,集群规模较大或希望尽量降低主动替换 FSX 客户端带来的业务感知。
  • 升级节奏较平滑。
  • 整体完成时间取决于轮转周期。
注意事项
  • FSX 客户端热升级可能会引发短暂的业务抖动。为最大限度降低影响,建议在业务低峰时段进行操作。
  • 滚动升级过程中,系统会在节点上创建新的 FSX 客户端 Pod,导致短时间内存在新旧两个 Pod,消耗双倍集群资源。为避免因资源不足导致升级失败,请确保集群中每个节点都拥有足够的资源来进行升级。
说明
升级过程中会通过创建 headroom Pod 的方式对资源进行预占用,在资源不足的情况下,不会真正触发升级,不会对存量业务造成影响。
升级前准备
  1. 在集群管理页面左侧导航栏中,选择 集群管理 > 组件管理。
  1. 选择 存储 页签,找到 csi-fsx 组件。将鼠标指针移动到组件卡片上,单击组件卡片右下角的... > 客户端配置,查看组件的资源配置。
  • 节点空闲资源需要至少大于配置的数值。例如在本例中,fsx-agent-pod 的 CPU 请求为 2 Core,内存请求为 2GiB,则需保证节点空闲资源大于 CPU 2 Core,内存 2GiB。
  1. 在集群管理页面左侧导航栏中,选择 工作负载 > 容器组
  • 命名空间 中选择 kube-system
  • 在检索框内输入 Pod 名称关键字fsx-agent,进行模糊搜索,找到 FSX 客户端 Pod。
  • 单击目标 Pod 列表中 节点 列的 IP 地址,显示该 Pod 所在节点概要信息,然后单击 查看节点详情,跳转至节点详情页面。
  1. 检查节点当前的资源用量,需要满足以下要求:
  • 检查节点当前的 CPU 剩余可用量和内存剩余可用量,需要大于 csi-fsx 中配置的 CPU 请求内存请求
  • 检查 Pod 可分配数量,需要大于 1。
  1. 若上述资源检查均满足要求,则可以执行下文中的升级步骤。若不满足要求,请 提交工单 或联系您的客户经理,获取进一步的技术支持。
升级步骤
滚动升级(RollingUpdate)
  1. 在左侧导航栏中选择 集群,单击集群名称,进入集群管理页面。
  1. 在左侧导航栏中选择 工作负载 > 对象浏览器。 在资源列表中单击 fsxset 资源名称,进入资源详情。
  1. 在资源列表中,选择需要升级的资源,单击 操作 栏中的 编辑 Yaml
  1. 在 YAML 配置中,修改spec.template下的parameterTemplate.image 字段值为目标镜像版本,触发 FSX 客户端滚动升级。
  • apiVersion: csi.vke.volcengine.com/v1alpha1
    kind: FSXSet
    metadata:
    name: default
    spec:
    groupName: default
    createMode: WaitForFirstConsumer
    scaleDownAfterNoDependency: true
    mountPrefix: /mnt/fsx
    podHostName: fsx-agent
    upgradeStrategy:
    type: RollingUpdate # 升级策略,本例中取值为 RollingUpdate,表示滚动升级
    maxSurge: 0 # 允许超出期望值额外创建的 Pod 数;设为 0 时更接近无额外冗余的升级方式
    maxUnavailable: 1 # 滚动升级时允许同时不可用的最大节点数,即并发度。例如配置为 1 时,表示每次只升级一个节点
    template:
    parameterTemplate:
    image: vke-***.cr.volces.com/vke/fsx-agent:v0.12.3 # 修改为目标镜像版本,触发滚动升级
    resources:
    requests:
    cpu: 100m
    memory: 128Mi
    limits:
    cpu: 2000m
    memory: 2Gi
说明
更多 FSXSet 配置参数含义,请参见 FSXSet 资源介绍
  1. 单击 确定,保存配置,系统即开始对集群中的所有 FSX 客户端进行滚动升级。
灰度/轮转升级(OnLabel)
  1. 在左侧导航栏中选择 集群,单击集群名称,进入集群管理页面。
  1. 在左侧导航栏中选择 工作负载 > 对象浏览器。 在资源列表中单击 fsxset 资源名称,进入资源详情。
  1. 在资源列表中,选择需要升级的资源,单击 操作 栏中的 编辑 Yaml
  1. 在 YAML 配置中,修改spec.upgradeStrategy下的type 字段值为OnLabel,并修改spec.template下的parameterTemplate.image 字段值为目标镜像版本。
  • apiVersion: csi.vke.volcengine.com/v1alpha1
    kind: FSXSet
    metadata:
    name: default
    spec:
    groupName: default
    createMode: WaitForFirstConsumer
    scaleDownAfterNoDependency: true # 轮转升级时,该参数需要配置为 true
    mountPrefix: /mnt/fsx
    podHostName: fsx-agent
    upgradeStrategy:
    type: OnLabel # 升级策略,本例中取值为 OnLabel,表示灰度/轮转升级
    maxSurge: 0
    maxUnavailable: 1
    template:
    parameterTemplate:
    image: vke-***.cr.volces.com/vke/fsx-agent:v0.12.3 # 修改为目标镜像版本
    resources:
    requests:
    cpu: 100m
    memory: 128Mi
    limits:
    cpu: 2000m
    memory: 2Gi
说明
更多 FSXSet 配置参数含义,请参见 FSXSet 资源介绍
  1. 单击 确定,保存配置。
  1. 配置完成后,集群中 FSX 客户端的升级策略如下:
  • 轮转升级:对于集群中新创建或轮转的节点,系统会根据 FSXSet 配置中的image字段创建新版本的 FSX 客户端。
  • 灰度升级:对于存量节点,允许执行以下命令,给需要升级的 FSX 客户端打上升级标签,触发灰度升级。其中${agent-pod-name}为待升级的 FSX 客户端 Pod 名称。
  • kubectl label pod -n kube-system ${agent-pod-name} fsx.vke.volcengine.com/upgrade=true
结果检查
FSX 客户端位于 kube-system 命名空间,名称为fsx-agent-***。您可以通过以下命令,持续观察 Pod 的升级进展。当 FSX 客户端升级时,系统会新建 FSX 客户端 Pod 并销毁原有 Pod。
kubectl get pod -A --show-labels | grep fsx-agent
预期结果如下,FSX 客户端升级时,集群中同时存在一个新 FSX 客户端和一个终止的旧 FSX 客户端。
kube-system fsx-agent-default-5z*** 0/1 Running 0 25s addon.vke.volcengine.com/fsxset-revision=ed48241c4***,addon.vke.volcengine.com/fsxset=default,app.kubernetes.io/instance=fsx-agent,app.kubernetes.io/managed-by=fsxset,app.kubernetes.io/name=agent,app.kubernetes.io/node=192.168.245.142,app.kubernetes.io/version=v0.12.2,app=agent,container-image.agent.fsx/tag=v0.12.2
kube-system fsx-agent-default-js*** 1/1 Terminating 0 2m40s addon.vke.volcengine.com/fsxset-revision=2b856293a***,addon.vke.volcengine.com/fsxset=default,app.kubernetes.io/instance=fsx-agent,app.kubernetes.io/managed-by=fsxset,app.kubernetes.io/name=agent,app.kubernetes.io/node=192.168.245.142,app.kubernetes.io/version=v0.12.1,app=agent,container-image.agent.fsx/tag=v0.12.1
升级结束后,执行以下命令,查看 FSXSet 详情。
kubectl get fsxset -o wide
预期结果如下,当UPDATED的值等于DESIRED的值时,表示所有 FSX 客户端升级完成。
NAME GROUP DESIRED CURRENT READY AVAILABLE UPDATED MATCHED MISSCHEDULED AGE
default default 1 1 1 1 1 2 23h
最近更新时间:2026.07.24 14:54:19
这个页面对您有帮助吗?
有用
有用
无用
无用