Поздравляем с 1 сентября!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 1(213)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7

Библиографическое описание:
Берьянов М.С. РАБОТА С KUBERNETES (OPENSHIFT) ЧЕРЕЗ JAVA CLIENT API // Студенческий: электрон. научн. журн. 2023. № 1(213). URL: https://sibac.info/journal/student/213/276056 (дата обращения: 01.09.2024).

РАБОТА С KUBERNETES (OPENSHIFT) ЧЕРЕЗ JAVA CLIENT API

Берьянов Максим Сергеевич

студент, факультет ПИиКТ, Университет ИТМО,

РФ, г. Санкт-Петербург

WORKING WITH KUBERNETES (OPENSHIFT) VIA JAVA CLIENT API

 

Maxim Beryanov

Student, PIKT faculty, ITMO University,

Russia, Saint-Petersburg

 

АННОТАЦИЯ

В настоящее время можно с уверенностью сказать, что Kubernetes стал стандартом для управления контейнеризованными приложениями – он предлагает богатый API, который позволяет нам развертывать, масштабировать и отслеживать приложения и связанные с ними ресурсы. В данной статье для управления таким состоянием Kubernetes будет использоваться Java-клиент.

ABSTRACT

Nowadays, it's normal to say that Kubernetes has become the standard for managing containerized applications - it offers rich API that allows us to deploy, scale, and monitor applications and their associated resources. This article will use a Java client to manage such Kubernetes state.

 

Ключевые слова: Java, Kubernetes, OpenShift, контейнер, приложение.

Keywords: Java, Kubernetes, OpenShift, container, application.

 

В большинстве случаев наши приложения могут игнорировать тот факт, что они работают в Kubernetes [1] – это позволяет нам разрабатывать их локально, а с помощью нескольких команд и YAML-манифеста – быстро разворачивать даже с небольшими изменениями и столько раз, сколько нам угодно.

Однако есть несколько интересных ситуаций, когда нам необходимо использовать Kubernetes API для достижения определенных целей: 1) нужно запускать программу для выполнения какой-либо задачи, а затем получать ее статус; 2) динамически создавать/изменять какой-либо сервис в ответ на запрос клиента; 3) создавать настраиваемую панель мониторинга для решения, работающего в нескольких кластерах Kubernetes; 4) тестировать систему мониторинга, в особенности распределенную. Благодаря Kubernetes API, в частности для языка Java, такие ситуации довольно просто реализовать.

Для достижения поставленной цели данной статьи, во-первых, предлагается добавить зависимость Java API Kubernetes в pom.xml нашего проекта из Maven Central репозитория [2]. Далее, в нашем Java-приложении мы произведем подключение к серверу Kubernetes через создание объекта ApiClient, используя статический метод Config.defaultClient(). Более того, если мы имеем доступ к локальному файлу kubeconfig, мы можем использовать метод fromConfig(fileName) для создания экземпляра ApiClient из файла-конфигурации – в этот файл можно поместить информацию о необходимых серверах и токенах аккаунтов, связать их вместе.

ApiClient содержит базовый транспортный механизм для связи с сервером. Нам нужно создать обработчик типизированных объектов API для отправки на сервер и получения с сервера. Ввиду многозначительности возможностей библиотеки, в данной статье приведем в пример выдачу списка deployment и просмотра configmap для каждого deployment в определенном namespace, а также просмотр всех доступных pod (рисунок 1).

 

Рисунок 1. Пример использования Java Kubernetes API

 

Как мы видим, классы CoreV1Api и AppsV1Api реализуют важные особенности управления ресурсами Kubernetes – они позволяют запрашивать ресурс, получать дополнительную информацию о его зависимых ресурсах, редактировать их. Для целей тестирования распределенных систем, можно таким образом получать информацию о deployment, выключать и включать pod изменением значения replicas, имитируя сбои, динамическим образом обращаться к сервисам через информацию из configmap и многое другое. Дополнительную информацию можно найти в официальном репозитории рассматриваемой библиотеки [3].

 

Список литературы:

  1. Kubernetes [Электронный ресурс] URL: https://kubernetes.io (дата обращения: 26.12.2022).
  2. Maven | Kubernetes Client Java API [Электронный ресурс] URL: https://mvnrepository.com/artifact/io.kubernetes/client-java-api (дата обращения: 26.12.2022).
  3. GitHub | Kubernetes Client Java API [Электронный ресурс] URL: https://github.com/kubernetes-client/java (дата обращения: 26.12.2022).

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.