API клиентов Kubernetes с использованием Fabric8

Я использую клиентскую библиотеку java fabric8 для Kubernetes. Я не могу найти лучший способ выполнять операции обновления контейнеров. В основном то, что я хочу сделать, это создать модуль с изображением контейнера как «nginx», теперь я хочу обновить этот образ до «nginx: 1.16.1».

Что я пытался сделать, так это

client.pods().inNamespace(podsModel.getNamespace()).withName(podsModel.getNamespace()).edit().editSpec()
                .editContainer(0).withNewImage("nginx:1.16.1").endContainer().endSpec().buildSpec();

person Harmeet Kaur    schedule 08.06.2020    source источник


Ответы (1)


Вы должны иметь возможность редактировать Pod спецификацию, используя приведенный выше код, вам просто нужно использовать done(), а не buildSpec():

try (KubernetesClient client = new DefaultKubernetesClient()) {
  Pod updatedPod = client.pods().inNamespace(namespace)
        .withName(podName)
        .edit().editSpec().editContainer(0)
        .withImage("nginx:1.16.1")
        .endContainer().endSpec().done();
}

Однако вы не должны использовать Pod отдельно. Капсулы спроектированы как относительно недолговечные одноразовые объекты. Вы должны использовать некоторый ресурс контроллера (Deployment, StatefulSet и т. Д.), Который может управлять Pod объектами от вашего имени.

Сопровождающие предоставили документ для общих операций клиента Fabric8 Kubernetes. Вы также можете взглянуть на это: Чит-код для клиента Fabric8 Kubernetes Лист.

person Rohan Kumar    schedule 08.06.2020