Rancher调用API报错:secondaryLaunchConfigs need to be specified for inService strategy

  • 视频教程:https://shop57709059.taobao.com/
  • 版本信息:Rancher 1.6.26
  • 服务器IP地址:192.168.1.18
  • 请求内容(以CURL请求为例):
    curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" \
    -X POST \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{"inServiceStrategy":null, "toServiceStrategy":null}' \
    'http://develop.operate.jia-r.com:18080/v2-beta/projects/1a5/services/1s12/?action=upgrade'

     

错误提示:

{"id":"215634bf-4139-4106-aaa8-1d554c47b1a0","type":"error","links":{},"actions":{},"status":422,"code":"MissingRequired","message":null,"detail":null,"fieldName":"Upgrade strategy needs to be set","baseType":"error"}

注意:Upgrade strategy needs to be set

从该提示我们不难看出,当前的请求中,缺少必要的参数。但提示中并未明确指明是哪个位置缺少参数信息,针对该错误信息进行搜索相关错误信息,google查到的一个有提示性的内容:

由上图可以看出,在inServiceStrategy参数后面,是需要指定相关参数。查看了rancher的相关文档,该参数是用于指明调用upgrade操作的API时,需要指明调用的镜像名称、启动的策略(是否先启动新的容器再停止旧的容器)等

Thank You,  Google ~ 

 

好了,修改了请求参数 :{"inServiceStrategy": {"startFirst": true} }

再次发起请求(以CURL请求为例):

curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"inServiceStrategy":{"startFirst": true}, "toServiceStrategy":null}' \
'http://develop.operate.jia-r.com:18080/v2-beta/projects/1a5/services/1s12/?action=upgrade'

 

错误提示:

{"id":"2faf41e2-69fc-4a62-96db-3aa40d8dca7e","type":"error","links":{},"actions":{},"status":422,"code":"InvalidOption","message":null,"detail":null,"fieldName":"LaunchConfig\/secondaryLaunchConfigs need to be specified for inService strategy","baseType":"error"}

 

注意:LaunchConfig secondaryLaunchConfigs need to be specified for inService strategy

经过google查找相关内容,文章只有为数不多的几篇,查看其中的解答,各种各样,但似乎没有非常完美的答复。Google搜索“rancher 1.6 api upgrade”的文章,看到了一篇官方给出的一个API调用upgrade的示例(如下图),答案已经很明显了,在Rancher 1.6中,调用upgrade接口需要设置inServiceStrategy的参数很多

https://rancher.com/docs/rancher/v1.5/en/api/v1/api-resources/service/

 

问题的原因已经找到了,需要将inServiceStrategy的参数都填写上,才能通过API调用rancher的upgrade接口。那么,这个inServiceStrategy的参数,在哪里找呢?

...

找了也挺久的,一直没有思路,不知道Rancher的这个参数放在哪里。偶然间,打开Rancher的管理界面,在升级选项所属菜单中看到“API查看”的菜单,这个... 是什么来的呢?

API查看菜单里,是这么一些内容:

仔细看看,再回想刚才的报错信息:secondaryLaunchConfigs need to be specified for inService strategy

 

找到了吧,这个“API查看”菜单中,存放着各种需要调用的接口信息。问题到这里,基本找到解决办法了。将upgrade中inServiceStrategy开头的参数都copy,覆盖掉之前的curl请求的inServiceStrategy配置。

 

执行curl命令,看到如下效果图,代表你已经成功了~

 

实际使用过程中,可能会遇到这个报错信息:

{"id":"873a73e3-b7a5-4b6d-80d3-9c2bffcd114a","type":"error","links":{},"actions":{},"status":400,"code":"InvalidBodyContent","message":"InvalidBodyContent","detail":null,"baseType":"error"}

 

注意:InvalidBodyContent

这个错误的字面意思很好理解,参数的内容中有错误,可具体是什么错误呢?

采用compare对比工具对比下正常的Curl请求和当前请求的区别,会看到这个地方dataVolumes多了个标记:3 items,这个是做什么用的?

从目前对比出来的差别来看,推测就是这个3 items多余导致了系统返回报错,删除3 items

修改后的内容如下图:

重新执行curl命令试试吧,Good Luck!

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据引用\[1\]中的解释,Rancher是用于管理和配置Kubernetes集群的工具。它可以通过Rancher Server的UI与下游Kubernetes集群进行交互。在Rancher UI中创建集群时,它会调用RKE或K3s来配置和管理Kubernetes集群。RKE是经过认证的Kubernetes发行版,而K3s是一个轻量级的Kubernetes发行版。 根据引用\[2\],在修改配置后,不需要重启,修改会直接生效。你可以使用kubectl命令来获取集群状态、获取cattle-system命名空间下的pod信息以及查看pod的详细描述。 根据引用\[3\]的分析,如果Rancher调用集群失败,可能是由于某个节点的kube-apiserver端口不通。你可以通过telnet命令来测试节点的kube-apiserver端口是否可用。在这个例子中,telnet命令尝试连接k8s-master-02节点的6443端口时出现了"Connection refused"的错误,说明该端口无法连接。 综上所述,如果Rancher调用集群失败,可能是由于某个节点的kube-apiserver端口不通。你可以检查节点的网络连接以及kube-apiserver的配置,确保端口可用并正确配置。 #### 引用[.reference_title] - *1* *2* [rancher管理k8s集群](https://blog.csdn.net/Swang1/article/details/125222084)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Rancher 调用集群报错:dial tcp 10.1.0.1:443: connect: connection refused](https://blog.csdn.net/lmh_115305411/article/details/125261624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨启涌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值