如何使用Kubernetes api完成滚动升级


Kubernetes 提供了api,通过curl的方式来对k8s进行操作。
请问有人尝试过升级操作吗?能给一下使用的例子参考下?
已邀请:

Tim_p - 不想做摄影师的厨师不是好程序员

赞同来自: wulonghui


好吧,自己挖的坑自己来填一下。
1、自己写滚动升级就如@wulonghui 所说:

> Kubernetes api都是原子操作,滚动升级是通过多个API调用组合实现的:
1.创建新的RC
<ol><li>调整新旧RC的Pod副本数目</li><li>删除旧的RC</li></ol>
2、部分升级的API使用:
PATCH /api/v1/namespaces/{namespace}/pods/{name}
需要设置Content-Type:application/json-path+json,并且传入的data需要按照json-path的格式来写,详细说明可以自行百度,我看的是这篇文章:http://www.tuicool.com/articles/FRFZNfa

然而我还没有去写代码实现滚动升级,只是尝试了下部分升级的API,

example:
<pre>
curl -v -X PATCH http://kubernetes-master-ip:po ... ault/{type}/{name} -H "Content-Type:application/json-path+json" -d ‘$(cat example.json)’
</pre>

example.json:

<pre>

</pre>

tonybai_cn - 关注Go、Docker和Kubernetes

赞同来自: xiphis


近期刚刚研究了一下,见“(http://tonybai.com/2017/02/09/ ... uster/)"

wulonghui - PaaS工程师

赞同来自:


Kubernetes api都是原子操作,滚动升级是通过多个API调用组合实现的:
1.创建新的RC
<ol><li>调整新旧RC的Pod副本数目</li><li>删除旧的RC</li></ol>

g0194776 - 架构师

赞同来自:


kubectl也有滚动更新的命令,大体上可以有2种选择
第一种就是你自己做个RC的描述文件,标签要跟原来的不同,然后通过Kubectl进行滚动更新。
第二种就是通过Kubectl的命令直接进行更新。

都行吧。

beyondblog - 标准90后有为青年

赞同来自:


目前 还没有api 可以调用类似 kubectl rolling-update 的操作

简单一点 可以自己写一个http 服务然后调用本地的二进制文件 kubectl rolling-update 执行远程的 k8s api service

要回复问题请先登录注册