You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除OpenStack卷时遭遇API版本错误的问题咨询

删除OpenStack卷时遭遇API版本错误的问题咨询

你遇到的这个406错误其实是块存储服务(Cinder)的微版本不兼容导致的,和你设置的identity_api_version完全没关系——这个参数是用来配置身份服务Keystone的版本,管不到Cinder的API逻辑。

先给你理清楚核心问题:OpenStack的各个服务(比如管理实例的Nova、管理卷的Cinder)都有自己独立的微版本机制,它们的主版本都是v3,但每个服务会在主版本下迭代子版本(也就是微版本)。你的错误提示明确说了Cinder API最高只支持到3.59,但你的SDK默认启用了3.60版本,所以直接被服务端拒绝了。

下面是具体的解决办法,完全不用换单独的Cinder SDK,用现有的OpenStack统一SDK就能搞定:

  • 在创建连接时直接指定Cinder的微版本
    直接在openstack.connect()里添加block_storage_api_version参数,设置成你的环境支持的版本(比如你提到的3.13,或者错误提示里的最高兼容版本3.59):

    conn = openstack.connect(
        auth_url=auth_url,
        auth_type=auth_type,
        application_credential_id=cred_id,
        application_credential_secret=cred_secret,
        identity_api_version='3',
        block_storage_api_version='3.59'  # 替换成你环境实际支持的版本
    )
    
  • 如果已经创建了连接,也可以事后修改
    要是你已经初始化了连接对象,还能单独给块存储客户端调整微版本:

    conn.block_storage.api_version = '3.59'
    

顺便给你解释下微版本的作用:它是OpenStack用来在不升级主版本的前提下,逐步新增或调整服务功能的机制。每个服务支持的微版本范围都可能不同,所以当SDK默认使用的微版本超过你集群支持的上限时,就会出现这类兼容性错误。

最后建议你先确认下自己集群Cinder服务支持的微版本范围,可以用OpenStack CLI命令查询:

openstack volume api show

这样能更精准地设置兼容的版本号。

备注:内容来源于stack exchange,提问作者Lou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:29:31