Будет ли созданный процесс из многопроцессорной команды запущен на том же узле kubernetes?

#python #kubernetes

#питон #kubernetes

Вопрос:

Поддержка Kubernetes load-balancing .

Давайте возьмем простой сенарио:

  • Процесс выполняется на одном узле
  • Этот процесс создает несколько процессов
  • Будут ли все новые процессы выполняться на одном и том же узле Kubernetes? или на нескольких узлах (при поддержке балансировки нагрузки ?)

простой пример:

 from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3])
 

В приведенном выше примере мы создаем 3 процесса.

  • Все ли 3 процесса выполняются на одном и том же узле k8s? или может быть, что 2 процесса выполняются на одном узле, а третий процесс будет выполняться на третьем узле?

Комментарии:

1. Все процессы будут выполняться на одном и том же узле kubernetes.

Ответ №1:

Я думаю, вы еще не совсем понимаете docker. Поскольку контейнер содержит это приложение, вся память / выполнение будут выполняться только в этом контейнере, с K8s или без него.

K8s служит только в качестве оркестратора docker для нескольких контейнеров, которые, как правило, вообще не должны иметь никакой связи между контейнерами.

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