Использование клиента kubernets javascript внутри развертывания для создания задания - PullRequest
0 голосов
/ 01 ноября 2019

Привет, я создал приложение для узла, которое создает задание k8 с библиотекой kubernetes-client. Затем это приложение для работы отвечает http-вызовом моего приложения-узла. чтобы уменьшить задержку сети и время, я должен поместить все в кластер. Можно ли создать задание в развертывании?

Ссылки: https://github.com/kubernetes-client

   apiVersion: batch/v1
   kind: Job
   metadata:
     name: job
   spec:
     ttlSecondsAfterFinished: 10
     template:
       spec:
         containers:
         - name: samplejob
           image: gcr.io/hjgfjfhgffghfght
           command: ["node",  "index.js", '{api_url":"apienpoint"}']
           resources:
             limits:
               memory: "128Mi"
               cpu: "100m"
             requests:
               memory: "128Mi"
               cpu: "100m"
         restartPolicy: Never
     backoffLimit: 1

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019

Это определенно возможно. Все зависит от того, как вы создаете образ контейнера node.js. Ваше приложение может работать как развертывание в кластере. Что-то заставит приложение вызвать событие. Это событие отправит вызов API мастеру k8s, чтобы запросить создание задания.

Вы можете использовать одну из клиентских библиотек для взаимодействия с мастером k8s. Библиотека node.js поддерживается сообществом.

0 голосов
/ 01 ноября 2019

Вы можете создать образ Docker для своего кода, например, вы можете использовать

node server.js 

, чтобы запустить ваше основное приложение и поместить то же изображение в задание Kubernetes, сохранить его в каком-то другом каталоге и выполнить, используяопция

command 

в шаблоне yaml задания / cronjob.

Это отсортирует его для вас

...