【问题标题】:Manage replicas count for deployment using Kubernetes API使用 Kubernetes API 管理用于部署的副本数
【发布时间】:2017-06-07 03:59:08
【问题描述】:

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

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

kubectl scale --replicas=3 deployment my-deployment

Kubernetes API documentation 中提到有一个 PUT 请求来做同样的事情

PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale

但没有示例说明如何做到这一点。

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

【问题讨论】:

标签: kubernetes


【解决方案1】:

最简单的方法是首先检索实际数据:

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

或者,您也可以使用PATCH 调用:

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

【讨论】:

    【解决方案2】:

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

    #!/bin/sh
    
    set -e
    
    NUMBER_OF_REPLICAS="$1"
    CURRENT_NAMESPACE="$2"
    DEPLOYMENT_NAME="$3"
    
    KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
    KUBE_CACRT_PATH="/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
    
    PAYLOAD="{\"spec\":{\"replicas\":$NUMBER_OF_REPLICAS}}"
    
    curl --cacert $KUBE_CACRT_PATH \
         -X PATCH \
         -H "Content-Type: application/strategic-merge-patch+json" \
         -H "Authorization: Bearer $KUBE_TOKEN" \
         --data "$PAYLOAD" \
         https://$KUBERNETES_SERVICE_HOST/apis/apps/v1/namespaces/$CURRENT_NAMESPACE/deployments/$DEPLOYMENT_NAME
    
    

    请注意,$KUBERNETES_SERVICE_HOST 是由 pod 内的 kubernetes 自动设置的。

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 2020-08-22
      • 2019-01-20
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2019-12-20
      • 1970-01-01
      相关资源
      最近更新 更多