Использование модуля pykube https://github.com/kelproject/pykube

Кто-нибудь знает, как использовать функции RollingUpdate # scale_up для увеличения количества реплик развертывания?

Я изо всех сил пытаюсь понять, как сделать это из базы кода.

-1
eggsy84 9 Янв 2017 в 00:53

3 ответа

Лучший ответ

Следующий способ проще:

import pykube
import operator

api = pykube.HTTPClient(pykube.KubeConfig.from_file("/root/.kube/config"))

deployment = pykube.Deployment.objects(api).filter(namespace="kube-system").get(name="test-busybox")

deployment.replicas = 1
deployment.update()
1
cleverlzc 19 Июл 2017 в 01:07

Ответ @ eggsy84 будет работать, но не элегантно, потому что вам не нужно проверять все Deployment для обновления.

Вот практический пример, если вы хотите обновить с pykube.

import pykube
import operator

api = pykube.HTTPClient(pykube.KubeConfig.from_file("~/.kube/config"))

name = "ms-999-ear2-071625"
deployment_obj = {
          "apiVersion": "extensions/v1beta1",
          "kind": "Deployment",
          "metadata": {
              "name": name,
          }
      }

deployment = pykube.Deployment(api, deployment_obj)
deployment.update()
deployment.replicas = 2
deployment.update()
0
tobe 25 Апр 2017 в 07:22

Удалось это сделать - чтобы увеличить количество реплик до 3, нужно сделать что-то вроде следующего:

deployments = pykube.Deployment.objects(kubernetesApi).filter(namespace="my-namespace")

for dp in deployments:
    if dp.obj["metadata"]["name"] == "my-deployment":
        dp.replicas = 3
        pykube.Deployment(kubernetesApi, dp.obj).update()
1
eggsy84 8 Янв 2017 в 23:03