文档首页/ 云容器引擎 CCE/ 用户指南/ 存储/ 对象存储(OBS)/ 更新对象存储卷访问密钥(AK/SK)后自动生效
更新时间:2025-08-19 GMT+08:00

更新对象存储卷访问密钥(AK/SK)后自动生效

如果您的业务容器依赖于对象存储服务来存储和读取数据,每次更改存储卷的访问密钥后,都必须手动重启所有相关的业务容器,以使新密钥生效,这可能会对业务的连续性产生一定影响。

CCE容器存储(Everest)支持更新对象存储卷访问密钥后自动生效的功能。当您更新了对象存储卷的访问密钥后,系统能够自动地检测到这一变化,并将所有受影响的工作负载配置为新的访问密钥,而无需手动重启工作负载,保证密钥更新期间业务也可以平稳运行。

前提条件

  • 已创建一个CCE Standard或CCE Turbo集群,且集群版本满足以下要求:
    • v1.25集群:v1.25.16-r30及以上版本
    • v1.27集群:v1.27.16-r30及以上版本
    • v1.28集群:v1.28.15-r20及以上版本
    • v1.29集群:v1.29.13-r0及以上版本
    • v1.30集群:v1.30.10-r0及以上版本
    • v1.31集群:v1.31.6-r0及以上版本
    • v1.32集群:v1.32.1-r0及以上版本
    • 其他更高版本的集群
  • 集群中需要安装2.4.150及以上版本的CCE容器存储(Everest)插件。

约束与限制

  • 插件版本为2.4.150及以上、2.4.165以下时,自动更新密钥的能力仅支持并行文件系统;2.4.165及以上时同时支持并行文件系统和对象桶。
  • 自动更新密钥的能力仅针对CCE容器存储(Everest)插件更新至特定版本(并行文件系统需要2.4.150及以上,对象桶需要2.4.165版本及以上)后新建的工作负载。存量的工作负载如果要支持该能力,需要在Everest插件升级后,手动重建相应的工作负载,后续自动更新密钥的能力将自动生效。

步骤一:确认工作负载支持自动更新密钥

由于更新对象存储卷访问密钥后自动生效的功能仅对Everest插件更新后新建的工作负载生效,您需要在确认Everest插件版本满足要求后,再次确认工作负载的启动时间是否晚于Everest插件升级时间。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏选择“插件中心”,在右侧查看CCE容器存储(Everest)插件版本是否已满足2.4.150及以上。

    单击“编辑”,查看“高级配置 > 扩展参数配置”中是否已开启动态更新AK/SK的能力,即enable_aksk_refresh参数需设置为true。

  3. 确认集群中已经使用对象存储的工作负载及其运行的节点,以并行文件系统类型为例。

    1. 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”页签,查看全部命名空间下是否有使用并行文件系统的存储卷。

    2. 使用kubectl命令确认所有命名空间下使用对应并行文件系统的存储,以default命名空间为例,其中{pvc_name}为PVC的名称:
      kubectl get pods -n default -o custom-columns="POD:.metadata.name,PVC:.spec.volumes[*].persistentVolumeClaim.claimName,hostIP:.status.hostIP,UID:.metadata.uid" | grep {pvc_name}

      回显如下:

      obs-test-65c6dd7675-c67ss     obs      192.168.0.227   adb83cd4-58cc-4d01-a91a-584c6ed477fc

      表示名为obs-test-65c6dd7675-c67ss的Pod中挂载了名为obs的PVC,其运行的节点IP为192.168.0.227,其UID为adb83cd4-58cc-4d01-a91a-584c6ed477fc

  4. 登录工作负载Pod所在的节点,执行以下命令,确认升级后的Everest插件提供的obsfs工具的时间。

    ls -l /usr/bin/obsfs

    回显如下,表示obsfs是3月20号下午17:09更新的。

    -rwx------ 1 root root 9424176 Mar 20 17:09 /usr/bin/obsfs

  5. 确认Pod所在节点的obsfs进程启动时间。

    ps -ef | grep {pod_uid}

    回显如下:

    表示Pod使用的obsfs进程是在10:34挂载的,晚于Everest更新obsfs工具的时间,所以该Pod是支持自动更新密钥的。

    如果Pod使用的obsfs进程早于Everest更新obsfs工具的时间,则需要手动重启Pod,后续自动更新密钥的能力将自动生效。

步骤二:更新对象存储卷自定义访问密钥(AK/SK)

确认对象存储卷相关联的工作负载已支持自动更新密钥能力后,您可以更新对象存储卷自定义访问密钥(AK/SK)。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”页签,单击并行文件系统的存储卷“更多 > 更新访问密钥”。
  3. 上传新的访问密钥(AK/SK)后,单击“确定”。

    请确保更新后的密钥合法有效,且具备访问对应的对象存储卷的权限,否则将导致工作负载无法访问已挂载的对象存储。

步骤三:确认工作负载密钥更新已经生效

更新对象存储使用的访问密钥后,正常情况下等待约30s后可通过Pod事件或告警确认更新是否生效。您可以通过以下步骤进行确认:

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧选择“工作负载”,单击工作负载名称,前往“工作负载详情”页面。
  3. 单击实例操作栏中的“事件”进行查看。

    如果有“failed to refresh ak/sk for xxx”的事件,表示本次工作负载密钥更新失败,根据提示确认失败原因,详情请参见常见问题。无异常告警或事件则表示更新成功。

常见问题

  • 证书不合法,事件如下:
    failed to refresh ak/sk for xxx, reason: invalid credentials(host=xxx:443) - result of checking service.

    解决方案:

    请修改为合法的证书后重新查看异常是否解决。

  • 更新AKSK超时失败,事件如下:
    failed to refresh ak/sk for xxx, reason: wait timeout...

    解决方案:

    Pod删除或者迁移导致obsfs进程退出,可能会偶现此告警,该场景属于正常情况,如果没有持续上报告警可不用关注。

    如果持续出现此告警,请尝试重建Pod后查看异常是否解决。