K8s newbe вопрос: Как заставить minikube запустить singularity-cri

#kubernetes #singularity-container

#kubernetes #сингулярность-контейнер

Вопрос:

Я делаю свои первые шаги в области k8s в целом и использую k8s с Singularity в частности, поэтому, чтобы иметь возможность поиграть с идеей Singularity как сервиса, я пытаюсь запустить Singularity-CRI под управлением minkube на моем личном ноутбуке (под управлением Centos8).

Мне удалось установить и настроить sycri и kubelet, но я не могу заставить minikube использовать cri. Похоже, он может работать только с docker и некоторыми другими предустановленными драйверами.

Итак, кому-нибудь удалось заставить minkube запускать Singularity? Или, может быть, мне следует использовать другую реализацию k8s (я тоже пробовал использовать sykube, но она кажется очень нестабильной).

Большое спасибо,

Орен

Ответ №1:

Minikube, вероятно, не самый лучший выбор, учитывая то, как он реализован. Обычно он запускается как виртуальная машина (доступны различные драйверы). Существует также драйвер docker, который позволяет запускать Minikube в существующей среде docker, но следует подчеркнуть, что он не использует ваш локальный docker в качестве среды выполнения контейнера, он запускает весь кластер Minikube как контейнер и может иметь внутри разные CRE, например, вы можете выбрать CRE, отличный от Docker и по-прежнему запускать его в Docker:

 minikube start --container-runtime=cri-o --driver=docker
 

Вы можете выбрать cri-o, но, к сожалению, вы не можете выбрать singularity . Как вы можете прочитать здесь, в настоящее время поддерживаются следующие среды выполнения контейнеров:

Среда выполнения контейнера по умолчанию в minikube — Docker. Вы можете выбрать его явно, используя:

 minikube start --container-runtime=docker
 

Доступны и другие варианты:

Вы всегда можете попробовать настроить свой мини-куб с помощью другой среды выполнения контейнера после его развертывания и после:

 minikube ssh
 

вы можете изменить свою среду и установить Singularity и Singularity-CRI внутри вашей виртуальной машины Minikube (или контейнера, если он работает как контейнер docker) и интегрировать его с вашим кластером kubernetes. Хотя это должно быть возможно, я бы вообще не рекомендовал это. После первой minikube delete настройки вся ваша настройка исчезнет, поэтому она определенно не предназначена для использования таким образом.

Несколько более перспективным вариантом кажется запуск Minikube без драйвера (без металла). Это должно позволить вам настроить его с помощью среды выполнения контейнера Singularity. Но, как вы можете прочитать в документах, этот параметр имеет некоторые ограничения и _ рекомендуется только для опытных пользователей._ Ну, интеграция вашего Minikube с другой, не поддерживаемой из коробки, контейнерной средой выполнения кажется хорошим вариантом расширенного использования, не так ли? Так что, вероятно, стоит попробовать.

Другой, более рекомендуемый вариант — интегрировать его с кластером kubernetes, настроенным с помощью kubeadm. Я даже нашел статью, в которой пошагово описывается такая интеграция.

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

1. Трудно сказать, что может быть точной причиной, но это не похоже на что-то специфичное для CRE. Не могли бы вы опубликовать все сообщение об ошибке в своем вопросе?

2. Привет, Марио, да, мой личный комментарий был слишком общим. Но с тех пор я добился некоторого прогресса. Теперь мне удается все настроить, но у меня проблема с Calico. Некоторые модули застревают в состоянии цикла. Я увидел, что эта проблема связана с настройкой моего сетевого адаптера. У вас есть какая-нибудь хорошая ссылка на это? Спасибо. Орен.

3. Настроен ли он на каком-либо гипервизоре, например, Virtualbox? Тогда у ваших виртуальных машин больше одного сетевого адаптера? Просто убедитесь, что это не интерфейс NAT, к которому привязан Calico.

4. Хорошо, передайте это… Сетевой адаптер virb был настроен неизвестно кем … пришлось отключить ifconfig. Теперь у меня проблема с сертификатом coredns… Я перепробовал все виды решений, которые я нашел в Интернете, но ни одно из них не работает…

5. Пожалуйста, опишите другую проблему в другом вопросе о стеке. Как только у вас будет необычная настройка k8s, ваш вопрос может выглядеть лучше на ServerFault.