Проверьте, запущен ли модуль в кластере k8s в программе go - PullRequest
0 голосов
/ 01 декабря 2019

Я пишу инструмент командной строки на Go, который будет выполнять действие, основанное на существовании определенного модуля в кластере k8s, в определенном пространстве имен.

Я мог бы сделать с помощью командной строки (shell) в моей программе go что-то вроде

kubectl get pods -n mynapespace l app=myapp

или, если я не уверен насчет меток, что-то еще менее элегантное, например:

kubectl get pods -n mynapespace | grep -i somepatternIamcertainabout

Однако, учитывая, чтоЯ использую родной язык k8s (Go) Мне было интересно, может ли быть более родной / специфический способ Go сделать такой запрос к серверу API k8s, не прибегая к вызовам оболочки из моего инструмента cli.

Ответы [ 2 ]

1 голос
/ 02 декабря 2019

Однако, учитывая, что я использую родной язык k8s (Go), мне было интересно, может ли быть более родной / специфический способ Go сделать такой запрос к серверу API k8s, не прибегая к вызовам оболочкииз моего инструмента cli.

Если вы хотите общаться с k8s cluster в ваших программах, написанных на , переходите на , не прибегая к вызовам оболочки, client-go библиотека - это путь. Он содержит все, что вам нужно для запроса вашего api-сервера k8s в ваших программах go.

Что включено

  • Пакет kubernetes содержит набор клиентов для доступа к API Kubernetes.
  • Пакет discovery используется для обнаружения API, поддерживаемых сервером API Kubernetes.
  • Пакет dynamic содержит динамический клиент, который может выполнять общие операции с произвольными объектами API Kubernetes.
  • Пакеты plugin/pkg/client/auth содержат дополнительные плагины аутентификации для получения учетных данных из внешних источников.
  • Пакет transport используется для настройки аутентификации и запуска соединения.
  • Пакет tools/cache полезен для написания контроллеров.
1 голос
/ 01 декабря 2019

Утилита kubectl - это просто удобная оболочка, которая общается с API Kubernetes, используя стандартный HTTP-болот. Стандартная библиотека Go имеет отличный http пакет . Идеально подходит для того, что вы пытаетесь достичь.

На самом деле, вы можете просто использовать этот официальный клиентский пакет из самого проекта Kubernetes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...