Имя модуля управления Kubernetes - PullRequest
0 голосов
/ 10 июля 2020

Kubernetes - очень сложный инструмент, но некоторые из нас немного грубоваты, и поэтому у нас возникают проблемы.

Я пытаюсь выполнить простое задание Kubernetes на модуле в моем кластере, и в файле конфигурации kubernetes yaml я определяю имя модуля в метаданных, например

apiVersion: batch/v1
kind: Job
metadata:
  name: my-job

Затем, когда я создаю это задание, я вижу, что имя модуля на самом деле не является моим заданием. Это:

my-job-'randomstuff' 

Я понимаю, что это очень круто для наборов реплик и всего прочего, но мне нужно, чтобы мой модуль назывался так, как я его называю, потому что я использую это имя в функции обратного вызова в дальнейшем ..

Мне кажется странным, что я не могу полностью контролировать то, что я хочу назвать своим модулем, когда создаю его.

Я говорю себе, что это должно быть возможно, но я гуглил безумно час ..

Большое спасибо за любые идеи :)

Ответы [ 3 ]

3 голосов
/ 10 июля 2020

Задания имеют случайные суффиксы, потому что они могут иметь несколько завершений.

Пример:

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  completions: 5
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4   

Как видите, это задание будет выполнено пока он не достигнет 5 соревнований, и это было бы невозможно, если бы к имени не добавлялся случайный суффикс. Проверьте результат выполнения задания примера:

$ kubectl get pods 
NAME                            READY   STATUS      RESTARTS   AGE

pi-7mx4k                        0/1     Completed   0          3m9s
pi-bfw6p                        0/1     Completed   0          3m17s
pi-ls9lh                        0/1     Completed   0          3m43s
pi-njfpq                        0/1     Completed   0          3m35s
pi-ssn68                        0/1     Completed   0          3m27s

Итак, ответ на ваш вопрос отрицательный, вы не можете заставить его использовать «фиксированное» имя.

Если вам нужно иметь управление под именем, подумайте об использовании вместо него Pod (kind Pod).

0 голосов
/ 10 июля 2020

Может быть другой способ решить эту проблему в зависимости от того, чего вы пытаетесь достичь в функции обратного вызова.

Например, вы можете добавить любую метку или аннотацию в модуль и использовать их в функции обратного вызова для относится к модулю или группе модулей с одинаковой меткой или аннотацией.

0 голосов
/ 10 июля 2020

Задайте себе следующие вопросы:

  1. Что такое работа?
  2. Кто с кем должен общаться? Задание может связываться с другими (сервисами, внешними, ...), или другие могут связываться с заданием.

Задание - это эфемерный процесс / эфемерный модуль. Он предназначен для завершения, как только работа Job :) будет завершена.

Поскольку он эфемерный (временный), ожидается, что он достигнет других, а не другие.

Если мы согласны с этим, присвоение точного имени модулю, созданному Job, должно быть бесполезным. . в этом случае подумайте об использовании службы (вид: Служба) перед этим модулем.

Это выполнимо? Да.

В этом есть смысл? №

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