Kubernetes APIをcurlで叩いてdeploymentをスケールさせる手順です。
(curlで実行するくらいならkubectl使ったほうが良いかもしれませんが、何かの言語でリクエストプログラムを作成する際に参考になれば幸いです)
スケールはPATCHメソッドで実行します。
##スケール対象の確認
まず対象deploymentの名前とnamespaceを確認します。
kubectl get deploy -n default
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/1 1 1 119m
環境変数に格納しておきます
export DEPLOYMENT=nginx-deployment
export NAMESPACE=default
Kubernetes APIサーバーのエンドポイントと証明書のパスも併せて環境変数に格納します。
(エンドポイントの確認方法はこちらを参照してください。)
クラスター情報取得
export CRTFILE=/Users/sota-n/.minikube/ca.crt
export APISERVER=https://192.168.99.100:8443
##パッチの準備
適用するパッチを用意します。
export PATCH='{"spec":{"replicas":2}}'
##パッチの適用(スケール)
curlを実行します。
注意点としては、Content-Type:
ヘッダーのvalueが application/strategic-merge-patch+json'
となっています。
curl -X PATCH \
-H 'Accept: application/json' \
-H 'Content-Type: application/strategic-merge-patch+json' \
-H "Authorization: Bearer ${TOKEN}" \
"${APISERVER}/apis/apps/v1/namespaces/${NAMESPACE}/deployments/${DEPLOYMENT}/scale" -d ${PATCH} --cacert ${CRTFILE}
結果を確認します。
kubectl get deploy -n default
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 2/2 2 2 128m
以上です。