Как я могу настроить диаграмму Хелма, которая создает систему рангов, подобную MPI? - PullRequest
0 голосов
/ 07 апреля 2020

Я переношу приложение HP C, изначально написанное с использованием MPI, на кластер Kubernetes. Мы удалили MPI и в некотором роде «внедряем свой» способ управления макетом приложения с помощью Helm.

В MPI вы по сути создаете «appschema», которая очень похожа на диаграмму Helm, но я Я пытаюсь воспроизвести некоторые характеристики MPI на графике и не уверен в том, что это лучший подход.

В приложении MPI вы запускаете несколько копий одного и того же двоичного файла, но каждому двоичному файлу присваивается уникальный номер, ранг, который идентифицирует его в группе приложений. Этот ранг используется для определения того, над какой частью проблемы должен работать двоичный файл, и как способ отправки и получения сообщений от других двоичных файлов в группе. Наш подход будет использовать обнаружение сервисов и что-то вроде ZMQ, чтобы ранги могли общаться друг с другом, но нам все еще нужен способ уникальной идентификации каждого ранга.

Мой план по репликации этого поведения - передать переменную среды каждому модулю, указав ранг для его приложения-контейнера, так что на изображении Docker я получу следующую команду:

CMD ["sh", "-c", "/apphome/workerApp $RANKNUM"]

Единственное, я не знаю, как лучше всего это представить на диаграмме Хелма. В настоящее время я считаю, что для replicaCount в values.yaml нужно указать количество желаемых рангов, но как я могу передать уникальный номер для $ RANKNUM каждой реплике? Является ли это даже лучшим подходом или я должен использовать что-то отличное от replicaCount ?

Как передать уникальный числовой идентификатор в качестве переменной среды для каждой реплики в шлеме Kubernetes Диаграмма и является ли replicaCount подходящим способом представления рангового поведения MPI в приложении HP C?

...