使用Kubernetes API管理部署的副本计数

使用Kubernetes API管理部署的副本计数,kubernetes,Kubernetes,我想使用kubernetesapi(v1beta1)更改部署的复制(pod)数量 现在,我可以使用以下命令从CLI增加副本: kubectl scale --replicas=3 deployment my-deployment 在中,提到有一个PUT请求要执行相同的操作 PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale 但是没有关于如何做到这一点的例子 我不确定在请求正文中发送什么来执行

我想使用kubernetesapi(v1beta1)更改部署的复制(pod)数量

现在,我可以使用以下命令从CLI增加副本:

kubectl scale --replicas=3 deployment my-deployment
在中,提到有一个PUT请求要执行相同的操作

PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale
但是没有关于如何做到这一点的例子


我不确定在请求正文中发送什么来执行更新。

最简单的方法是首先使用以下命令检索实际数据:

GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale
这将为您提供一个yaml或json对象,您可以通过
PUT
请求修改并发回该对象


使用curl,往返过程如下所示:

API_URL="http://kubernetes:8080/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale"
curl  -H 'Accept: application/json' $API_URL > scale.json
# edit scale.json
curl -X PUT -d@scale.json -H 'Content-Type: application/json' $API_URL

或者,您可以使用
补丁
调用:

PAYLOAD='[{"op":"replace","path":"/spec/replicas","value":"3"}]'
curl -X PATCH -d$PAYLOAD -H 'Content-Type: application/json-patch+json' $API_URL

以前的解决方案在kubernetes 1.14上对我不起作用。我必须使用不同的API端点。 以下是完整的示例:

#/垃圾箱/垃圾箱
set-e
复制副本的数量=“1美元”
当前_名称空间=“$2”
部署_NAME=“$3”
KUBE_令牌=$(cat/var/run/secrets/kubernetes.io/servicecomport/TOKEN)
KUBE_CACRT_PATH=“/var/run/secrets/kubernetes.io/servicecomport/ca.crt”
有效负载=“{\'spec\':{\'replications\':$NUMBER\'u OF_replications}”
curl--cacert$KUBE\u CACRT\u路径\
-X补丁\
-H“内容类型:应用程序/战略合并修补程序+json”\
-H“授权:持票人$KUBE_代币”\
--数据“$PAYLOAD”\
https://$KUBERNETES_SERVICE_HOST/api/apps/v1/NAMESPACE/$CURRENT_NAMESPACE/deployments/$DEPLOYMENT_NAME

请注意,
$KUBERNETES\u服务\u主机
由pods内的KUBERNETES自动设置

下面是客户端go示例的链接-